dosforge 0.9.48
dosforge 0.9.48 — MartyPC compatibility expansion
CI green on Linux + Windows.
This release expands dosforge's MartyPC support from "one geometry
that happens to work" (Phoenix Type 1 / 10 MiB Xebec) to first-class
coverage of every controller MartyPC actually emulates.
What's new
martypc-xebec:N BIOS drive-type preset family
MartyPC's IBM/Xebec Fixed Disk Adapter (crates/marty_core/src/devices/hdc/xebec.rs)
does strict CHS whitelist matching against exactly 4 hardcoded
geometries. dosforge now exposes all 4 with dedicated slugs:
| Slug | CHS | Size |
|---|---|---|
martypc-xebec:1 |
306×4×17 | 10 MB |
martypc-xebec:2 |
615×4×17 | 20 MB |
martypc-xebec:13 |
306×8×17 | 20 MB |
martypc-xebec:16 |
612×4×17 | 20 MB |
phoenix:1/2/13/16 keep working (same CHS); the new slugs exist so
your command line documents the target emulator unambiguously.
--disk-controller xtide (new controller class)
MartyPC's default machine config since v0.4.0 uses the XT-IDE
controller (crates/marty_core/src/devices/hdc/at_formats.rs), with
a whitelist of 127 AT-class geometries ranging from 10 MiB to
~520 MiB. dosforge ships the full whitelist verbatim and auto-picks
the smallest fit:
dosforge create \
--media-type vhd --boot-mode msdos5 \
--format fat16 --size 32M \
--disk-controller xtide \
--path ~/vhd/msdos5-martypc.vhd
# Auto-picks 1024×4×17 = 34 MiB (smallest whitelist fit ≥ 32 MiB)Constraints (validated up-front, no silent fallbacks):
- No FAT32 (XT-class DOS doesn't understand FAT32).
- No msdos71 / pcdos71 (their FDISK rejects 8088-class geometries).
- Custom CHS must land exactly on a whitelisted entry — otherwise
MartyPC silently fails to mount the disk.
New documentation
docs/martypc-compatibility.md— full Xebec + XT-IDE geometry
reference, build-recipe examples, and troubleshooting notes for
"it mounted but won't boot".dosassets/compaq2/readme.txt— addedmartypc-xebec:1variant
alongside the existingphoenix:1recipe.
Validation
- 379 tests green across formlogic, size, disk_validation,
disk_mfm_autogeometry, core_modules, cli, legacy_dos_install,
boot_assets, e2e_matrix, dos_profiles, pcdos5, and the new
test_martypc.py (32 dedicated tests). - Skeleton mirror in sync.
UI updates
- TUI + GUI "Disk controller" dropdown gains
XT-IDE (XT-class, MartyPC default)as a third option. - BIOS preset dropdown gains the 4 MartyPC-Xebec entries.
- "BIOS preset" label/text updated to reflect the new vendor
(Phoenix / AMI / MartyPC-Xebec). - CLI
--disk-controllerhelp text points users at
docs/martypc-compatibility.md.
Compatibility
No breaking changes. Existing phoenix:N slugs, MFM controller
behavior, and IDE defaults are untouched. v0.9.47 builds remain
byte-identical when rebuilt under v0.9.48 without the new flags.