diff options
Diffstat (limited to 'src/mame/drivers/hazeltin.cpp')
-rw-r--r-- | src/mame/drivers/hazeltin.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index c9234e81d6c..9def1865588 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -474,21 +474,23 @@ WRITE8_MEMBER(hazl1500_state::refresh_address_w) m_cpu_db7->write((data >> 7) & 1); } -ADDRESS_MAP_START(hazl1500_state::hazl1500_mem) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x3000, 0x377f) AM_READWRITE(ram_r, ram_w) - AM_RANGE(0x3780, 0x37ff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(hazl1500_state::hazl1500_io) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x7f, 0x7f) AM_READWRITE(status_reg_2_r, status_reg_3_w) - AM_RANGE(0xbf, 0xbf) AM_READWRITE(uart_r, uart_w) - AM_RANGE(0xdf, 0xdf) AM_READ(kbd_encoder_r) - AM_RANGE(0xef, 0xef) AM_READWRITE(system_test_r, refresh_address_w) - AM_RANGE(0xf7, 0xf7) AM_READ(kbd_status_latch_r) -ADDRESS_MAP_END +void hazl1500_state::hazl1500_mem(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x07ff).rom(); + map(0x3000, 0x377f).rw(this, FUNC(hazl1500_state::ram_r), FUNC(hazl1500_state::ram_w)); + map(0x3780, 0x37ff).ram(); +} + +void hazl1500_state::hazl1500_io(address_map &map) +{ + map.global_mask(0xff); + map(0x7f, 0x7f).rw(this, FUNC(hazl1500_state::status_reg_2_r), FUNC(hazl1500_state::status_reg_3_w)); + map(0xbf, 0xbf).rw(this, FUNC(hazl1500_state::uart_r), FUNC(hazl1500_state::uart_w)); + map(0xdf, 0xdf).r(this, FUNC(hazl1500_state::kbd_encoder_r)); + map(0xef, 0xef).rw(this, FUNC(hazl1500_state::system_test_r), FUNC(hazl1500_state::refresh_address_w)); + map(0xf7, 0xf7).r(this, FUNC(hazl1500_state::kbd_status_latch_r)); +} /* Hazeltine 1500 key matrix (from ref[1]) |