summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/radio86.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/radio86.cpp')
-rw-r--r--src/mame/drivers/radio86.cpp148
1 files changed, 78 insertions, 70 deletions
diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp
index 245edc71c29..41c4a6fb843 100644
--- a/src/mame/drivers/radio86.cpp
+++ b/src/mame/drivers/radio86.cpp
@@ -25,81 +25,89 @@
/* Address maps */
-ADDRESS_MAP_START(radio86_state::radio86_mem)
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0x7fff ) AM_RAM // RAM
- AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
+void radio86_state::radio86_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0x7fff).ram(); // RAM
+ map(0x8000, 0x8003).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x1ffc);
//AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x1ffc)
- AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
- AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf000, 0xffff ) AM_ROM // System ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::radio86_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x00, 0xff ) AM_READWRITE(radio_io_r,radio_io_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::rk7007_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x80, 0x83 ) AM_DEVREADWRITE("ms7007", i8255_device, read, write)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::radio86rom_mem)
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0x7fff ) AM_RAM // RAM
- AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
- AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x1ffc)
- AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
- AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf000, 0xffff ) AM_ROM // System ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::radio86ram_mem)
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0xdfff ) AM_RAM // RAM
- AM_RANGE( 0xe000, 0xe7ff ) AM_ROM // System ROM page 2
- AM_RANGE( 0xe800, 0xf5ff ) AM_RAM // RAM
- AM_RANGE( 0xf700, 0xf703 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
- AM_RANGE( 0xf780, 0xf7bf ) AM_DEVREADWRITE("i8275", i8275_device, read, write) // video
- AM_RANGE( 0xf684, 0xf687 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write)
- AM_RANGE( 0xf688, 0xf688 ) AM_WRITE(radio86_pagesel )
- AM_RANGE( 0xf800, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf800, 0xffff ) AM_ROM // System ROM page 1
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::radio86_16_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0x3fff ) AM_RAM // RAM
- AM_RANGE( 0x4000, 0x7fff ) AM_READ(radio_cpu_state_r)
- AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
+ map(0xc000, 0xc001).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)).mirror(0x1ffe); // video
+ map(0xe000, 0xffff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf000, 0xffff).rom(); // System ROM
+}
+
+void radio86_state::radio86_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00, 0xff).rw(this, FUNC(radio86_state::radio_io_r), FUNC(radio86_state::radio_io_w));
+}
+
+void radio86_state::rk7007_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x80, 0x83).rw("ms7007", FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
+
+void radio86_state::radio86rom_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0x7fff).ram(); // RAM
+ map(0x8000, 0x8003).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x1ffc);
+ map(0xa000, 0xa003).rw(m_ppi8255_2, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x1ffc);
+ map(0xc000, 0xc001).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)).mirror(0x1ffe); // video
+ map(0xe000, 0xffff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf000, 0xffff).rom(); // System ROM
+}
+
+void radio86_state::radio86ram_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0xdfff).ram(); // RAM
+ map(0xe000, 0xe7ff).rom(); // System ROM page 2
+ map(0xe800, 0xf5ff).ram(); // RAM
+ map(0xf700, 0xf703).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xf780, 0xf7bf).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)); // video
+ map(0xf684, 0xf687).rw(m_ppi8255_2, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xf688, 0xf688).w(this, FUNC(radio86_state::radio86_pagesel));
+ map(0xf800, 0xffff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf800, 0xffff).rom(); // System ROM page 1
+}
+
+void radio86_state::radio86_16_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0x3fff).ram(); // RAM
+ map(0x4000, 0x7fff).r(this, FUNC(radio86_state::radio_cpu_state_r));
+ map(0x8000, 0x8003).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x1ffc);
//AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x1ffc)
- AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
- AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf000, 0xffff ) AM_ROM // System ROM
-ADDRESS_MAP_END
+ map(0xc000, 0xc001).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)).mirror(0x1ffe); // video
+ map(0xe000, 0xffff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf000, 0xffff).rom(); // System ROM
+}
-ADDRESS_MAP_START(radio86_state::mikron2_mem)
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0x7fff ) AM_RAM // RAM
- AM_RANGE( 0xc000, 0xc003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x00fc)
+void radio86_state::mikron2_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0x7fff).ram(); // RAM
+ map(0xc000, 0xc003).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x00fc);
//AM_RANGE( 0xc100, 0xc103 ) AM_DEVREADWRITE_LEGACY("ppi8255_2", i8255a_r, i8255a_w) AM_MIRROR(0x00fc)
- AM_RANGE( 0xc200, 0xc201 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x00fe) // video
- AM_RANGE( 0xc300, 0xc3ff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf000, 0xffff ) AM_ROM // System ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(radio86_state::impuls03_mem)
- AM_RANGE( 0x0000, 0x0fff ) AM_RAMBANK("bank1") // First bank
- AM_RANGE( 0x1000, 0x7fff ) AM_RAM // RAM
- AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
- AM_RANGE( 0xa000, 0xbfff ) AM_ROM // Basic ROM
- AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
- AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, write) // DMA
- AM_RANGE( 0xf000, 0xffff ) AM_ROM // System ROM
-ADDRESS_MAP_END
+ map(0xc200, 0xc201).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)).mirror(0x00fe); // video
+ map(0xc300, 0xc3ff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf000, 0xffff).rom(); // System ROM
+}
+
+void radio86_state::impuls03_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).bankrw("bank1"); // First bank
+ map(0x1000, 0x7fff).ram(); // RAM
+ map(0x8000, 0x8003).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write)).mirror(0x1ffc);
+ map(0xa000, 0xbfff).rom(); // Basic ROM
+ map(0xc000, 0xc001).rw("i8275", FUNC(i8275_device::read), FUNC(i8275_device::write)).mirror(0x1ffe); // video
+ map(0xe000, 0xffff).w(m_dma8257, FUNC(i8257_device::write)); // DMA
+ map(0xf000, 0xffff).rom(); // System ROM
+}
/* Input ports */
INPUT_PORTS_START( radio86 )