Files
doslang-mirror/tools/README.md
T

2.0 KiB

Development tools

Host support

The automated DOS development environment currently supports Windows 10/11. The host only needs uv. The setup command downloads the pinned DOSBox-X and Open Watcom DOS archives, verifies their SHA-256 hashes, and installs them in the ignored .dosboxx/ cache.

uv run ferro-dos setup --accept-watcom-license

Review the Open Watcom license referenced by tools/toolchains/dosboxx.lock.json before accepting it. Neither downloaded archives nor installed tools are committed.

General DOS environment

ferro-dos provides the development entry points:

uv run ferro-dos build
uv run ferro-dos exec "FEC.EXE --check TESTS\M6\OKLAST.FE"
uv run ferro-dos batch fec\test-dos.bat
uv run ferro-dos shell
uv run ferro-dos --help

Every invocation creates an isolated host directory under .dosboxx/runs/ and mounts it as writable C:. The repository is mounted read-only as R: and the pinned Open Watcom installation as read-only W:. Current compiler sources, the standard library, and fixtures are copied to C:\FEC; all compilation and execution happen there inside DOSBox-X. Successful runs are removed by default. Use --keep to retain a workspace and --show-dos to display the DOS window.

This directory-backed layout deliberately has no QEMU, disk-image, TCP-agent, or OCR dependency. A future disk-image backend can be added without changing the command interface.

Pytest regression suite

ferro-test uses the same isolated DOSBox-X/Open Watcom environment, builds FEC.EXE once, and executes all selected cases sequentially in that one DOS instance. Pytest still reports each registered case separately.

uv run ferro-test run --through m6 -v
uv run ferro-test run --only m6 --dos-log
uv run ferro-test --help

--keep-failed preserves a failed workspace, --dos-log prints captured DOS output, --trace-dos disables per-command redirection, and --show-dos displays the GUI. Working rules and DOS/Open Watcom build traps are in AGENTS.md.