pdp10-its-disassembler icon indicating copy to clipboard operation
pdp10-its-disassembler copied to clipboard

Framework for "container" files

Open larsbrinkhoff opened this issue 3 years ago • 6 comments

Create a framework for "container" files similar to work and file formats. A "container" in this context is a file or other medium containing other files. Common operations on containers are:

  • Listing files.
  • Extracting all or a selection of files.
  • Creating a new container from a list of files.
  • Removing/adding/updating files in a container.

Currently supported container formats with ad-hoc support:

  • DECtape MACDMP format.
  • Raw magtapes (tape mark separated files).
  • ITS DUMP tapes.
  • ITS MAGDMP tapes.
  • ITS file systems on disks.
  • TENEX/TOPS-20 DUMPER tapes.
  • WAITS DART tapes.
  • TENCOM-X TITO tapes.
  • ITS archive files.
  • IPAK archives.
  • BSYS tapes (work in progress).

larsbrinkhoff avatar Apr 05 '22 17:04 larsbrinkhoff

Future extension, but not an immediate goal, would be to have other tools operate on a file inside a container. E.g. disassemble a single file on a tape.

larsbrinkhoff avatar Apr 05 '22 17:04 larsbrinkhoff

Pie in the sky. Generalize this to "containers in containers" to any depth.

The default top-level container would be the local host file system.

larsbrinkhoff avatar Apr 05 '22 17:04 larsbrinkhoff

I'd like eventually to add support for Multics tapes and archives as well (which aren't PDP-10, but are 36-bit, so the framework here would be useful).

atsampson avatar Apr 05 '22 18:04 atsampson

Also pie in the sky: provide a library to generate a container on the fly from a directory of files, so you could just attach a directory to a tape drive in an emulator and have it produce a tape automatically when read.

atsampson avatar Apr 05 '22 18:04 atsampson

Multics is welcome here. I already diverged from 36-bitness by adding some 8-bit and 16-bit based formats. Really, any word size should work as long as it fits in a word_t (minus some tape metadata bits).

larsbrinkhoff avatar Apr 06 '22 19:04 larsbrinkhoff

The idea to provide a library is interesting. More generally, various components could be packaged up as stand-alone libraries. We can quickly identify a few of those:

  • Word format.
  • Core image file format.
  • Container format.
  • Disassembler.

larsbrinkhoff avatar Apr 12 '22 15:04 larsbrinkhoff