diff options
Diffstat (limited to 'src/mame/drivers/qdrmfgp.c')
-rw-r--r-- | src/mame/drivers/qdrmfgp.c | 96 |
1 files changed, 44 insertions, 52 deletions
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index 6acc3c21818..3372a775672 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -52,9 +52,8 @@ static CUSTOM_INPUT( battery_sensor_r ) } -static WRITE16_HANDLER( gp_control_w ) +WRITE16_MEMBER(qdrmfgp_state::gp_control_w) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); /* bit 0 enable irq 1 (sound) */ /* bit 1 enable irq 2 (not used) */ @@ -68,16 +67,15 @@ static WRITE16_HANDLER( gp_control_w ) /* bit 11 headphone volume: 1=up, 0=down */ /* bit 15 gfxrom bankswitch */ - COMBINE_DATA(&state->m_control); - state->m_pal = state->m_control & 0x70; + COMBINE_DATA(&m_control); + m_pal = m_control & 0x70; - if (state->m_control & 0x0100) + if (m_control & 0x0100) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); - int vol = state->m_nvram[0x10] & 0xff; + int vol = m_nvram[0x10] & 0xff; if (vol) { - k054539_device *k054539 = space->machine().device<k054539_device>("konami"); + k054539_device *k054539 = machine().device<k054539_device>("konami"); int i; double gain = vol / 90.0; @@ -87,9 +85,8 @@ static WRITE16_HANDLER( gp_control_w ) } } -static WRITE16_HANDLER( gp2_control_w ) +WRITE16_MEMBER(qdrmfgp_state::gp2_control_w) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); /* bit 2 enable irq 3 (sound) */ /* bit 3 enable irq 4 (vblank) */ @@ -101,16 +98,15 @@ static WRITE16_HANDLER( gp2_control_w ) /* bit 11 headphone volume: 1=up, 0=down */ /* bit 15 gfxrom bankswitch */ - COMBINE_DATA(&state->m_control); - state->m_pal = 0; + COMBINE_DATA(&m_control); + m_pal = 0; - if (state->m_control & 0x0100) + if (m_control & 0x0100) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); - int vol = state->m_nvram[0x8] & 0xff; + int vol = m_nvram[0x8] & 0xff; if (vol) { - k054539_device *k054539 = space->machine().device<k054539_device>("konami"); + k054539_device *k054539 = machine().device<k054539_device>("konami"); int i; double gain = vol / 90.0; @@ -121,25 +117,24 @@ static WRITE16_HANDLER( gp2_control_w ) } -static READ16_HANDLER( v_rom_r ) +READ16_MEMBER(qdrmfgp_state::v_rom_r) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); - device_t *k056832 = space->machine().device("k056832"); - UINT8 *mem8 = space->machine().region("gfx1")->base(); + device_t *k056832 = machine().device("k056832"); + UINT8 *mem8 = machine().region("gfx1")->base(); int bank = k056832_word_r(k056832, 0x34/2, 0xffff); offset += bank * 0x800 * 4; - if (state->m_control & 0x8000) + if (m_control & 0x8000) offset += 0x800 * 2; return (mem8[offset + 1] << 8) + mem8[offset]; } -static READ16_HANDLER( gp2_vram_r ) +READ16_MEMBER(qdrmfgp_state::gp2_vram_r) { - device_t *k056832 = space->machine().device("k056832"); + device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) return k056832_ram_word_r(k056832, offset * 2 + 1, mem_mask); @@ -147,9 +142,9 @@ static READ16_HANDLER( gp2_vram_r ) return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2, mem_mask); } -static READ16_HANDLER( gp2_vram_mirror_r ) +READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r) { - device_t *k056832 = space->machine().device("k056832"); + device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) return k056832_ram_word_r(k056832, offset * 2, mem_mask); @@ -157,9 +152,9 @@ static READ16_HANDLER( gp2_vram_mirror_r ) return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2 + 1, mem_mask); } -static WRITE16_HANDLER( gp2_vram_w ) +WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w) { - device_t *k056832 = space->machine().device("k056832"); + device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) k056832_ram_word_w(k056832, offset * 2 + 1, data, mem_mask); @@ -167,9 +162,9 @@ static WRITE16_HANDLER( gp2_vram_w ) k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2, data, mem_mask); } -static WRITE16_HANDLER( gp2_vram_mirror_w ) +WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w) { - device_t *k056832 = space->machine().device("k056832"); + device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) k056832_ram_word_w(k056832, offset * 2, data, mem_mask); @@ -180,23 +175,21 @@ static WRITE16_HANDLER( gp2_vram_mirror_w ) /*************/ -static READ16_HANDLER( sndram_r ) +READ16_MEMBER(qdrmfgp_state::sndram_r) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); if (ACCESSING_BITS_0_7) - return state->m_sndram[offset]; + return m_sndram[offset]; return 0; } -static WRITE16_HANDLER( sndram_w ) +WRITE16_MEMBER(qdrmfgp_state::sndram_w) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); if (ACCESSING_BITS_0_7) { - state->m_sndram[offset] = data & 0xff; + m_sndram[offset] = data & 0xff; if (offset >= 0x40000) - state->m_sndram[offset+0xc00000-0x900000] = data & 0xff; + m_sndram[offset+0xc00000-0x900000] = data & 0xff; } } @@ -236,22 +229,21 @@ static WRITE16_DEVICE_HANDLER( ide_alt_w ) } -static READ16_HANDLER( gp2_ide_std_r ) +READ16_MEMBER(qdrmfgp_state::gp2_ide_std_r) { - qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>(); - device_t *device = space->machine().device("ide"); + device_t *device = machine().device("ide"); if (offset & 0x01) { if (offset == 0x07) { - switch (cpu_get_previouspc(&space->device())) + switch (cpu_get_previouspc(&space.device())) { case 0xdb4c: - if ((state->m_workram[0x5fa4/2] - cpu_get_reg(&space->device(), M68K_D0)) <= 0x10) - state->m_gp2_irq_control = 1; + if ((m_workram[0x5fa4/2] - cpu_get_reg(&space.device(), M68K_D0)) <= 0x10) + m_gp2_irq_control = 1; break; case 0xdec2: - state->m_gp2_irq_control = 1; + m_gp2_irq_control = 1; default: break; } @@ -350,15 +342,15 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state ) AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */ AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE_LEGACY(gp_control_w) /* control reg */ + AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */ AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */ AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_device, read, write, 0x00ff) /* sound regs */ AM_RANGE(0x880000, 0x881fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* vram */ AM_RANGE(0x882000, 0x883fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ_LEGACY(v_rom_r) /* gfxrom through */ + AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE_LEGACY("ide", ide_std_r,ide_std_w) /* IDE control regs */ AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE_LEGACY(sndram_r, sndram_w) /* sound ram */ + AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r, sndram_w) /* sound ram */ ADDRESS_MAP_END @@ -373,15 +365,15 @@ static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state ) AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */ AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE_LEGACY(gp2_control_w) /* control reg */ + AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */ AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */ AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_device, read, write, 0x00ff) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_READWRITE_LEGACY(gp2_vram_r, gp2_vram_w) /* vram */ - AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE_LEGACY(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ_LEGACY(v_rom_r) /* gfxrom through */ - AM_RANGE(0xa00000, 0xa0000f) AM_READ_LEGACY(gp2_ide_std_r) AM_DEVWRITE_LEGACY("ide", ide_std_w) /* IDE control regs */ + AM_RANGE(0x880000, 0x881fff) AM_READWRITE(gp2_vram_r, gp2_vram_w) /* vram */ + AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */ + AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ + AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) AM_DEVWRITE_LEGACY("ide", ide_std_w) /* IDE control regs */ AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE_LEGACY(sndram_r,sndram_w) /* sound ram */ + AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */ ADDRESS_MAP_END |