diff options
Diffstat (limited to 'src/mame/drivers/kaneko16.c')
-rw-r--r-- | src/mame/drivers/kaneko16.c | 165 |
1 files changed, 66 insertions, 99 deletions
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 0b5f27b2a34..13f0b1da660 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -276,34 +276,20 @@ static WRITE16_HANDLER( kaneko16_soundlatch_w ) /* Two identically mapped YM2149 chips */ -static READ16_HANDLER( kaneko16_YM2149_0_r ) +static READ16_DEVICE_HANDLER( kaneko16_YM2149_r ) { /* Each 2149 register is mapped to a different address */ - ay8910_control_port_0_w(space,0,offset); - return ay8910_read_port_0_r(space,0); -} -static READ16_HANDLER( kaneko16_YM2149_1_r ) -{ - /* Each 2149 register is mapped to a different address */ - ay8910_control_port_1_w(space,0,offset); - return ay8910_read_port_1_r(space,0); + ay8910_address_w(device,0,offset); + return ay8910_r(device,0); } -static WRITE16_HANDLER( kaneko16_YM2149_0_w ) -{ - /* Each 2149 register is mapped to a different address */ - ay8910_control_port_0_w(space,0,offset); - /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_BITS_0_7) ay8910_write_port_0_w(space,0, data & 0xff); - else ay8910_write_port_0_w(space,0,(data >> 8) & 0xff); -} -static WRITE16_HANDLER( kaneko16_YM2149_1_w ) +static WRITE16_DEVICE_HANDLER( kaneko16_YM2149_w ) { /* Each 2149 register is mapped to a different address */ - ay8910_control_port_1_w(space,0,offset); + ay8910_address_w(device,0,offset); /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_BITS_0_7) ay8910_write_port_1_w(space,0, data & 0xff); - else ay8910_write_port_1_w(space,0,(data >> 8) & 0xff); + if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff); + else ay8910_data_w(device,0,(data >> 8) & 0xff); } @@ -315,12 +301,12 @@ static WRITE16_HANDLER( kaneko16_YM2149_1_w ) ***************************************************************************/ -static READ8_HANDLER( kaneko16_eeprom_r ) +static READ8_DEVICE_HANDLER( kaneko16_eeprom_r ) { return eeprom_read_bit() & 1; } -static WRITE8_HANDLER( kaneko16_eeprom_reset_w ) +static WRITE8_DEVICE_HANDLER( kaneko16_eeprom_reset_w ) { // reset line asserted: reset. eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); @@ -377,10 +363,10 @@ static ADDRESS_MAP_START( berlwall, ADDRESS_SPACE_PROGRAM, 16 ) // AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK") AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0x780000, 0x780001) AM_READ(watchdog_reset16_r) // Watchdog - AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound - AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w) + AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE(SOUND, "ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound + AM_RANGE(0x800200, 0x80021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r, kaneko16_YM2149_w) AM_RANGE(0x8003fe, 0x8003ff) AM_NOP // for OKI when accessed as .l - AM_RANGE(0x800400, 0x800401) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) + AM_RANGE(0x800400, 0x800401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // AM_RANGE(0xc02000, 0xc02fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // @@ -397,22 +383,22 @@ ADDRESS_MAP_END /* The two YM2149 chips are only used when entering high score initials, and */ /* when the game is fully completed. Overkill??? */ -static WRITE16_HANDLER( bakubrkr_oki_bank_sw ) +static WRITE16_DEVICE_HANDLER( bakubrkr_oki_bank_sw ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(0, 0x40000 * (data & 0x7) ); - logerror("PC:%06X Selecting OKI bank %02X\n",cpu_get_pc(space->cpu),data&0xff); + okim6295_set_bank_base(device, 0x40000 * (data & 0x7) ); + logerror("%s:Selecting OKI bank %02X\n",cpuexec_describe_context(device->machine),data&0xff); } } static ADDRESS_MAP_START( bakubrkr, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_YM2149_0_r) // Sound - AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_YM2149_0_w) - AM_RANGE(0x40001e, 0x40001f) AM_WRITE(bakubrkr_oki_bank_sw) // OKI bank Switch - AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r,kaneko16_YM2149_1_w) // Sound - AM_RANGE(0x400400, 0x400401) AM_READWRITE(okim6295_status_0_lsb_r,okim6295_data_0_lsb_w) // + AM_RANGE(0x400000, 0x40001f) AM_DEVREAD(SOUND, "ay1", kaneko16_YM2149_r) // Sound + AM_RANGE(0x400000, 0x40001d) AM_DEVWRITE(SOUND, "ay1", kaneko16_YM2149_w) + AM_RANGE(0x40001e, 0x40001f) AM_DEVWRITE(SOUND, "oki", bakubrkr_oki_bank_sw) // OKI bank Switch + AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r,kaneko16_YM2149_w) // Sound + AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff) // AM_RANGE(0x500000, 0x500fff) AM_READWRITE(SMH_RAM,kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 AM_RANGE(0x501000, 0x501fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // @@ -467,20 +453,20 @@ ADDRESS_MAP_END Blood Warrior ***************************************************************************/ -static WRITE16_HANDLER( bloodwar_oki_0_bank_w ) +static WRITE16_DEVICE_HANDLER( bloodwar_oki_0_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(0, 0x40000 * (data & 0xf) ); + okim6295_set_bank_base(device, 0x40000 * (data & 0xf) ); // logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data); } } -static WRITE16_HANDLER( bloodwar_oki_1_bank_w ) +static WRITE16_DEVICE_HANDLER( bloodwar_oki_1_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(1, 0x40000 * data ); + okim6295_set_bank_base(device, 0x40000 * data ); // logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data); } } @@ -517,8 +503,8 @@ static ADDRESS_MAP_START( bloodwar, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs AM_RANGE(0x700000, 0x70001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) - AM_RANGE(0x880000, 0x880001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w) + AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff) + AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x900000, 0x900039) AM_READWRITE(bloodwar_calc_r, bloodwar_calc_w) AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") @@ -528,8 +514,8 @@ static ADDRESS_MAP_START( bloodwar, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w) - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w) + AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", bloodwar_oki_0_bank_w) + AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", bloodwar_oki_1_bank_w) ADDRESS_MAP_END @@ -537,21 +523,21 @@ ADDRESS_MAP_END Bonk's Adventure ***************************************************************************/ -static WRITE16_HANDLER( bonkadv_oki_0_bank_w ) +static WRITE16_DEVICE_HANDLER( bonkadv_oki_0_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(0, 0x40000 * (data & 0xF)); - logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data); + okim6295_set_bank_base(device, 0x40000 * (data & 0xF)); + logerror("%s: OKI0 bank %08X\n",cpuexec_describe_context(device->machine),data); } } -static WRITE16_HANDLER( bonkadv_oki_1_bank_w ) +static WRITE16_DEVICE_HANDLER( bonkadv_oki_1_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(1, 0x40000 * data ); - logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data); + okim6295_set_bank_base(device, 0x40000 * data ); + logerror("%s: OKI1 bank %08X\n",cpuexec_describe_context(device->machine),data); } } @@ -577,8 +563,8 @@ static ADDRESS_MAP_START( bonkadv, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs AM_RANGE(0x700000, 0x70001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) - AM_RANGE(0x880000, 0x880001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w) + AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff) + AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x900000, 0x900015) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") @@ -588,8 +574,8 @@ static ADDRESS_MAP_START( bonkadv, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w) - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w) + AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", bonkadv_oki_0_bank_w) + AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", bonkadv_oki_1_bank_w) ADDRESS_MAP_END @@ -612,42 +598,24 @@ static READ16_HANDLER( gtmr_wheel_r ) } } -static WRITE16_HANDLER( gtmr_oki_0_bank_w ) +static WRITE16_DEVICE_HANDLER( gtmr_oki_0_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(0, 0x40000 * (data & 0xF) ); + okim6295_set_bank_base(device, 0x40000 * (data & 0xF) ); // logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data); } } -static WRITE16_HANDLER( gtmr_oki_1_bank_w ) +static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(1, 0x40000 * (data & 0x1) ); + okim6295_set_bank_base(device, 0x40000 * (data & 0x1) ); // logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data); } } -static WRITE16_HANDLER( gtmr_oki_0_data_w ) -{ - if (ACCESSING_BITS_0_7) - { - okim6295_data_0_w(space,0,data); -// logerror("CPU #0 PC %06X : OKI0 <- %08X\n",cpu_get_pc(space->cpu),data); - } -} - -static WRITE16_HANDLER( gtmr_oki_1_data_w ) -{ - if (ACCESSING_BITS_0_7) - { - okim6295_data_1_w(space,0,data); -// logerror("CPU #0 PC %06X : OKI1 <- %08X\n",cpu_get_pc(space->cpu),data); - } -} - static ADDRESS_MAP_START( gtmr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0ffffd) AM_READ(SMH_ROM ) // ROM AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r ) // Wheel Value @@ -661,8 +629,8 @@ static ADDRESS_MAP_START( gtmr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60000f) AM_READ(SMH_RAM ) // Layers 0 Regs AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM ) // Layers 1 Regs AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READ(okim6295_status_0_lsb_r ) // Samples - AM_RANGE(0x880000, 0x880001) AM_READ(okim6295_status_1_lsb_r ) + AM_RANGE(0x800000, 0x800001) AM_DEVREAD8(SOUND, "oki1", okim6295_r, 0x00ff ) // Samples + AM_RANGE(0x880000, 0x880001) AM_DEVREAD8(SOUND, "oki2", okim6295_r, 0x00ff ) AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ? AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") @@ -694,13 +662,13 @@ static ADDRESS_MAP_START( gtmr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60000f) AM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs ) // Layers 0 Regs AM_RANGE(0x680000, 0x68000f) AM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs ) // Layers 1 Regs AM_RANGE(0x700000, 0x70001f) AM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_WRITE(gtmr_oki_0_data_w ) // Samples - AM_RANGE(0x880000, 0x880001) AM_WRITE(gtmr_oki_1_data_w ) + AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8(SOUND, "oki1", okim6295_w, 0x00ff ) // Samples + AM_RANGE(0x880000, 0x880001) AM_DEVWRITE8(SOUND, "oki2", okim6295_w, 0x00ff ) AM_RANGE(0xa00000, 0xa00001) AM_WRITE(watchdog_reset16_w ) // Watchdog AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w ) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable ) // might do more than that - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w ) // Samples Bankswitching - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w ) + AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", gtmr_oki_0_bank_w ) // Samples Bankswitching + AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", gtmr_oki_1_bank_w ) ADDRESS_MAP_END @@ -743,8 +711,8 @@ static ADDRESS_MAP_START( gtmr2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60000f) AM_READ(SMH_RAM ) // Layers 0 Regs AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM ) // Layers 1 Regs AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READ(okim6295_status_0_lsb_r ) // Samples - AM_RANGE(0x880000, 0x880001) AM_READ(okim6295_status_1_lsb_r ) + AM_RANGE(0x800000, 0x800001) AM_DEVREAD8(SOUND, "oki1", okim6295_r, 0x00ff ) // Samples + AM_RANGE(0x880000, 0x880001) AM_DEVREAD8(SOUND, "oki2", okim6295_r, 0x00ff ) AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ? AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") @@ -763,9 +731,9 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( mgcrystl, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM - AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound - AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w) - AM_RANGE(0x400400, 0x400401) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) + AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE(SOUND, "ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound + AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r, kaneko16_YM2149_w) + AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 AM_RANGE(0x601000, 0x601fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // @@ -797,8 +765,8 @@ static WRITE16_HANDLER( shogwarr_oki_bank_w ) { if (ACCESSING_BITS_0_7) { - okim6295_set_bank_base(0, 0x10000 * ((data >> 0) & 0x3) ); - okim6295_set_bank_base(1, 0x10000 * ((data >> 4) & 0x3) ); + okim6295_set_bank_base(devtag_get_device(space->machine, SOUND, "oki1"), 0x10000 * ((data >> 0) & 0x3) ); + okim6295_set_bank_base(devtag_get_device(space->machine, SOUND, "oki2"), 0x10000 * ((data >> 4) & 0x3) ); } } @@ -811,8 +779,8 @@ static ADDRESS_MAP_START( shogwarr, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(calc3_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(calc3_mcu_com3_w) AM_RANGE(0x380000, 0x380fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x400000, 0x400001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) // Samples - AM_RANGE(0x480000, 0x480001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w) + AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff) // Samples + AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x580000, 0x581fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 AM_RANGE(0x601000, 0x601fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) @@ -850,8 +818,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( blazeon_soundport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x02, 0x02) AM_WRITE(ym2151_register_port_0_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(ym2151_status_port_0_r, ym2151_data_port_0_w) + AM_RANGE(0x02, 0x03) AM_DEVREADWRITE(SOUND, "ym", ym2151_r, ym2151_w) AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r) ADDRESS_MAP_END @@ -1644,20 +1611,20 @@ static const ay8910_interface ay8910_intf_dsw = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - input_port_4_r, /* input A: DSW 1 */ - input_port_5_r, /* input B: DSW 2 */ - NULL, - NULL, + DEVCB_INPUT_PORT("DSW1"), + DEVCB_INPUT_PORT("DSW2"), + DEVCB_NULL, + DEVCB_NULL, }; static const ay8910_interface ay8910_intf_eeprom = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - kaneko16_eeprom_r, /* inputs A: 0,EEPROM bit read */ - NULL, /* inputs B */ - NULL, /* outputs A */ - kaneko16_eeprom_reset_w /* outputs B: 0,EEPROM reset */ + DEVCB_HANDLER(kaneko16_eeprom_r), /* inputs A: 0,EEPROM bit read */ + DEVCB_NULL, /* inputs B */ + DEVCB_NULL, /* outputs A */ + DEVCB_HANDLER(kaneko16_eeprom_reset_w) /* outputs B: 0,EEPROM reset */ }; |