Initial submission of the PCem-Experimental source code.

This commit is contained in:
OBattler
2016-06-26 00:34:39 +02:00
parent 09d7c4384f
commit fd2a5bc9f5
610 changed files with 184352 additions and 0 deletions

37
src/mcr.c Normal file
View File

@@ -0,0 +1,37 @@
/*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;
// if ((val&1) && (mcr22&1)) shadowbios=1;
// if (!(val&1) && !(mcr22&1)) shadowbios=0;
// if (!mcrfirst) shadowbios=val&1;
// mcrfirst=0;
// dumpregs();
// exit(-1);
break;
case 0x23:
if (nextreg6) shadowbios=!val;
break;
}
mcr22=val;
}