x80_dos_run
Run a DOS executable to completion in a fresh sandbox, capturing its exit code and output. Verify behavior with assertions and inspect generated files.
Instructions
Run one DOS package to completion in a fresh sandbox. Unlike x80_cpm_run this does have a meaningful exit code — dosiz propagates the DOS AH=4Ch AL value (measured: rc 7) — but rc 1 is ambiguous between "the guest exited 1" and "dosiz failed to load the program", so exit_code_meaning disambiguates it from stderr.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| args | No | ||
| stdin | No | ||
| assert | No | ||
| collect | No | ||
| profile | Yes | dos-hosted (dosiz) traps INT 21h/31h/67h to the host filesystem: instant, no image, real exit codes. freedos boots a real FreeDOS kernel on emu88, needs an image, and has NO exit code - emu88 has no DOS and therefore no ERRORLEVEL, so it needs a result-file convention. | |
| program | Yes | Host path to the .EXE/.COM. The server chdirs into the sandbox and passes a RELATIVE name: an absolute path gives 'C:\PATH\PROG.EXE: can't open', rc 102, because argv[0] is built as 'C:' + the uppercased backslashed host path and DJGPP's go32 stub reopens it (measured). | |
| files_in | No | ||
| timeout_ms | No | ||
| keep_sandbox | No | ||
| boot_timeout_ms | No | freedos only. | |
| expect_exit_code | No |