On Monday, October 5, 2020 at 8:25, Chuck Guzis via cctech wrote:
So increasing the mask for block length wouldn't
seem to be a problem,
assuming that SIMH could support it.
SIMH could be written to support it (I'm the maintainer-by-default of the
tape handling portion of SIMH). I don't know of any existing simulators
that depend on the length being exactly 24 bits. The tape handling library
defines an integer type to hold tape record lengths (it's a 32-bit unsigned
value), and simulators are supposed to declare tape record length variables
of this type. So extending the record length field to 28 bits shouldn't
cause problems.
The current library assumes that anything that's not one of the three
defined metadata markers (EOF, EOM, or erase gap) is a tape record length,
so there's no error recovery for undefined markers. This could be changed,
however, so that unrecognized markers would be ignored, i.e., transparently
skipped when reading or writing, as long as those markers contained the
length of the record to be skipped.
For example, if the upper four bits were dedicated to the marker type field
and the length field expanded to 28 bits, then we could have something
like:
Type Length Meaning
---- ------- ------------------------------------------------
0 0 tape mark
0 >0 "good" data record
1 >0 \
... | undefined records (reserved for SIMH)
7 >0 /
8 >0 "bad" data record
9 >0 \
... | user-defined records
D >0 /
E any user-defined single-word marker
F FFFFFFF end of medium
F FFFFFFE erase gap
F other undefined single word marker (reserved for SIMH)
The type E single-word marker and record types 9-D (that must contain
record lengths at both ends of the record) would be transparently ignored
by SIMH. These could be used for tape information or other uses devised by
the community.
-- Dave