Summary
Make it possible to extract a disc image, edit the files, and rebuild the image without needing a mirrored directory tree or manually maintaining metadata.
Use case and motivation
Today, extracting with --inf and then rebuilding requires the files to be organised in a directory tree that mirrors the disc layout (e.g. T/, $/). This is awkward for simple edits. The .inf sidecars already carry all the routing information, so a flat directory of files and sidecars should be enough to rebuild.
When extracting without --inf, there is currently no way to preserve load/exec/lock addresses for a later rebuild - those are lost and have to be specified manually.
Proposed behaviour
Flat-dir build: beebtools build should accept a flat directory of files with .inf sidecars and route each file to the correct disc location automatically, without requiring a mirrored subdirectory structure.
Manifest on extract: beebtools extract -a should write a manifest.json at the output root capturing the disc title, boot option, format, and - when --inf is not used - the load/exec/lock addresses of every file. beebtools build should read this manifest when no .inf sidecars are present, making a clean round-trip possible without any sidecars at all.
Both modes should work for DFS (.ssd/.dsd) and ADFS (.adf/.adl) images.
References
Summary
Make it possible to extract a disc image, edit the files, and rebuild the image without needing a mirrored directory tree or manually maintaining metadata.
Use case and motivation
Today, extracting with
--infand then rebuilding requires the files to be organised in a directory tree that mirrors the disc layout (e.g.T/,$/). This is awkward for simple edits. The.infsidecars already carry all the routing information, so a flat directory of files and sidecars should be enough to rebuild.When extracting without
--inf, there is currently no way to preserve load/exec/lock addresses for a later rebuild - those are lost and have to be specified manually.Proposed behaviour
Flat-dir build:
beebtools buildshould accept a flat directory of files with.infsidecars and route each file to the correct disc location automatically, without requiring a mirrored subdirectory structure.Manifest on extract:
beebtools extract -ashould write amanifest.jsonat the output root capturing the disc title, boot option, format, and - when--infis not used - the load/exec/lock addresses of every file.beebtools buildshould read this manifest when no.infsidecars are present, making a clean round-trip possible without any sidecars at all.Both modes should work for DFS (.ssd/.dsd) and ADFS (.adf/.adl) images.
References