diff options
Diffstat (limited to 'src/mame/drivers/h89.cpp')
-rw-r--r-- | src/mame/drivers/h89.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp index 4cf13cc9353..92d1ca415c6 100644 --- a/src/mame/drivers/h89.cpp +++ b/src/mame/drivers/h89.cpp @@ -49,22 +49,24 @@ public: }; -ADDRESS_MAP_START(h89_state::h89_mem) - ADDRESS_MAP_UNMAP_HIGH +void h89_state::h89_mem(address_map &map) +{ + map.unmap_value_high(); // Bank 0 - At startup has the format defined below, but software could swap it for RAM (Later H-89s and // Early ones with the Org-0 modification), // TODO - define the RAM so it can swap in/out under program control. - AM_RANGE(0x0000, 0x0fff) AM_ROM // Page 0-4 - System ROM (at most 4k(MTR-90), early versions(MTR-88, MTR-89) only had 2k) - AM_RANGE(0x1000, 0x13ff) AM_RAM // Page 5 - Floppy Disk RAM (Write-protectable) - AM_RANGE(0x1400, 0x1fff) AM_ROM // Page 6-7 - Floppy Disk ROM + map(0x0000, 0x0fff).rom(); // Page 0-4 - System ROM (at most 4k(MTR-90), early versions(MTR-88, MTR-89) only had 2k) + map(0x1000, 0x13ff).ram(); // Page 5 - Floppy Disk RAM (Write-protectable) + map(0x1400, 0x1fff).rom(); // Page 6-7 - Floppy Disk ROM // Banks 1-7 - AM_RANGE(0x2000, 0xffff) AM_RAM -ADDRESS_MAP_END + map(0x2000, 0xffff).ram(); +} -ADDRESS_MAP_START(h89_state::h89_io) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) +void h89_state::h89_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); // AM_RANGE(0x78, 0x7b) expansion 1 // Options - Cassette I/O (only uses 0x78 - 0x79) Requires MTR-88 ROM // - H37 5-1/4" Soft-sectored Controller MTR-90 ROM // - H47 Dual 8" Drives - Requires MTR-89 or MTR-90 ROM @@ -76,15 +78,15 @@ ADDRESS_MAP_START(h89_state::h89_io) // AM_RANGE(0xd0, 0xd7) 8250 UART DCE // AM_RANGE(0xd8, 0xdf) 8250 UART DTE - MODEM // AM_RANGE(0xe0, 0xe7) 8250 UART DCE - LP - AM_RANGE(0xe8, 0xef) AM_DEVREADWRITE("ins8250", ins8250_device, ins8250_r, ins8250_w) // 8250 UART console - this + map(0xe8, 0xef).rw("ins8250", FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w)); // 8250 UART console - this // connects internally to a Terminal board // that is also used in the H19. Ideally, // the H19 code could be connected and ran // as a separate thread. // AM_RANGE(0xf0, 0xf1) // ports defined on the H8 - on the H89, access to these addresses causes a NMI - AM_RANGE(0xf2, 0xf2) AM_WRITE(port_f2_w) AM_READ_PORT("SW501") + map(0xf2, 0xf2).w(this, FUNC(h89_state::port_f2_w)).portr("SW501"); // AM_RANGE(0xf3, 0xf3) // ports defined on the H8 - on the H89, access to these addresses causes a NMI -ADDRESS_MAP_END +} /* Input ports */ static INPUT_PORTS_START( h89 ) |