50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
// 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 )
|
|
{
|
|
//
|
|
}
|