summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pulsar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pulsar.cpp')
-rw-r--r--src/mame/drivers/pulsar.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp
index adc0d86d746..c8c72297f2f 100644
--- a/src/mame/drivers/pulsar.cpp
+++ b/src/mame/drivers/pulsar.cpp
@@ -58,6 +58,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_rom(*this, "maincpu")
, m_ram(*this, "mainram")
+ , m_bank1(*this, "bank1")
, m_fdc (*this, "fdc")
, m_floppy0(*this, "fdc:0")
, m_floppy1(*this, "fdc:1")
@@ -78,12 +79,12 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
- bool m_rom_in_map;
floppy_image_device *m_floppy;
memory_passthrough_handler *m_rom_shadow_tap;
required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_rom;
required_shared_ptr<u8> m_ram;
+ required_memory_bank m_bank1;
required_device<fd1797_device> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
@@ -93,7 +94,7 @@ private:
void pulsar_state::mem_map(address_map &map)
{
map(0x0000, 0xffff).ram().share("mainram");
- map(0xf800, 0xffff).lr8(NAME([this] (offs_t offset) { if(m_rom_in_map) return m_rom[offset]; else return m_ram[offset+0xf800]; }));
+ map(0xf800, 0xffff).bankr("bank1");
}
void pulsar_state::io_map(address_map &map)
@@ -141,7 +142,7 @@ void pulsar_state::ppi_pb_w(u8 data)
m_rtc->read_w(BIT(data, 4));
m_rtc->write_w(BIT(data, 5));
m_rtc->hold_w(BIT(data, 6));
- m_rom_in_map = BIT(data, 7);
+ m_bank1->set_entry(BIT(data, 7));
}
// d0..d3 Data lines to rtc
@@ -186,7 +187,7 @@ INPUT_PORTS_END
void pulsar_state::machine_reset()
{
- m_rom_in_map = true;
+ m_bank1->set_entry(1);
m_rtc->cs_w(1); // always enabled
address_space &program = m_maincpu->space(AS_PROGRAM);
@@ -210,7 +211,8 @@ void pulsar_state::machine_reset()
void pulsar_state::machine_start()
{
// register for savestates
- save_item(NAME(m_rom_in_map));
+ m_bank1->configure_entry(0, m_ram+0xf800);
+ m_bank1->configure_entry(1, m_rom);
}
void pulsar_state::pulsar(machine_config &config)