summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/ie15.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/ie15.cpp')
-rw-r--r--src/devices/machine/ie15.cpp50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/devices/machine/ie15.cpp b/src/devices/machine/ie15.cpp
index 62eb2f2a15e..8449a72c53e 100644
--- a/src/devices/machine/ie15.cpp
+++ b/src/devices/machine/ie15.cpp
@@ -332,32 +332,34 @@ WRITE8_MEMBER(ie15_device::flag_w)
}
}
-ADDRESS_MAP_START(ie15_device::ie15_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ie15_device::ie15_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(000, 000) AM_READWRITE(mem_r, mem_w) // 00h W: memory request, R: memory data [6.1.2.2]
- AM_RANGE(001, 001) AM_READ(serial_rx_ready_r) AM_WRITENOP // 01h W: memory latch [6.1.2.2]
- AM_RANGE(002, 002) AM_WRITE(mem_addr_hi_w) // 02h W: memory address high [6.1.2.2]
- AM_RANGE(003, 003) AM_WRITE(mem_addr_lo_w) // 03h W: memory address low [6.1.2.2]
- AM_RANGE(004, 004) AM_WRITE(mem_addr_inc_w) // 04h W: memory address counter + [6.1.2.2]
- AM_RANGE(005, 005) AM_WRITE(mem_addr_dec_w) // 05h W: memory address counter - [6.1.2.2]
- AM_RANGE(006, 006) AM_READWRITE(serial_r, serial_w) // 06h W: serial port data [6.1.5.4]
+void ie15_device::ie15_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x0fff).rom();
+}
+
+void ie15_device::ie15_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(000, 000).rw(this, FUNC(ie15_device::mem_r), FUNC(ie15_device::mem_w)); // 00h W: memory request, R: memory data [6.1.2.2]
+ map(001, 001).r(this, FUNC(ie15_device::serial_rx_ready_r)).nopw(); // 01h W: memory latch [6.1.2.2]
+ map(002, 002).w(this, FUNC(ie15_device::mem_addr_hi_w)); // 02h W: memory address high [6.1.2.2]
+ map(003, 003).w(this, FUNC(ie15_device::mem_addr_lo_w)); // 03h W: memory address low [6.1.2.2]
+ map(004, 004).w(this, FUNC(ie15_device::mem_addr_inc_w)); // 04h W: memory address counter + [6.1.2.2]
+ map(005, 005).w(this, FUNC(ie15_device::mem_addr_dec_w)); // 05h W: memory address counter - [6.1.2.2]
+ map(006, 006).rw(this, FUNC(ie15_device::serial_r), FUNC(ie15_device::serial_w)); // 06h W: serial port data [6.1.5.4]
// port 7 is handled in cpu core
- AM_RANGE(010, 010) AM_READWRITE(serial_tx_ready_r, beep_w) // 08h W: speaker control [6.1.5.4]
- AM_RANGE(011, 011) AM_READ(kb_r) // 09h R: keyboard data [6.1.5.2]
- AM_RANGE(012, 012) AM_READ(kb_s_red_r) // 0Ah I: keyboard mode "RED" [6.1.5.2]
- AM_RANGE(013, 013) AM_READ(kb_ready_r) // 0Bh R: keyboard data ready [6.1.5.2]
- AM_RANGE(014, 014) AM_READWRITE(kb_s_sdv_r, serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
- AM_RANGE(015, 015) AM_READWRITE(kb_s_dk_r, kb_ready_w) // 0Dh I: keyboard mode "DK" [6.1.5.2]
- AM_RANGE(016, 016) AM_READ(kb_s_dupl_r) // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
- AM_RANGE(017, 017) AM_READ(kb_s_lin_r) // 0Fh I: keyboard mode "LIN" [6.1.5.2]
+ map(010, 010).rw(this, FUNC(ie15_device::serial_tx_ready_r), FUNC(ie15_device::beep_w)); // 08h W: speaker control [6.1.5.4]
+ map(011, 011).r(this, FUNC(ie15_device::kb_r)); // 09h R: keyboard data [6.1.5.2]
+ map(012, 012).r(this, FUNC(ie15_device::kb_s_red_r)); // 0Ah I: keyboard mode "RED" [6.1.5.2]
+ map(013, 013).r(this, FUNC(ie15_device::kb_ready_r)); // 0Bh R: keyboard data ready [6.1.5.2]
+ map(014, 014).rw(this, FUNC(ie15_device::kb_s_sdv_r), FUNC(ie15_device::serial_speed_w)); // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
+ map(015, 015).rw(this, FUNC(ie15_device::kb_s_dk_r), FUNC(ie15_device::kb_ready_w)); // 0Dh I: keyboard mode "DK" [6.1.5.2]
+ map(016, 016).r(this, FUNC(ie15_device::kb_s_dupl_r)); // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
+ map(017, 017).r(this, FUNC(ie15_device::kb_s_lin_r)); // 0Fh I: keyboard mode "LIN" [6.1.5.2]
// simulation of flag registers
- AM_RANGE(020, 027) AM_READWRITE(flag_r, flag_w)
-ADDRESS_MAP_END
+ map(020, 027).rw(this, FUNC(ie15_device::flag_r), FUNC(ie15_device::flag_w));
+}
/* Input ports */
INPUT_PORTS_START( ie15 )