//////////////////////////////////////////////////////////////////////////
// Mapper058                                                            //
//////////////////////////////////////////////////////////////////////////
void	Mapper058::Reset()
{
	SetPROM_32K_Bank( 0, 1, 0, 1 );
	if( VROM_1K_SIZE ) {
		SetVROM_8K_Bank( 0 );
	}
}

void	Mapper058::Write( WORD addr, BYTE data )
{
	if( addr & 0x40 ) {
		SetPROM_16K_Bank( 4, addr&0x07 );
		SetPROM_16K_Bank( 6, addr&0x07 );
	} else {
		SetPROM_32K_Bank( (addr&0x06)>>1 );
	}

	if( VROM_1K_SIZE ) {
		SetVROM_8K_Bank( (addr&0x38)>>3 );
	}

	if( data & 0x02 ) SetVRAM_Mirror( VRAM_VMIRROR );
	else		  SetVRAM_Mirror( VRAM_HMIRROR );
}