diff options
Diffstat (limited to 'src/devices/bus/bbc/tube/tube_80286.cpp')
-rw-r--r-- | src/devices/bus/bbc/tube/tube_80286.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp index 601793b6958..7f7484c7d1e 100644 --- a/src/devices/bus/bbc/tube/tube_80286.cpp +++ b/src/devices/bus/bbc/tube/tube_80286.cpp @@ -24,22 +24,24 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_80286, bbc_tube_80286_device, "bbc_tube_80286", "Aco // ADDRESS_MAP( tube_80286_mem ) //------------------------------------------------- -ADDRESS_MAP_START(bbc_tube_80286_device::tube_80286_mem) - ADDRESS_MAP_GLOBAL_MASK(0xfffff) - AM_RANGE(0x00000, 0xbffff) AM_RAM AM_SHARE("ram") - AM_RANGE(0xc0000, 0xc3fff) AM_ROM AM_REGION("bootstrap", 0) AM_MIRROR(0x3c000) -ADDRESS_MAP_END +void bbc_tube_80286_device::tube_80286_mem(address_map &map) +{ + map.global_mask(0xfffff); + map(0x00000, 0xbffff).ram().share("ram"); + map(0xc0000, 0xc3fff).rom().region("bootstrap", 0).mirror(0x3c000); +} //------------------------------------------------- // ADDRESS_MAP( tube_80286_io ) //------------------------------------------------- -ADDRESS_MAP_START(bbc_tube_80286_device::tube_80286_io) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x50, 0x51) AM_READ8(disable_boot_rom, 0x00ff) - AM_RANGE(0x60, 0x61) AM_WRITE8(irq_latch_w, 0x00ff) - AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE8("ula", tube_device, parasite_r, parasite_w, 0x00ff) -ADDRESS_MAP_END +void bbc_tube_80286_device::tube_80286_io(address_map &map) +{ + map.unmap_value_high(); + map(0x50, 0x50).r(this, FUNC(bbc_tube_80286_device::disable_boot_rom)); + map(0x60, 0x60).w(this, FUNC(bbc_tube_80286_device::irq_latch_w)); + map(0x80, 0x8f).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w)).umask16(0x00ff); +} //------------------------------------------------- // ROM( tube_80286 ) |