+ Extract the bulk of sim_tape_wrgap to a new local tape_wrgapf (UNIT *uptr, t_mtrlnt *bc) routine, where "bc" is the gap length byte count needed. + Add a new t_stat sim_tape_errecf (UNIT *uptr, t_mtrlnt bc) to erase a record forward. "bc" is the RECORD LENGTH; the actual gap includes the two metadatum markers present for the record. Handles rounding to ensure a valid erasure (even byte length). + Add a new t_stat sim_tape_errecr (UNIT *uptr, t_mtrlnt bc) to erase a record backward. HOWEVER, this is simple only in the case of an erase that exactly matches the record length of an existing record immediately prior. Otherwise, it needs a general scan-and allocate routine that can truncate existing records, modeled after the current forward erase routine. - Modify sim_tape_errecf/r to take a zero record length as meaning "erase the tape mark" forward or backward. Bob seems to want an error if the next/previous metadatum is not a tape mark.