summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/busicom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/busicom.cpp')
-rw-r--r--src/mame/drivers/busicom.cpp57
1 files changed, 31 insertions, 26 deletions
diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp
index ae6cfa4cf86..8c9146a93f9 100644
--- a/src/mame/drivers/busicom.cpp
+++ b/src/mame/drivers/busicom.cpp
@@ -99,32 +99,37 @@ WRITE8_MEMBER(busicom_state::printer_ctrl_w)
{
}
-ADDRESS_MAP_START(busicom_state::busicom_rom)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x04FF) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(busicom_state::busicom_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x07F) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(busicom_state::busicom_stat)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x01F) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(busicom_state::busicom_rp)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_WRITE(shifter_w) // ROM0 I/O
- AM_RANGE(0x0010, 0x001f) AM_MIRROR(0x0700) AM_READWRITE(keyboard_r,printer_ctrl_w) // ROM1 I/O
- AM_RANGE(0x0020, 0x002f) AM_MIRROR(0x0700) AM_READ(printer_r) // ROM2 I/O
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(busicom_state::busicom_mp)
- AM_RANGE(0x00, 0x00) AM_WRITE(printer_w) // RAM0 output
- AM_RANGE(0x01, 0x01) AM_WRITE(status_w) // RAM1 output
-ADDRESS_MAP_END
+void busicom_state::busicom_rom(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x04FF).rom().region("maincpu", 0);
+}
+
+void busicom_state::busicom_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x07F).ram();
+}
+
+void busicom_state::busicom_stat(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x01F).ram();
+}
+
+void busicom_state::busicom_rp(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x000f).mirror(0x0700).w(this, FUNC(busicom_state::shifter_w)); // ROM0 I/O
+ map(0x0010, 0x001f).mirror(0x0700).rw(this, FUNC(busicom_state::keyboard_r), FUNC(busicom_state::printer_ctrl_w)); // ROM1 I/O
+ map(0x0020, 0x002f).mirror(0x0700).r(this, FUNC(busicom_state::printer_r)); // ROM2 I/O
+}
+
+void busicom_state::busicom_mp(address_map &map)
+{
+ map(0x00, 0x00).w(this, FUNC(busicom_state::printer_w)); // RAM0 output
+ map(0x01, 0x01).w(this, FUNC(busicom_state::status_w)); // RAM1 output
+}
/* Input ports */
static INPUT_PORTS_START( busicom )