////////////////////////////////////////////////////////////////////////// // BoardBS5 Êý¶ÀËĺÏÒ» // ////////////////////////////////////////////////////////////////////////// void BoardBS5::Reset() { dip_s++; if(dip_s==4) dip_s=0; reg_prg[0] = reg_prg[1] = reg_prg[2] = reg_prg[3] = 0x0f; reg_chr[0] = reg_chr[1] = reg_chr[2] = reg_chr[3] = 0x00; SetVRAM_Mirror( VRAM_VMIRROR ); SetBank(); } void BoardBS5::Write( WORD addr, BYTE data ) { int bank = (addr & 0xC00) >> 10; switch (addr & 0xF000) { case 0x8000: reg_chr[bank] = addr & 0x1F; break; case 0xA000: if (addr & (1 << ((dip_s&3)|4))) reg_prg[bank] = addr & 0x0F; break; } SetBank(); } void BoardBS5::SetBank() { SetPROM_8K_Bank(4, reg_prg[0]); SetPROM_8K_Bank(5, reg_prg[1]); SetPROM_8K_Bank(6, reg_prg[2]); SetPROM_8K_Bank(7, reg_prg[3]); SetVROM_2K_Bank(0, reg_chr[0]); SetVROM_2K_Bank(2, reg_chr[1]); SetVROM_2K_Bank(4, reg_chr[2]); SetVROM_2K_Bank(6, reg_chr[3]); } void BoardBS5::SaveState( LPBYTE p ) { // } void BoardBS5::LoadState( LPBYTE p ) { // }