Commit 230b7bd
ide: strip DSC (SERVICE) bit for ATAPI to fix Win9x CD Code 10 (MiSTer-devel#1221)
ide_set_regs() synthesizes status bit 4 as DSC for every device. For an
ATAPI (packet) device bit 4 is the SERVICE bit, not DSC, and since we never
run overlapped/queued commands it must read 0. 86Box masks DSC out of every
ATAPI status read and reports SERVICE=0 for a non-overlapped device. The
permanent SERVICE=1 made Win9x's ESDI_506 reject the channel (Device Manager
Code 10, "ESDI access to drive failed (IRQ?), so punting"), even though the
completion IRQ was delivered. Strip DSC for CD drives to match the reference.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 6af572c commit 230b7bd
1 file changed
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
165 | 172 | | |
166 | 173 | | |
167 | 174 | | |
| |||
0 commit comments