brouhaha / tapeutils

GNU General Public License v2.0
22 stars 4 forks source link

Add utility to list the contents of a TAPEX archive tape. #5

Closed larsbrinkhoff closed 7 years ago

larsbrinkhoff commented 7 years ago

For now, only prints a file list.

Test data: The two .tap files in
http://bitsavers.org/bits/Foonly/

larsbrinkhoff commented 7 years ago

The format is really simple. Everything are records of 2560 octets, i.e 512 36-bit words in core dump format. The first block is a header with two words and the file name in ASCII. The first word is bytesize,,blocks, and the second is number of bytes in the file. Then data records follow, ended by a tape mark. Two marks signal the end of the tape.

The only thing I don't know is what it means if the bytesize half-word contains a 020000.


EDIT: Revised spec, including information from Genera.

A tape is a sequence of files. Each file is a sequence of records. The records can be any size. The first record is a header describing the file. The exact content of the description varies with implementation. The following records are the file data, terminated by a tape mark. After the last file is another tape mark.

larsbrinkhoff commented 7 years ago

CC @hrlzm

larsbrinkhoff commented 7 years ago

@brouhaha Would you like to review this?

I'd like to have this merged, and later, time permitting, add code to extract file contents too.

larsbrinkhoff commented 7 years ago

I read the Genera TAPEX implementation. It uses a record size of 4096 octets. The header record is just the pathname, terminated by a 200 octal character. The file data is terminated the same way. This works, because only ASCII data is stored in a Genera TAPEX dump.

@ams If you could send me a sample TAPEX tape image written from Genera, I could revise this program to support the Genera format.