mirror of
https://github.com/felixrieseberg/windows95.git
synced 2026-05-09 00:24:09 +00:00
Enable CD-ROM via a synchronous fs-backed buffer (#362)
v86's async loaders leave the ATAPI drive in BSY across an event-loop turn after a READ(10) CDB. Win95's ESDI_506 reads status twice, sees BSY both times, and issues DEVICE RESET ~165 instructions later, which cancels the in-flight read — the drive enumerates but D: never mounts. Serve the ISO through a small fs.readSync-backed buffer so the data is available before the next emulated instruction runs, and re-enable the CD-ROM settings tab. Also: WIN95_PROBE_CDROM / WIN95_PROBE_CDTRACE harness hooks, and pump one screen-adapter frame before screenshotting so probe captures work when the Electron window is occluded.
This commit is contained in:
@@ -40,6 +40,9 @@ WIN95_SMB_SHARE="$HOME/Downloads" \
|
||||
desktop. `WIN95_PROBE_DOSBOX=1` instead opens `command`, types `dir`,
|
||||
and (with `WIN95_PROBE_DOSBOX_ALTENTER=1`) toggles fullscreen — this is
|
||||
the regression scenario for the windowed-DOS-box VBE leak.
|
||||
`WIN95_PROBE_CDROM=/path/to.iso` mounts an ISO on the secondary-IDE
|
||||
ATAPI drive (bypasses the settings UI). `WIN95_PROBE_CDTRACE=1` logs
|
||||
every secondary-channel ATA/ATAPI command to `/tmp/win95-cdtrace.log`.
|
||||
`WIN95_PROBE_VGATRACE=1` wraps the VGA I/O ports at the `io.ports[]`
|
||||
layer and writes `[port, op, value, "eip VMPE cplN"]` tuples to
|
||||
`/tmp/win95-vgatrace.json` every tick (heavy — can hit 1M entries during
|
||||
|
||||
Reference in New Issue
Block a user