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.
32 lines
712 B
C
32 lines
712 B
C
/*INTEL 82355 MCR emulation
|
|
This chip was used as part of many 386 chipsets
|
|
It controls memory addressing and shadowing*/
|
|
#include "ibm.h"
|
|
|
|
int nextreg6;
|
|
uint8_t mcr22;
|
|
int mcrlock,mcrfirst;
|
|
void resetmcr()
|
|
{
|
|
mcrlock=0;
|
|
mcrfirst=1;
|
|
shadowbios=0;
|
|
}
|
|
|
|
void writemcr(uint16_t addr, uint8_t val)
|
|
{
|
|
printf("Write MCR %04X %02X %04X:%04X\n",addr,val,CS,cpu_state.pc);
|
|
switch (addr)
|
|
{
|
|
case 0x22:
|
|
if (val==6 && mcr22==6) nextreg6=1;
|
|
else nextreg6=0;
|
|
break;
|
|
case 0x23:
|
|
if (nextreg6) shadowbios=!val;
|
|
break;
|
|
}
|
|
mcr22=val;
|
|
}
|
|
|