aml2 is a small DOS launcher.
It uses a tiny custom text UI, a supervisor stub (AML.COM), and a simple LAUNCHER.CFG format.
The main launcher list is rendered in a custom VGA text-mode big font. It shows 10 entries per page, using 2 text rows per game name.
- shows entries from
LAUNCHER.CFG - launches the selected item through
AML.COM - supports viewer mode through
AML.COM - supports editor mode with
AML.COM /E - writes
AML2.RUNas the handoff file between launcher and stub
Current output sizes from ./tools/build.sh are approximately:
amlui.exe: 32 KBaml.com: 1295 bytes
Build:
./tools/setup_openwatcom.sh
./tools/build.shNormal DOS-side entrypoint:
AML.COM
Do not start with AMLUI.EXE in normal use. AML.COM is the public entrypoint and relaunches the launcher after a game exits.
Expected DOS-side files:
AML.COMAMLUI.EXELAUNCHER.CFG- the executables or batch files referenced by
LAUNCHER.CFG
AML.COM supports:
- no args to start in viewer mode
/Eto start in editor mode
AMLUI.EXE supports:
/Vto enter viewer mode explicitly/Eto enable editor mode/Sto enable supervised mode (passed automatically byAML.COM; required for game launching)/?to print usage and exit
Direct AMLUI.EXE runs require an explicit mode. Mutation actions are only available in editor mode, and game launches are only enabled when AMLUI.EXE was started through AML.COM (or with /S explicitly).
LAUNCHER.CFG format:
bigtext = svga
Name|Command|Working Directory
Name|Command|
Rules:
- lines starting with
#are comments - blank lines are ignored
- surrounding whitespace is trimmed
- entry lines:
nameandcommandare required,pathis optional but the trailing|is always required - setting lines:
key = value, no|
| Key | Values | Notes |
|---|---|---|
bigtext |
on (default) |
Big-font list rendering with standard VGA timing (8-dot character cells at 25.175 MHz, ~31.47 kHz horizontal). Works on classic VGA monitors. |
bigtext |
svga |
Big-font list rendering using the card's native dot clock (only the SR1 8-dot bit is set; the dot clock is left untouched). Use this if your monitor shows "horizontal frequency out of range" with bigtext = on — some SVGA chips reset the 8-dot bit when the clock-select bits are written, so the standard mode lands at an unintended ~28 kHz. |
bigtext |
wide |
Big-font glyphs in the default 9-dot wide character cells; no VGA-timing changes. The font swap still happens — entries are still big — but cells stay at their wider 9-dot default, so the look has more horizontal spacing. Use this if neither on nor svga works. (off is accepted as an alias for files written by v0.6.0.) |
Up/Down: move by one entryPgUp/PgDn: move by one visible pageHome/End: jump to first or last entry/: search within entry namesEnter: launch current selectionF1or?: helpF3: detailsF9: debug run menu with stub, direct-child, and shell launch optionsF10: exit to DOS
Editor mode only:
F2: saveLAUNCHER.CFGF4: edit current entryF5/F6: move current entry up or downIns: insert a new entryF8: delete current entry
Bigtext hotkeys (for troubleshooting "out of range" monitors). Shift is required so the digits stay free for future use:
Shift+1(!): switch tobigtext = onmode (default)Shift+2(@): switch tobigtext = svgamodeShift+4($): switch tobigtext = widemodeShift+0()): panic — INT 10h mode 3 reset (recovers a monitor that lost sync)
Press F2 in editor mode to persist the chosen setting to LAUNCHER.CFG.
./tools/package_dist.shThis creates:
out/dist/aml2-local.ziplocallyout/dist/aml2-<short-hash>.zipin CI
The zip contains:
README.mdLAUNCHER.CFGAMLUI.EXEAML.COM
./tools/run_qemu_manual.shTo boot with a specific launcher config:
./tools/run_qemu_manual.sh path/to/LAUNCHER.CFGTo copy extra DOS files onto the floppy image before boot:
./tools/run_qemu_manual.sh path/to/GAME.EXE path/to/EXTRA.BATMain checks:
bash tests/run_all.shTargeted runners are also available:
bash tests/run_host.sh
bash tests/run_dos_ui.sh
bash tests/run_dos_launch.shQEMU is the authoritative path for the launcher UI and stub loop. kvikdos is only used for fast non-TUI smoke checks in the DOS launch suite.
See docs/stub-design.md, docs/e2e-findings.md, docs/design.md, and docs/toolchain.md for implementation details.
MIT. See LICENSE.
