static void Sync(void) { setprg8(0x6000, reg); setprg32r(1, 0x8000, 0); setchr8(0); setmirror(mirr); }
static void FDSInit(void) { memset(FDSRegs,0,sizeof(FDSRegs)); writeskip=DiskPtr=DiskSeekIRQ=0; setmirror(1); setprg8r(0,0xe000,0); // BIOS setprg32r(1,0x6000,0); // 32KB RAM setchr8(0); // 8KB CHR RAM MapIRQHook=FDSFix; GameStateRestore=FDSStateRestore; SetReadHandler(0x4030,0x4030,FDSRead4030); SetReadHandler(0x4031,0x4031,FDSRead4031); SetReadHandler(0x4032,0x4032,FDSRead4032); SetReadHandler(0x4033,0x4033,FDSRead4033); SetWriteHandler(0x4020,0x4025,FDSWrite); SetWriteHandler(0x6000,0xdfff,FDSRAMWrite); SetReadHandler(0x6000,0xdfff,FDSRAMRead); SetReadHandler(0xE000,0xFFFF,FDSBIOSRead); IRQCount=IRQLatch=IRQa=0; FDSSoundReset(); InDisk=0; SelectDisk=0; }
static void Sync(void) { // bit 7 controls green LED // bit 6 controls red LED int nt = (reg & 0x20) ? 8192 : 0; // bit 5 controls 8k nametable page int chr = (reg & 0x10) ? 1 : 0; // bit 4 selects 8k CHR page int prg = (reg & 0x0F); // bits 0-3 select 32k PRG page nt += (16 * 1024); for (int n=0; n<4; ++n) { setntamem(CHRRAM + nt + (1024 * n),1,n); } setchr8r(0x10, chr); uint32 prg_chip = flash ? 0x10 : 0; setprg32r(prg_chip,0x8000,prg); }