apple/apple2gs.cpp: Fix language card state after Control-Reset. (GitHub #13420) [R. Belmont]

This commit is contained in:
arbee 2025-03-09 13:24:05 -04:00
parent 82b391615e
commit 3029c6c69a

View File

@ -473,6 +473,7 @@ private:
u8 m_clkdata = 0, m_clock_control = 0;
u8 m_clock_frame = 0;
void lcrom_update();
void do_io(int offset);
u8 read_floatingbus();
void update_slotrom_banks();
@ -1266,20 +1267,7 @@ void apple2gs_state::lc_update(int offset, bool writing)
if (m_lcram != old_lcram)
{
if (m_lcram)
{
m_lcbank.select(1);
m_lcaux.select(1);
m_lc00.select(1 + (m_romswitch ? 2 : 0));
m_lc01.select(1);
}
else
{
m_lcbank.select(0);
m_lcaux.select(0);
m_lc00.select(0 + (m_romswitch ? 2 : 0));
m_lc01.select(0);
}
lcrom_update();
}
#if 0
@ -1291,6 +1279,24 @@ void apple2gs_state::lc_update(int offset, bool writing)
#endif
}
void apple2gs_state::lcrom_update()
{
if (m_lcram)
{
m_lcbank.select(1);
m_lcaux.select(1);
m_lc00.select(1 + (m_romswitch ? 2 : 0));
m_lc01.select(1);
}
else
{
m_lcbank.select(0);
m_lcaux.select(0);
m_lc00.select(0 + (m_romswitch ? 2 : 0));
m_lc01.select(0);
}
}
// most softswitches don't care about read vs write, so handle them here
void apple2gs_state::do_io(int offset)
{
@ -3412,6 +3418,7 @@ void apple2gs_state::adbmicro_p2_out(u8 data)
m_video->page2_w(false);
m_video->res_w(0);
lcrom_update();
auxbank_update();
update_slotrom_banks();
}