mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
ceci: Fixed spacebar bug that made it impossible to type BASIC programs, fixed C300 banking, added HGR color killer softswitch. [R. Belmont]
This commit is contained in:
parent
92808ea4fa
commit
8df5f1e974
@ -761,6 +761,7 @@ void apple2e_state::machine_reset()
|
||||
{
|
||||
m_page2 = false;
|
||||
m_video->m_page2 = false;
|
||||
m_video->m_monohgr = false;
|
||||
m_an0 = m_an1 = m_an2 = m_an3 = false;
|
||||
m_vbl = m_vblmask = false;
|
||||
m_slotc3rom = false;
|
||||
@ -1080,17 +1081,24 @@ void apple2e_state::update_slotrom_banks()
|
||||
if (!m_intcxrom)
|
||||
{
|
||||
m_c100bank->set_bank(3);
|
||||
m_c300bank->set_bank(3);
|
||||
m_c400bank->set_bank(3);
|
||||
m_c800bank->set_bank(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_c100bank->set_bank(4);
|
||||
m_c300bank->set_bank(4);
|
||||
m_c400bank->set_bank(4);
|
||||
m_c800bank->set_bank(4);
|
||||
}
|
||||
|
||||
if ((m_intcxrom) || (!m_slotc3rom))
|
||||
{
|
||||
m_c300bank->set_bank(4);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_c300bank->set_bank(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2039,6 +2047,15 @@ WRITE8_MEMBER(apple2e_state::c080_w)
|
||||
if (data != m_cec_bank)
|
||||
{
|
||||
m_cec_bank = data;
|
||||
if (data & 0x10)
|
||||
{
|
||||
m_video->m_monohgr = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_video->m_monohgr = true;
|
||||
}
|
||||
|
||||
auxbank_update();
|
||||
update_slotrom_banks();
|
||||
}
|
||||
@ -2778,7 +2795,7 @@ WRITE_LINE_MEMBER(apple2e_state::ay3600_data_ready_w)
|
||||
m_transchar = decode[trans];
|
||||
m_strobe = 0x80;
|
||||
|
||||
// printf("new char = %04x (%02x)\n", m_lastchar, m_transchar);
|
||||
//printf("new char = %04x (%02x)\n", m_lastchar, m_transchar);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3057,8 +3074,8 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k')
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s')
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4) PORT_NAME("F4")
|
||||
PORT_BIT(0x240, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
|
||||
PORT_BIT(0x240, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X1")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
@ -3068,7 +3085,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l')
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t')
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5) PORT_NAME("F5")
|
||||
PORT_BIT(0x340, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
|
||||
PORT_BIT(0x340, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X2")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"')
|
||||
@ -3079,7 +3096,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u')
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F7) PORT_NAME("CN")
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
|
||||
PORT_BIT(0x300, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x300, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X3")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
|
||||
@ -3089,7 +3106,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v')
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
|
||||
PORT_BIT(0x340, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x340, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X4")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
|
||||
@ -3101,7 +3118,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F8) PORT_NAME("EN")
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F9) PORT_NAME("STOP")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT)
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X5")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
|
||||
@ -3112,7 +3129,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_NAME("F1")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP)
|
||||
PORT_BIT(0x280, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x280, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X6")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
|
||||
@ -3123,7 +3140,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y')
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_NAME("F2")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(10)
|
||||
PORT_BIT(0x280, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x280, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X7")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
|
||||
@ -3135,7 +3152,7 @@ static INPUT_PORTS_START( ceci )
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) PORT_NAME("F3")
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT)
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD)
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("X8")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
@ -1368,6 +1368,12 @@ void a2_video_device::hgr_update(screen_device &screen, bitmap_ind16 &bitmap, co
|
||||
artifact_map_ptr = &m_hires_artifact_map[((vram_row[col + 1] & 0x80) >> 7) * 16];
|
||||
}
|
||||
|
||||
// CEC mono HGR mode
|
||||
if ((m_monohgr) && (mon_type == 0))
|
||||
{
|
||||
mon_type = 1;
|
||||
}
|
||||
|
||||
switch (mon_type)
|
||||
{
|
||||
case 0:
|
||||
|
@ -28,6 +28,8 @@ public:
|
||||
bool m_80col;
|
||||
bool m_altcharset;
|
||||
bool m_an2;
|
||||
bool m_monohgr;
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_hires_artifact_map;
|
||||
std::unique_ptr<uint16_t[]> m_dhires_artifact_map;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user