Implemented proper irq ack to the deniam.c driver [Angelo Salese]

This commit is contained in:
Angelo Salese 2010-02-18 14:25:18 +00:00
parent 234cdbb284
commit 5f13b8895b

View File

@ -71,6 +71,10 @@ static WRITE16_DEVICE_HANDLER( deniam16c_oki_rom_bank_w )
okim6295_set_bank_base(device, (data & 0x01) ? 0x40000 : 0x00000);
}
static WRITE16_HANDLER( deniam_irq_ack_w )
{
cputag_set_input_line(space->machine, "maincpu", 4, CLEAR_LINE);
}
static ADDRESS_MAP_START( deniam16b_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
@ -80,9 +84,10 @@ static ADDRESS_MAP_START( deniam16b_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE_MEMBER(deniam_state, paletteram)
AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_w)
AM_RANGE(0xc40002, 0xc40003) AM_READWRITE(deniam_coinctrl_r, deniam_coinctrl_w)
AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP /* irq ack? */
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP
AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* unused? */
AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
@ -110,9 +115,10 @@ static ADDRESS_MAP_START( deniam16c_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE_MEMBER(deniam_state, paletteram)
AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0xc40002, 0xc40003) AM_READWRITE(deniam_coinctrl_r, deniam_coinctrl_w)
AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP /* irq ack? */
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP
AM_RANGE(0xc44006, 0xc44007) AM_READNOP AM_DEVWRITE("oki", deniam16c_oki_rom_bank_w) /* read unused? */
AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ymsnd", ym3812_w, 0xff00)
AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */
@ -267,7 +273,7 @@ static MACHINE_DRIVER_START( deniam16b )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,XTAL_25MHz/2) /* 12.5Mhz verified */
MDRV_CPU_PROGRAM_MAP(deniam16b_map)
MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
MDRV_CPU_VBLANK_INT("screen", irq4_line_assert)
MDRV_CPU_ADD("audiocpu", Z80,XTAL_25MHz/4) /* 6.25Mhz verified */
MDRV_CPU_PROGRAM_MAP(sound_map)
@ -311,7 +317,7 @@ static MACHINE_DRIVER_START( deniam16c )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,XTAL_25MHz/2) /* 12.5Mhz verified */
MDRV_CPU_PROGRAM_MAP(deniam16c_map)
MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
MDRV_CPU_VBLANK_INT("screen", irq4_line_assert)
MDRV_MACHINE_START(deniam)
MDRV_MACHINE_RESET(deniam)