diff options
Diffstat (limited to 'src/mame/drivers/rm380z.cpp')
-rw-r--r-- | src/mame/drivers/rm380z.cpp | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp index b12d6d1ccb9..7e20c7081d4 100644 --- a/src/mame/drivers/rm380z.cpp +++ b/src/mame/drivers/rm380z.cpp @@ -171,30 +171,34 @@ Module timer tag static_vblank_timer name m_expire.seconds #include "screen.h" -ADDRESS_MAP_START(rm380z_state::rm380z_mem) - AM_RANGE( 0xe000, 0xefff ) AM_ROM AM_REGION(RM380Z_MAINCPU_TAG, 0) - AM_RANGE( 0xf000, 0xf5ff ) AM_READWRITE(videoram_read,videoram_write) - AM_RANGE( 0xf600, 0xf9ff ) AM_ROM AM_REGION(RM380Z_MAINCPU_TAG, 0x1000) /* Extra ROM space for COS4.0 */ - AM_RANGE( 0xfa00, 0xfaff ) AM_RAM - AM_RANGE( 0xfb00, 0xfbff ) AM_READWRITE( port_read, port_write ) - AM_RANGE( 0xfc00, 0xffff ) AM_READWRITE(hiram_read,hiram_write) -ADDRESS_MAP_END - -ADDRESS_MAP_START(rm380z_state::rm380z_io) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0xbf) AM_READWRITE(rm380z_portlow_r, rm380z_portlow_w) - AM_RANGE(0xc0, 0xc3) AM_DEVREADWRITE("wd1771", fd1771_device, read, write) - AM_RANGE(0xc4, 0xc4) AM_WRITE(disk_0_control) - AM_RANGE(0xc5, 0xff) AM_READWRITE(rm380z_porthi_r, rm380z_porthi_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(rm380z_state::rm480z_mem) - AM_RANGE( 0x0000, 0xe7ff ) AM_RAM - AM_RANGE( 0xe800, 0xf7ff ) AM_ROM AM_REGION(RM380Z_MAINCPU_TAG, 0) - AM_RANGE( 0xf800, 0xffff ) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(rm380z_state::rm480z_io) +void rm380z_state::rm380z_mem(address_map &map) +{ + map(0xe000, 0xefff).rom().region(RM380Z_MAINCPU_TAG, 0); + map(0xf000, 0xf5ff).rw(this, FUNC(rm380z_state::videoram_read), FUNC(rm380z_state::videoram_write)); + map(0xf600, 0xf9ff).rom().region(RM380Z_MAINCPU_TAG, 0x1000); /* Extra ROM space for COS4.0 */ + map(0xfa00, 0xfaff).ram(); + map(0xfb00, 0xfbff).rw(this, FUNC(rm380z_state::port_read), FUNC(rm380z_state::port_write)); + map(0xfc00, 0xffff).rw(this, FUNC(rm380z_state::hiram_read), FUNC(rm380z_state::hiram_write)); +} + +void rm380z_state::rm380z_io(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0xbf).rw(this, FUNC(rm380z_state::rm380z_portlow_r), FUNC(rm380z_state::rm380z_portlow_w)); + map(0xc0, 0xc3).rw(m_fdc, FUNC(fd1771_device::read), FUNC(fd1771_device::write)); + map(0xc4, 0xc4).w(this, FUNC(rm380z_state::disk_0_control)); + map(0xc5, 0xff).rw(this, FUNC(rm380z_state::rm380z_porthi_r), FUNC(rm380z_state::rm380z_porthi_w)); +} + +void rm380z_state::rm480z_mem(address_map &map) +{ + map(0x0000, 0xe7ff).ram(); + map(0xe800, 0xf7ff).rom().region(RM380Z_MAINCPU_TAG, 0); + map(0xf800, 0xffff).ram(); +} + +void rm380z_state::rm480z_io(address_map &map) +{ //AM_RANGE(0x00, 0x17) AM_RAM // videoram //AM_RANGE(0x18, 0x18) AM_MIRROR(0xff00) // control port 0 //AM_RANGE(0x19, 0x19) AM_MIRROR(0xff00) // control port 1 @@ -207,7 +211,7 @@ ADDRESS_MAP_START(rm380z_state::rm480z_io) //AM_RANGE(0x2c, 0x2f) AM_MIRROR(0xff00) // z80ctc IEEE int, Maths int, RTC, RTC // option //AM_RANGE(0x30, 0x37) AM_MIRROR(0xff00) // IEEE chip // option //AM_RANGE(0x38, 0x3b) AM_MIRROR(0xff00) // Hi-res graphics option -ADDRESS_MAP_END +} INPUT_PORTS_START( rm380z ) // PORT_START("additional_chars") |