Files
doslang-mirror/tools

Development tools

Host support

Automation currently supports Windows 10/11 only. It requires uv, QEMU with WHPX support, and ffmpeg.exe on PATH. The Python implementation uses portable APIs where possible, but other hosts are not supported yet.

QEMU and FreeDOS automation

Start the Python daemon and QEMU:

uv run ferro-vm start
uv run ferro-vm status

TCPAGENT.EXE connects only to 127.0.0.1:5558. Local commands use the Windows named pipe \\.\pipe\ferrolang-vm; there is no controller or observer TCP port. Monitor the append-only structured log in another terminal:

lnav .qemu/ferro-vm.log

Commands:

uv run ferro-vm reset       # clean QEMU quit and restart
uv run ferro-vm soft-reset  # QEMU system_reset
uv run ferro-vm ping
uv run ferro-vm exec 'dir C:\FEC'
uv run ferro-vm put fec/src/check.c 'C:\FEC\SRC\CHECK.C'
uv run ferro-vm get 'C:\FEC\TEST.OK' .qemu/TEST.OK
uv run ferro-vm screenshot
uv run ferro-vm ocr
uv run ferro-vm stop

Both reset modes wait for FreeDOS to boot, submit the default boot-menu Enter, and require TCPAGENT PING/PONG before succeeding. The daemon logs command metadata, DOS output, exit status, transfers, and agent lifecycle events as UTF-8 lines. It deliberately never logs raw binary payloads or protocol hex.

Standalone OCR

tools/qemu_ocr.py remains available for OCRing an existing image:

uv run python tools/qemu_ocr.py --image .qemu/qemu-screen.png