summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ibmpcjr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ibmpcjr.cpp')
-rw-r--r--src/mame/drivers/ibmpcjr.cpp80
1 files changed, 42 insertions, 38 deletions
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index 2492da2af95..1db58a6c4b8 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -542,44 +542,48 @@ static GFXDECODE_START( pcjr )
GFXDECODE_END
-ADDRESS_MAP_START(pcjr_state::ibmpcjr_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0xb8000, 0xbffff) AM_DEVICE("pcvideo_pcjr:vram", address_map_bank_device, amap8)
- AM_RANGE(0xd0000, 0xdffff) AM_DEVREAD("cartslot2", generic_slot_device, read_rom)
- AM_RANGE(0xe0000, 0xeffff) AM_DEVREAD("cartslot1", generic_slot_device, read_rom)
- AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION("bios", 0)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(pcjr_state::ibmpcjr_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0020, 0x0021) AM_DEVREADWRITE("pic8259", pic8259_device, read, write)
- AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE("pit8253", pit8253_device, read, write)
- AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
- AM_RANGE(0x00a0, 0x00a0) AM_READWRITE(pcjr_nmi_enable_r, pc_nmi_enable_w )
- AM_RANGE(0x00c0, 0x00c0) AM_DEVWRITE("sn76496", sn76496_device, write)
- AM_RANGE(0x00f2, 0x00f2) AM_WRITE(pcjr_fdc_dor_w)
- AM_RANGE(0x00f4, 0x00f5) AM_DEVICE("fdc", upd765a_device, map)
- AM_RANGE(0x0200, 0x0207) AM_DEVREADWRITE("pc_joy", pc_joy_device, joy_port_r, joy_port_w)
- AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE("ins8250", ins8250_device, ins8250_r, ins8250_w)
- AM_RANGE(0x0378, 0x037b) AM_DEVREADWRITE("lpt_0", pc_lpt_device, read, write)
- AM_RANGE(0x03d0, 0x03df) AM_DEVREAD("pcvideo_pcjr", pcvideo_pcjr_device, read) AM_DEVWRITE("pcvideo_pcjr", pcvideo_pcjr_device, write)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(pcjr_state::ibmpcjx_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x80000, 0xb7fff) AM_ROM AM_REGION("kanji",0)
- AM_RANGE(0x80000, 0x9ffff) AM_RAM AM_SHARE("vram") // TODO: remove this part of vram hack
- AM_RANGE(0xb8000, 0xbffff) AM_DEVICE("pcvideo_pcjr:vram", address_map_bank_device, amap8)
- AM_RANGE(0xd0000, 0xdffff) AM_DEVREAD("cartslot1", generic_slot_device, read_rom)
- AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("bios", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(pcjr_state::ibmpcjx_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_IMPORT_FROM( ibmpcjr_io )
- AM_RANGE(0x01ff, 0x01ff) AM_READWRITE(pcjx_port_1ff_r, pcjx_port_1ff_w)
-ADDRESS_MAP_END
+void pcjr_state::ibmpcjr_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0xb8000, 0xbffff).m("pcvideo_pcjr:vram", FUNC(address_map_bank_device::amap8));
+ map(0xd0000, 0xdffff).r(m_cart2, FUNC(generic_slot_device::read_rom));
+ map(0xe0000, 0xeffff).r(m_cart1, FUNC(generic_slot_device::read_rom));
+ map(0xf0000, 0xfffff).rom().region("bios", 0);
+}
+
+
+void pcjr_state::ibmpcjr_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0020, 0x0021).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
+ map(0x0040, 0x0043).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
+ map(0x0060, 0x0063).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x00a0, 0x00a0).rw(this, FUNC(pcjr_state::pcjr_nmi_enable_r), FUNC(pcjr_state::pc_nmi_enable_w));
+ map(0x00c0, 0x00c0).w("sn76496", FUNC(sn76496_device::write));
+ map(0x00f2, 0x00f2).w(this, FUNC(pcjr_state::pcjr_fdc_dor_w));
+ map(0x00f4, 0x00f5).m(m_fdc, FUNC(upd765a_device::map));
+ map(0x0200, 0x0207).rw("pc_joy", FUNC(pc_joy_device::joy_port_r), FUNC(pc_joy_device::joy_port_w));
+ map(0x02f8, 0x02ff).rw("ins8250", FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w));
+ map(0x0378, 0x037b).rw("lpt_0", FUNC(pc_lpt_device::read), FUNC(pc_lpt_device::write));
+ map(0x03d0, 0x03df).r("pcvideo_pcjr", FUNC(pcvideo_pcjr_device::read)).w("pcvideo_pcjr", FUNC(pcvideo_pcjr_device::write));
+}
+
+void pcjr_state::ibmpcjx_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x80000, 0xb7fff).rom().region("kanji", 0);
+ map(0x80000, 0x9ffff).ram().share("vram"); // TODO: remove this part of vram hack
+ map(0xb8000, 0xbffff).m("pcvideo_pcjr:vram", FUNC(address_map_bank_device::amap8));
+ map(0xd0000, 0xdffff).r(m_cart1, FUNC(generic_slot_device::read_rom));
+ map(0xe0000, 0xfffff).rom().region("bios", 0);
+}
+
+void pcjr_state::ibmpcjx_io(address_map &map)
+{
+ map.unmap_value_high();
+ ibmpcjr_io(map);
+ map(0x01ff, 0x01ff).rw(this, FUNC(pcjr_state::pcjx_port_1ff_r), FUNC(pcjr_state::pcjx_port_1ff_w));
+}
MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
/* basic machine hardware */