novag6502: get rid of bankswitch tag lookup (nw)

This commit is contained in:
hap 2018-05-19 17:10:16 +02:00
parent d081086940
commit eeb2c80ce2
3 changed files with 13 additions and 9 deletions

View File

@ -924,7 +924,9 @@ WRITE8_MEMBER(fidel6502_state::sc12_trampoline_w)
READ8_MEMBER(fidel6502_state::sc12_trampoline_r)
{
sc12_set_cpu_freq(offset);
if (!machine().side_effects_disabled())
sc12_set_cpu_freq(offset);
return m_sc12_map->read8(space, offset);
}

View File

@ -79,10 +79,12 @@ class novag6502_state : public novagbase_state
public:
novag6502_state(const machine_config &mconfig, device_type type, const char *tag)
: novagbase_state(mconfig, type, tag),
m_hlcd0538(*this, "hlcd0538")
m_hlcd0538(*this, "hlcd0538"),
m_rombank(*this, "rombank")
{ }
optional_device<hlcd0538_device> m_hlcd0538;
optional_memory_bank m_rombank;
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE); }
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); }
@ -423,7 +425,7 @@ WRITE8_MEMBER(novag6502_state::sexpert_leds_w)
WRITE8_MEMBER(novag6502_state::sexpert_mux_w)
{
// d0: rom bankswitch
membank("bank1")->set_entry(data & 1);
m_rombank->set_entry(data & 1);
// d3: enable beeper
m_beeper->set_state(data >> 3 & 1);
@ -458,12 +460,12 @@ MACHINE_RESET_MEMBER(novag6502_state, sexpert)
novagbase_state::machine_reset();
sexpert_set_cpu_freq();
membank("bank1")->set_entry(0);
m_rombank->set_entry(0);
}
void novag6502_state::init_sexpert()
{
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x8000, 0x8000);
m_rombank->configure_entries(0, 2, memregion("maincpu")->base() + 0x8000, 0x8000);
}
@ -475,7 +477,7 @@ void novag6502_state::init_sexpert()
WRITE8_MEMBER(novag6502_state::sforte_lcd_control_w)
{
// d3: rom bankswitch
membank("bank1")->set_entry(data >> 3 & 1);
m_rombank->set_entry(data >> 3 & 1);
// assume same as sexpert
sexpert_lcd_control_w(space, 0, data);
@ -540,7 +542,7 @@ void novag6502_state::sforte_map(address_map &map)
map(0x1ff7, 0x1ff7).w(this, FUNC(novag6502_state::sforte_lcd_data_w));
map(0x1ffc, 0x1fff).rw("acia", FUNC(mos6551_device::read), FUNC(mos6551_device::write));
map(0x2000, 0x7fff).rom();
map(0x8000, 0xffff).bankr("bank1");
map(0x8000, 0xffff).bankr("rombank");
}
void novag6502_state::sexpert_map(address_map &map)

View File

@ -288,7 +288,7 @@ MACHINE_CONFIG_END
******************************************************************************/
ROM_START( diablo68 )
ROM_REGION16_BE( 0x20000, "maincpu", 0 )
ROM_REGION16_BE( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE("evenurom.bin", 0x00000, 0x8000, CRC(03477746) SHA1(8bffcb159a61e59bfc45411e319aea6501ebe2f9) )
ROM_LOAD16_BYTE("oddlrom.bin", 0x00001, 0x8000, CRC(e182dbdd) SHA1(24dacbef2173fa737636e4729ff22ec1e6623ca5) )
ROM_LOAD16_BYTE("book.bin", 0x10000, 0x8000, CRC(553a5c8c) SHA1(ccb5460ff10766a5ca8008ae2cffcff794318108) ) // no odd rom
@ -296,7 +296,7 @@ ROM_END
ROM_START( scorpio68 )
ROM_REGION16_BE( 0x20000, "maincpu", 0 )
ROM_REGION16_BE( 0x20000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE("s_evn_904.u3", 0x00000, 0x8000, CRC(a8f63245) SHA1(0ffdc6eb8ecad730440b0bfb2620fb00820e1aea) )
ROM_LOAD16_BYTE("s_odd_c18.u2", 0x00001, 0x8000, CRC(4f033319) SHA1(fce228b1705b7156d4d01ef92b22a875d0f6f321) )
ROM_LOAD16_BYTE("502.u4", 0x10000, 0x8000, CRC(553a5c8c) SHA1(ccb5460ff10766a5ca8008ae2cffcff794318108) ) // no odd rom