Vastly overhauled the UI, there's now a completely new Settings dialog as well as a status bar with disk activity icons and removable drive menus;
Thoroughly clean up the code to vastly reduce the number of compiler warnings and found and fixed several bugs in the process; Applied all mainline PCem commits; Added SCSI hard disk emulation; Commented out all unfinished machines and graphics cards; Added the AOpen AP53 and ASUS P/I-P55T2 machines as well as another Tyan 440FX machine, all three with AMI WinBIOS (patch from TheCollector1995); Added the Diamond Stealth 3D 3000 (S3 ViRGE/VX) graphics card (patch from TheCollector1995); Added the PS/2 XT IDE (AccuLogic) HDD Controller (patch from TheCollector1995); Added Microsoft/Logitech Bus Mouse emulation (patch from waltje); Overhauled the makefiles (patch from waltje); Added the Adaptec AHA-1542CF SCSI controller (patch from waltje); Added preliminary (but still unfinished) Adaptec AHA-154x SCSI controller BIOS support (patch from waltje); Added an ISABugger debugging device (patch from waltje); Added sanity checks to the Direct3D code.
This commit is contained in:
18
src/io.c
18
src/io.c
@@ -23,10 +23,12 @@ void io_init()
|
||||
pclog("io_init\n");
|
||||
for (c = 0; c < 0x10000; c++)
|
||||
{
|
||||
port_inb[c][0] = port_inw[c][0] = port_inl[c][0] = NULL;
|
||||
port_outb[c][0] = port_outw[c][0] = port_outl[c][0] = NULL;
|
||||
port_inb[c][1] = port_inw[c][1] = port_inl[c][1] = NULL;
|
||||
port_outb[c][1] = port_outw[c][1] = port_outl[c][1] = NULL;
|
||||
port_inb[c][0] = port_inb[c][1] = NULL;
|
||||
port_outb[c][0] = port_outb[c][1] = NULL;
|
||||
port_inw[c][0] = port_inw[c][1] = NULL;
|
||||
port_outw[c][0] = port_outw[c][1] = NULL;
|
||||
port_inl[c][0] = port_inl[c][1] = NULL;
|
||||
port_outl[c][0] = port_outl[c][1] = NULL;
|
||||
port_priv[c][0] = port_priv[c][1] = NULL;
|
||||
}
|
||||
}
|
||||
@@ -94,6 +96,7 @@ void io_removehandler(uint16_t base, int size,
|
||||
port_outw[ base + c][0] = NULL;
|
||||
if (port_outl[ base + c][0] == outl)
|
||||
port_outl[ base + c][0] = NULL;
|
||||
port_priv[base + c][0] = NULL;
|
||||
}
|
||||
if (port_priv[base + c][1] == priv)
|
||||
{
|
||||
@@ -109,6 +112,7 @@ void io_removehandler(uint16_t base, int size,
|
||||
port_outw[ base + c][1] = NULL;
|
||||
if (port_outl[ base + c][1] == outl)
|
||||
port_outl[ base + c][1] = NULL;
|
||||
port_priv[base + c][1] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,6 +137,9 @@ uint8_t inb(uint16_t port)
|
||||
/* if (port_inb[port][0] || port_inb[port][1])
|
||||
pclog("Good INB %04X %04X:%04X\n", port, CS, cpu_state.pc); */
|
||||
|
||||
#ifdef IO_TRACE
|
||||
if (CS == IO_TRACE) pclog("IOTRACE(%04X): inb(%04x)=%02x\n", IO_TRACE, port, temp);
|
||||
#endif
|
||||
return temp;
|
||||
}
|
||||
|
||||
@@ -145,6 +152,9 @@ void outb(uint16_t port, uint8_t val)
|
||||
if (port_outb[port][1])
|
||||
port_outb[port][1](port, val, port_priv[port][1]);
|
||||
|
||||
#ifdef IO_TRACE
|
||||
if (CS == IO_TRACE) pclog("IOTRACE(%04X): outb(%04x,%02x)\n", IO_TRACE, port, val);
|
||||
#endif
|
||||
/* if (!port_outb[port][0] && !port_outb[port][1])
|
||||
pclog("Bad OUTB %04X %02X %04X:%08X\n", port, val, CS, cpu_state.pc); */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user