summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mmd1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mmd1.cpp')
-rw-r--r--src/mame/drivers/mmd1.cpp72
1 files changed, 38 insertions, 34 deletions
diff --git a/src/mame/drivers/mmd1.cpp b/src/mame/drivers/mmd1.cpp
index 0a9605b0c68..9a3d2cb31cc 100644
--- a/src/mame/drivers/mmd1.cpp
+++ b/src/mame/drivers/mmd1.cpp
@@ -249,40 +249,44 @@ READ8_MEMBER( mmd1_state::mmd1_keyboard_r )
return m_return_code;
}
-ADDRESS_MAP_START(mmd1_state::mmd1_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x0000, 0x00ff ) AM_ROM // Main ROM
- AM_RANGE( 0x0100, 0x01ff ) AM_ROM // Expansion slot
- AM_RANGE( 0x0200, 0x02ff ) AM_RAM
- AM_RANGE( 0x0300, 0x03ff ) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mmd1_state::mmd1_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x07)
- AM_RANGE( 0x00, 0x00 ) AM_READWRITE(mmd1_keyboard_r, mmd1_port0_w)
- AM_RANGE( 0x01, 0x01 ) AM_WRITE(mmd1_port1_w)
- AM_RANGE( 0x02, 0x02 ) AM_WRITE(mmd1_port2_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mmd1_state::mmd2_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x03ff) AM_READ_BANK("bank1") AM_WRITE_BANK("bank2")
- AM_RANGE(0x0400, 0x0fff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank4")
- AM_RANGE(0xd800, 0xe3ff) AM_READ_BANK("bank5") AM_WRITE_BANK("bank6")
- AM_RANGE(0xe400, 0xe7ff) AM_READ_BANK("bank7") AM_WRITE_BANK("bank8")
- AM_RANGE(0xfc00, 0xfcff) AM_RAM // Scratchpad
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mmd1_state::mmd2_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x00, 0x00 ) AM_WRITE(mmd1_port0_w)
- AM_RANGE( 0x01, 0x01 ) AM_READWRITE(mmd2_01_r,mmd1_port1_w)
- AM_RANGE( 0x02, 0x02 ) AM_WRITE(mmd1_port2_w)
- AM_RANGE( 0x03, 0x03 ) AM_DEVREADWRITE("i8279", i8279_device, status_r, cmd_w)
- AM_RANGE( 0x04, 0x04 ) AM_DEVREADWRITE("i8279", i8279_device, data_r, data_w)
- AM_RANGE( 0x05, 0x07 ) AM_READ(mmd2_bank_r)
-ADDRESS_MAP_END
+void mmd1_state::mmd1_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x00ff).rom(); // Main ROM
+ map(0x0100, 0x01ff).rom(); // Expansion slot
+ map(0x0200, 0x02ff).ram();
+ map(0x0300, 0x03ff).ram();
+}
+
+void mmd1_state::mmd1_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x07);
+ map(0x00, 0x00).rw(this, FUNC(mmd1_state::mmd1_keyboard_r), FUNC(mmd1_state::mmd1_port0_w));
+ map(0x01, 0x01).w(this, FUNC(mmd1_state::mmd1_port1_w));
+ map(0x02, 0x02).w(this, FUNC(mmd1_state::mmd1_port2_w));
+}
+
+void mmd1_state::mmd2_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x03ff).bankr("bank1").bankw("bank2");
+ map(0x0400, 0x0fff).bankr("bank3").bankw("bank4");
+ map(0xd800, 0xe3ff).bankr("bank5").bankw("bank6");
+ map(0xe400, 0xe7ff).bankr("bank7").bankw("bank8");
+ map(0xfc00, 0xfcff).ram(); // Scratchpad
+}
+
+void mmd1_state::mmd2_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00, 0x00).w(this, FUNC(mmd1_state::mmd1_port0_w));
+ map(0x01, 0x01).rw(this, FUNC(mmd1_state::mmd2_01_r), FUNC(mmd1_state::mmd1_port1_w));
+ map(0x02, 0x02).w(this, FUNC(mmd1_state::mmd1_port2_w));
+ map(0x03, 0x03).rw("i8279", FUNC(i8279_device::status_r), FUNC(i8279_device::cmd_w));
+ map(0x04, 0x04).rw("i8279", FUNC(i8279_device::data_r), FUNC(i8279_device::data_w));
+ map(0x05, 0x07).r(this, FUNC(mmd1_state::mmd2_bank_r));
+}
/* Input ports */