summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/tsispch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tsispch.cpp')
-rw-r--r--src/mame/drivers/tsispch.cpp46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp
index 31a429454ea..17fe7af5025 100644
--- a/src/mame/drivers/tsispch.cpp
+++ b/src/mame/drivers/tsispch.cpp
@@ -311,31 +311,35 @@ DRIVER_INIT_MEMBER(tsispch_state,prose2k)
1 1 0 * * * * * * * * * * * * * * * * s ROMs 2 and 3
1 1 1 * * * * * * * * * * * * * * * * s ROMs 0 and 1
*/
-ADDRESS_MAP_START(tsispch_state::i8086_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x00000, 0x02FFF) AM_MIRROR(0x34000) AM_RAM // verified; 6264*2 sram, only first 3/4 used
- AM_RANGE(0x03000, 0x03001) AM_MIRROR(0x341FC) AM_DEVREADWRITE8("i8251a_u15", i8251_device, data_r, data_w, 0x00FF)
- AM_RANGE(0x03002, 0x03003) AM_MIRROR(0x341FC) AM_DEVREADWRITE8("i8251a_u15", i8251_device, status_r, control_w, 0x00FF)
- AM_RANGE(0x03200, 0x03203) AM_MIRROR(0x341FC) AM_DEVREADWRITE8("pic8259", pic8259_device, read, write, 0x00FF) // AMD P8259 PIC @ U5 (reads as 04 and 7c, upper byte is open bus)
- AM_RANGE(0x03400, 0x03401) AM_MIRROR(0x341FE) AM_READ8(dsw_r, 0x00FF) // verified, read from dipswitch s4
- AM_RANGE(0x03400, 0x03401) AM_MIRROR(0x341FE) AM_WRITE8(peripheral_w, 0xFF00) // verified, write to the 4 leds, plus 4 control bits
- AM_RANGE(0x03600, 0x03601) AM_MIRROR(0x341FC) AM_READWRITE(dsp_data_r, dsp_data_w) // verified; UPD77P20 data reg r/w
- AM_RANGE(0x03602, 0x03603) AM_MIRROR(0x341FC) AM_READWRITE(dsp_status_r, dsp_status_w) // verified; UPD77P20 status reg r
- AM_RANGE(0xc0000, 0xfffff) AM_ROM // verified
-ADDRESS_MAP_END
+void tsispch_state::i8086_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00000, 0x02FFF).mirror(0x34000).ram(); // verified; 6264*2 sram, only first 3/4 used
+ map(0x03000, 0x03000).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0x03002, 0x03002).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x03200, 0x03203).mirror(0x341FC).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); // AMD P8259 PIC @ U5 (reads as 04 and 7c, upper byte is open bus)
+ map(0x03400, 0x03400).mirror(0x341FE).r(this, FUNC(tsispch_state::dsw_r)); // verified, read from dipswitch s4
+ map(0x03401, 0x03401).mirror(0x341FE).w(this, FUNC(tsispch_state::peripheral_w)); // verified, write to the 4 leds, plus 4 control bits
+ map(0x03600, 0x03601).mirror(0x341FC).rw(this, FUNC(tsispch_state::dsp_data_r), FUNC(tsispch_state::dsp_data_w)); // verified; UPD77P20 data reg r/w
+ map(0x03602, 0x03603).mirror(0x341FC).rw(this, FUNC(tsispch_state::dsp_status_r), FUNC(tsispch_state::dsp_status_w)); // verified; UPD77P20 status reg r
+ map(0xc0000, 0xfffff).rom(); // verified
+}
// Technically the IO line of the i8086 is completely ignored (it is running in 8086 MIN mode,I believe, which may ignore IO)
-ADDRESS_MAP_START(tsispch_state::i8086_io)
- ADDRESS_MAP_UNMAP_HIGH
-ADDRESS_MAP_END
+void tsispch_state::i8086_io(address_map &map)
+{
+ map.unmap_value_high();
+}
-ADDRESS_MAP_START(tsispch_state::dsp_prg_map)
- AM_RANGE(0x0000, 0x01ff) AM_ROM AM_REGION("dspprg", 0)
-ADDRESS_MAP_END
+void tsispch_state::dsp_prg_map(address_map &map)
+{
+ map(0x0000, 0x01ff).rom().region("dspprg", 0);
+}
-ADDRESS_MAP_START(tsispch_state::dsp_data_map)
- AM_RANGE(0x0000, 0x01ff) AM_ROM AM_REGION("dspdata", 0)
-ADDRESS_MAP_END
+void tsispch_state::dsp_data_map(address_map &map)
+{
+ map(0x0000, 0x01ff).rom().region("dspdata", 0);
+}
/******************************************************************************