> I need to figure out why this program also doesn't deal with tape > errors well. If you get an error, it will go into an endless loop > creating -1 byte records.
Any block length with the high bit set is an error mark. The loop part is a good question, though. The discussion of .tap format to which I referred earlier largely seemed to revolve around the question of representing errors. Block length markers occur at the beginning and end of data records, unless they're file marks (length 0). On a read error, should one write a single error mark, a pair of them, should one include the busted data, etc. The answers are complicated by the SCSI habit of hoarding the damaged data. De