vid_ega: Make the read-write CRTC registers readable

This fixes a lockup that happens when returning from QBASIC under many screen modes, including SCREEN 0.
This commit is contained in:
Ben Russell
2023-03-24 21:50:06 +00:00
parent 5caf81b50e
commit 8fe70b0a6e

View File

@@ -312,8 +312,25 @@ ega_in(uint16_t addr, void *p)
break;
case 0x3d1:
case 0x3d5:
if (ega_type)
ret = ega->crtc[ega->crtcreg];
switch(ega->crtcreg) {
case 0xc:
case 0xd:
case 0xe:
case 0xf:
ret = ega->crtc[ega->crtcreg];
break;
case 0x10:
case 0x11:
// TODO: Return light pen address once implemented
if (ega_type)
ret = ega->crtc[ega->crtcreg];
break;
default:
if (ega_type)
ret = ega->crtc[ega->crtcreg];
}
break;
case 0x3da:
ega->attrff = 0;