Overview
If you collect Apple II software, you eventually hit the same wall: you have a pile of single-disk images in every format under the sun, and you want a few files off each one assembled onto a single bootable hard drive you can use in an emulator. Doing that by hand is tedious block surgery. This tool makes it a two-pane pick list instead.
It opens ProDOS (and other) disk images, lets you select the files you actually want,
and copies them onto a 32 MB .hdv hard-drive image -; optionally
making that image bootable in the same step. Then you point AppleWin, Virtual ][,
or MAME at it and boot.
Background
This one started as an answer to a Reddit question (from user
u/steveheistand) and grew into a proper little utility. The honest
observation behind it: the hard part -; bitmap management, directory growth,
file types and aux types -; is already solved by CiderPress II's cp2 command-line
tool. So rather than re-implement ProDOS, this is a thin, friendly front-end over
cp2 that handles the orchestration and the picking.
How It Works
The whole thing is dependency-free Python (3.10+) wrapping cp2. The
engine is a verified cp2 wrapper plus a catalog parser you can import as a
library; the CLI layers argparse subcommands and an interactive picker on top; and an
optional two-pane Textual TUI lets you multi-select on the left and copy the batch to
the right with one keystroke. The two pieces it can't ship -; the cp2
binary and an Apple-copyrighted ProDOS system disk -; are fetched by a setup
script.
# create a bootable 32MB drive, then pick files onto it python -m a2hdv new mydisk.hdv --volume GAMES --system ProDOS_2_4.dsk python -m a2hdv tui some_game.po mydisk.hdv # space = toggle, a = all, c/Enter = copy, q = quit
Input is whatever cp2 reads -; .po, .do,
.dsk, .hdv, .2mg, .woz,
.nib, .shk and more. The target is always a ProDOS
.hdv (or .po / .2mg). A pytest suite skips
gracefully when cp2 or Textual isn't present.