diff options
Diffstat (limited to 'src/mame/drivers/dim68k.cpp')
-rw-r--r-- | src/mame/drivers/dim68k.cpp | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp index bd6e8d36d6c..45604e6ce5a 100644 --- a/src/mame/drivers/dim68k.cpp +++ b/src/mame/drivers/dim68k.cpp @@ -184,33 +184,34 @@ WRITE16_MEMBER( dim68k_state::dim68k_banksw_w ) { } -ADDRESS_MAP_START(dim68k_state::dim68k_mem) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00000000, 0x00feffff) AM_RAM AM_SHARE("ram") // 16MB RAM / ROM at boot - AM_RANGE(0x00ff0000, 0x00ff1fff) AM_ROM AM_REGION("bootrom", 0) - AM_RANGE(0x00ff2000, 0x00ff7fff) AM_RAM // Graphics Video RAM - AM_RANGE(0x00ff8000, 0x00ff8001) AM_DEVREADWRITE8("crtc", mc6845_device, status_r, address_w, 0xff) - AM_RANGE(0x00ff8002, 0x00ff8003) AM_DEVREADWRITE8("crtc", mc6845_device, register_r, register_w, 0xff) - AM_RANGE(0x00ff8004, 0x00ff8005) AM_WRITE(dim68k_video_high_w) - AM_RANGE(0x00ff8008, 0x00ff8009) AM_WRITE(dim68k_video_control_w) - AM_RANGE(0x00ff800a, 0x00ff800b) AM_WRITE(dim68k_video_reset_w) - AM_RANGE(0x00ff8800, 0x00ff8fff) AM_ROM AM_REGION("cop6512",0) // slot 1 controller rom - AM_RANGE(0x00ff9000, 0x00ff97ff) AM_ROM AM_REGION("copz80",0) // slot 2 controller rom - AM_RANGE(0x00ff9800, 0x00ff9fff) AM_ROM AM_REGION("cop8086",0) // slot 3 controller rom +void dim68k_state::dim68k_mem(address_map &map) +{ + map.unmap_value_high(); + map(0x00000000, 0x00feffff).ram().share("ram"); // 16MB RAM / ROM at boot + map(0x00ff0000, 0x00ff1fff).rom().region("bootrom", 0); + map(0x00ff2000, 0x00ff7fff).ram(); // Graphics Video RAM + map(0x00ff8001, 0x00ff8001).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w)); + map(0x00ff8003, 0x00ff8003).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); + map(0x00ff8004, 0x00ff8005).w(this, FUNC(dim68k_state::dim68k_video_high_w)); + map(0x00ff8008, 0x00ff8009).w(this, FUNC(dim68k_state::dim68k_video_control_w)); + map(0x00ff800a, 0x00ff800b).w(this, FUNC(dim68k_state::dim68k_video_reset_w)); + map(0x00ff8800, 0x00ff8fff).rom().region("cop6512", 0); // slot 1 controller rom + map(0x00ff9000, 0x00ff97ff).rom().region("copz80", 0); // slot 2 controller rom + map(0x00ff9800, 0x00ff9fff).rom().region("cop8086", 0); // slot 3 controller rom #if 0 - AM_RANGE(0x00ffa000, 0x00ffa7ff) AM_ROM // slot 4 controller rom - AM_RANGE(0x00ffa800, 0x00ffafff) AM_ROM // slot 5 controller rom - AM_RANGE(0x00ffb000, 0x00ffb7ff) AM_ROM // slot 6 controller rom + map(0x00ffa000, 0x00ffa7ff).rom(); // slot 4 controller rom + map(0x00ffa800, 0x00ffafff).rom(); // slot 5 controller rom + map(0x00ffb000, 0x00ffb7ff).rom(); // slot 6 controller rom #endif - AM_RANGE(0x00ffc400, 0x00ffc41f) AM_READWRITE(dim68k_duart_r,dim68k_duart_w) // Signetics SCN2681AC1N40 Dual UART - AM_RANGE(0x00ffc800, 0x00ffc801) AM_READWRITE(dim68k_speaker_r,dim68k_speaker_w) - AM_RANGE(0x00ffcc00, 0x00ffcc1f) AM_READWRITE(dim68k_game_switches_r,dim68k_reset_timers_w) - AM_RANGE(0x00ffd000, 0x00ffd003) AM_DEVICE8("fdc",upd765a_device,map,0x00ff) // NEC uPD765A - AM_RANGE(0x00ffd004, 0x00ffd005) AM_READWRITE(dim68k_fdc_r,dim68k_fdc_w) + map(0x00ffc400, 0x00ffc41f).rw(this, FUNC(dim68k_state::dim68k_duart_r), FUNC(dim68k_state::dim68k_duart_w)); // Signetics SCN2681AC1N40 Dual UART + map(0x00ffc800, 0x00ffc801).rw(this, FUNC(dim68k_state::dim68k_speaker_r), FUNC(dim68k_state::dim68k_speaker_w)); + map(0x00ffcc00, 0x00ffcc1f).rw(this, FUNC(dim68k_state::dim68k_game_switches_r), FUNC(dim68k_state::dim68k_reset_timers_w)); + map(0x00ffd000, 0x00ffd003).m("fdc", FUNC(upd765a_device::map)).umask16(0x00ff); // NEC uPD765A + map(0x00ffd004, 0x00ffd005).rw(this, FUNC(dim68k_state::dim68k_fdc_r), FUNC(dim68k_state::dim68k_fdc_w)); //AM_RANGE(0x00ffd400, 0x00ffd403) emulation trap control - AM_RANGE(0x00ffd800, 0x00ffd801) AM_WRITE(dim68k_printer_strobe_w) - AM_RANGE(0x00ffdc00, 0x00ffdc01) AM_WRITE(dim68k_banksw_w) -ADDRESS_MAP_END + map(0x00ffd800, 0x00ffd801).w(this, FUNC(dim68k_state::dim68k_printer_strobe_w)); + map(0x00ffdc00, 0x00ffdc01).w(this, FUNC(dim68k_state::dim68k_banksw_w)); +} /* Input ports */ static INPUT_PORTS_START( dim68k ) |