Skip to content

dosforge 0.9.48

Choose a tag to compare

@github-actions github-actions released this 13 Jun 15:15
· 15 commits to main since this release

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 — added martypc-xebec:1 variant
    alongside the existing phoenix:1 recipe.

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-controller help 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.