dev: promote DOSBox-X and remove QEMU support

This commit is contained in:
2026-08-16 22:14:50 +09:00
parent 4ad3e3097b
commit 594704a07d
26 changed files with 176 additions and 2481 deletions
-27
View File
@@ -1,27 +0,0 @@
# TODO
## Done
- [x] Add a non-reboot abort path for a hung DOS command: inject `Ctrl+C` through
QEMU's monitor and wait for the agent to recover.
- [x] Apply a configurable timeout to `exec` and invoke the non-reboot abort path
on timeout.
- [x] Expose `abort` for an immediate user-requested command interruption.
The three above were first built for the COM1 serial agent, lost in the rewrite
to the resident TCP agent, and rebuilt on the QEMU monitor in `ferro-vm exec`.
The TCP version supervises with guest disk liveness (`info blockstats`) rather
than a fixed stopwatch, so a slow compile is no longer mistaken for a hang.
## Open
- [ ] Consider `BREAK=ON` in `C:\FDCONFIG.SYS`. Ctrl+C only takes effect at a DOS
break check, and with the FreeDOS default of `BREAK=OFF` a compute-bound
child whose output is redirected to a file may never reach one, so `abort`
cannot always stop it. `BREAK=ON` checks on every DOS call and makes the
abort reliable, at a small cost to every DOS call. Needs a VM reboot; back
up `FDCONFIG.SYS` first.
- [ ] `TCPAGENT.EXE` connects from a fixed source port (`LOCAL_PORT 2058`). After
the host end closes, a reconnect reuses the same 4-tuple and can flap until
the old state ages out. Observed as a ~10s connect/disconnect cycle after
the daemon is killed mid-connection.