diff options
Diffstat (limited to 'src/mame/drivers/gkigt.cpp')
-rw-r--r-- | src/mame/drivers/gkigt.cpp | 94 |
1 files changed, 49 insertions, 45 deletions
diff --git a/src/mame/drivers/gkigt.cpp b/src/mame/drivers/gkigt.cpp index f05efc79824..b6b0d791850 100644 --- a/src/mame/drivers/gkigt.cpp +++ b/src/mame/drivers/gkigt.cpp @@ -225,17 +225,18 @@ WRITE8_MEMBER(igt_gameking_state::unk_w) } -ADDRESS_MAP_START(igt_gameking_state::igt_gameking_map) - AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_REGION("maincpu", 0) - AM_RANGE(0x08000000, 0x081fffff) AM_ROM AM_REGION("game", 0) - AM_RANGE(0x08200000, 0x083fffff) AM_ROM AM_REGION("plx", 0) +void igt_gameking_state::igt_gameking_map(address_map &map) +{ + map(0x00000000, 0x0007ffff).rom().region("maincpu", 0); + map(0x08000000, 0x081fffff).rom().region("game", 0); + map(0x08200000, 0x083fffff).rom().region("plx", 0); // it's unclear how much of this is saved and how much total RAM there is. - AM_RANGE(0x10000000, 0x1001ffff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x10020000, 0x17ffffff) AM_RAM + map(0x10000000, 0x1001ffff).ram().share("nvram"); + map(0x10020000, 0x17ffffff).ram(); - AM_RANGE(0x18000000, 0x181fffff) AM_RAM AM_SHARE("vram") // igtsc writes from 18000000 to 1817ffff, ms3 all the way to 181fffff. + map(0x18000000, 0x181fffff).ram().share("vram"); // igtsc writes from 18000000 to 1817ffff, ms3 all the way to 181fffff. // 28000000: MEZ2 SEL, also connected to ymz chip select? // 28010000: first 28C94 QUART (QRT1 SEL) @@ -245,36 +246,37 @@ ADDRESS_MAP_START(igt_gameking_state::igt_gameking_map) // 28050000: SOUND SEL // 28060000: COLOR SEL // 28070000: OUT SEL -// AM_RANGE(0x28010000, 0x2801007f) AM_DEVREADWRITE8("quart1", sc28c94_device, read, write, 0x00ff00ff) - AM_RANGE(0x28010008, 0x2801000b) AM_READ(uart_status_r) - AM_RANGE(0x2801001c, 0x2801001f) AM_WRITENOP - AM_RANGE(0x28010030, 0x28010033) AM_READ(uart_status_r) // channel D - AM_RANGE(0x28010034, 0x28010037) AM_WRITE(uart_w) // channel D - AM_RANGE(0x28020000, 0x280205ff) AM_RAM // CMOS? -// AM_RANGE(0x28020000, 0x2802007f) AM_READ(igt_gk_28010008_r) AM_WRITENOP - AM_RANGE(0x28030000, 0x28030003) AM_READ_PORT("IN0") -// AM_RANGE(0x28040000, 0x2804007f) AM_DEVREADWRITE8("quart2", sc28c94_device, read, write, 0x00ff00ff) - AM_RANGE(0x28040008, 0x2804000b) AM_WRITE8(unk_w,0x00ff0000) - AM_RANGE(0x28040008, 0x2804000b) AM_READWRITE8(irq_vector_r,irq_enable_w,0x000000ff) - AM_RANGE(0x28040018, 0x2804001b) AM_READ_PORT("IN1") AM_WRITENOP - AM_RANGE(0x2804001c, 0x2804001f) AM_READ_PORT("IN4") AM_WRITENOP - AM_RANGE(0x28040028, 0x2804002b) AM_READNOP AM_WRITE8(irq_ack_w,0x00ff0000) - // AM_RANGE(0x28040038, 0x2804003b) AM_READ8(timer_r,0x00ff0000) - AM_RANGE(0x28040038, 0x2804003b) AM_READ_PORT("IN2") AM_WRITENOP - AM_RANGE(0x2804003c, 0x2804003f) AM_READ_PORT("IN3") AM_WRITENOP - AM_RANGE(0x28040050, 0x28040053) AM_READ8(frame_number_r,0x000000ff) - AM_RANGE(0x28040054, 0x28040057) AM_WRITENOP -// AM_RANGE(0x28040054, 0x28040057) AM_WRITE8(irq_ack_w,0x000000ff) - - AM_RANGE(0x28050000, 0x28050003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x00ff00ff) - AM_RANGE(0x28060000, 0x28060003) AM_DEVWRITE8("ramdac",ramdac_device, index_w, 0x000000ff ) - AM_RANGE(0x28060000, 0x28060003) AM_DEVWRITE8("ramdac",ramdac_device, pal_w, 0x00ff0000 ) - AM_RANGE(0x28060004, 0x28060007) AM_DEVWRITE8("ramdac",ramdac_device, mask_w, 0x000000ff ) - - AM_RANGE(0x3b000000, 0x3b1fffff) AM_ROM AM_REGION("snd", 0) - - AM_RANGE(0xa1000000, 0xa1011fff) AM_RAM // used by gkkey for restart IAC -ADDRESS_MAP_END +// map(0x28010000, 0x2801007f).rw("quart1", FUNC(sc28c94_device::read), FUNC(sc28c94_device::write)).umask32(0x00ff00ff); + map(0x28010008, 0x2801000b).r(this, FUNC(igt_gameking_state::uart_status_r)); + map(0x2801001c, 0x2801001f).nopw(); + map(0x28010030, 0x28010033).r(this, FUNC(igt_gameking_state::uart_status_r)); // channel D + map(0x28010034, 0x28010037).w(this, FUNC(igt_gameking_state::uart_w)); // channel D + map(0x28020000, 0x280205ff).ram(); // CMOS? +// map(0x28020000, 0x2802007f).r(this, FUNC(igt_gameking_state::igt_gk_28010008_r)).nopw(); + map(0x28030000, 0x28030003).portr("IN0"); +// map(0x28040000, 0x2804007f).rw("quart2", FUNC(sc28c94_device::read), FUNC(sc28c94_device::write)).umask32(0x00ff00ff); + map(0x2804000a, 0x2804000a).w(this, FUNC(igt_gameking_state::unk_w)); + map(0x28040008, 0x28040008).rw(this, FUNC(igt_gameking_state::irq_vector_r), FUNC(igt_gameking_state::irq_enable_w)); + map(0x28040018, 0x2804001b).portr("IN1").nopw(); + map(0x2804001c, 0x2804001f).portr("IN4").nopw(); + map(0x28040028, 0x2804002b).nopr(); + map(0x2804002a, 0x2804002a).w(this, FUNC(igt_gameking_state::irq_ack_w)); +// map(0x28040038, 0x2804003b).r(this, FUNC(igt_gameking_state::timer_r)).umask32(0x00ff0000); + map(0x28040038, 0x2804003b).portr("IN2").nopw(); + map(0x2804003c, 0x2804003f).portr("IN3").nopw(); + map(0x28040050, 0x28040050).r(this, FUNC(igt_gameking_state::frame_number_r)); + map(0x28040054, 0x28040057).nopw(); +// map(0x28040054, 0x28040057).w(this, FUNC(igt_gameking_state::irq_ack_w).umask32(0x000000ff); + + map(0x28050000, 0x28050003).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask32(0x00ff00ff); + map(0x28060000, 0x28060000).w("ramdac", FUNC(ramdac_device::index_w)); + map(0x28060002, 0x28060002).w("ramdac", FUNC(ramdac_device::pal_w)); + map(0x28060004, 0x28060004).w("ramdac", FUNC(ramdac_device::mask_w)); + + map(0x3b000000, 0x3b1fffff).rom().region("snd", 0); + + map(0xa1000000, 0xa1011fff).ram(); // used by gkkey for restart IAC +} READ16_MEMBER(igt_gameking_state::version_r) { @@ -288,11 +290,12 @@ READ8_MEMBER(igt_gameking_state::timer_r) return m_timer_count++; } -ADDRESS_MAP_START(igt_gameking_state::igt_ms72c_map) - AM_IMPORT_FROM( igt_gameking_map ) - AM_RANGE(0x18200000, 0x18200003) AM_READ16(version_r, 0x0000ffff) - AM_RANGE(0x28040038, 0x2804003b) AM_READ8(timer_r,0x00ff0000) -ADDRESS_MAP_END +void igt_gameking_state::igt_ms72c_map(address_map &map) +{ + igt_gameking_map(map); + map(0x18200000, 0x18200001).r(this, FUNC(igt_gameking_state::version_r)); + map(0x2804003a, 0x2804003a).r(this, FUNC(igt_gameking_state::timer_r)); +} static INPUT_PORTS_START( igt_gameking ) PORT_START("IN0") @@ -568,9 +571,10 @@ static GFXDECODE_START( igt_gameking ) GFXDECODE_ENTRY( "cg", 0, igt_gameking_layout, 0x0, 1 ) GFXDECODE_END -ADDRESS_MAP_START(igt_gameking_state::ramdac_map) - AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) -ADDRESS_MAP_END +void igt_gameking_state::ramdac_map(address_map &map) +{ + map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w)); +} void igt_gameking_state::machine_start() { |