mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
Hooked up irq line handlers, and removed an hack for Hexion, nw
This commit is contained in:
parent
f882605d74
commit
e82c21b8e2
@ -328,7 +328,11 @@ static const k053936_interface dbz_k053936_intf =
|
||||
|
||||
static const k053252_interface dbz_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static MACHINE_START( dbz )
|
||||
|
@ -102,15 +102,14 @@ static WRITE8_HANDLER( coincntr_w )
|
||||
if ((data & 0xdc) != 0x10) popmessage("coincntr %02x",data);
|
||||
}
|
||||
|
||||
/* probably not? */
|
||||
static WRITE8_HANDLER( hexion_irq_ack_w )
|
||||
static WRITE_LINE_DEVICE_HANDLER( hexion_irq_ack_w )
|
||||
{
|
||||
cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
|
||||
cputag_set_input_line(device->machine(), "maincpu", 0, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( hexion_nmi_ack_w )
|
||||
static WRITE_LINE_DEVICE_HANDLER( hexion_nmi_ack_w )
|
||||
{
|
||||
cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
|
||||
cputag_set_input_line(device->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8 )
|
||||
@ -123,9 +122,7 @@ static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8 )
|
||||
AM_RANGE(0xe880, 0xe889) AM_DEVWRITE("konami", k051649_frequency_w)
|
||||
AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("konami", k051649_volume_w)
|
||||
AM_RANGE(0xe88f, 0xe88f) AM_DEVWRITE("konami", k051649_keyonoff_w)
|
||||
AM_RANGE(0xf000, 0xf00d) AM_DEVREADWRITE("k053252",k053252_r,k053252_w) /* 053252? f00e = IRQ ack, f00f = NMI ack */
|
||||
AM_RANGE(0xf00e, 0xf00e) AM_WRITE(hexion_irq_ack_w) // - TODO: move these two into the above hook-up
|
||||
AM_RANGE(0xf00f, 0xf00f) AM_WRITE(hexion_nmi_ack_w) // /
|
||||
AM_RANGE(0xf000, 0xf00f) AM_DEVREADWRITE("k053252",k053252_r,k053252_w)
|
||||
AM_RANGE(0xf200, 0xf200) AM_DEVWRITE_MODERN("oki", okim6295_device, write)
|
||||
AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xf401, 0xf401) AM_READ_PORT("DSW2")
|
||||
@ -231,7 +228,11 @@ static TIMER_DEVICE_CALLBACK( hexion_scanline )
|
||||
|
||||
static const k053252_interface hexion_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_LINE(hexion_irq_ack_w),
|
||||
DEVCB_LINE(hexion_nmi_ack_w)
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( hexion, hexion_state )
|
||||
|
@ -345,9 +345,13 @@ static const k053250_interface overdriv_k053250_intf_2 =
|
||||
0, 0 //TODO
|
||||
};
|
||||
|
||||
static const k053250_interface overdriv_k053252_intf =
|
||||
static const k053252_interface overdriv_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
|
||||
|
@ -613,7 +613,11 @@ static const k056832_interface qdrmfgp2_k056832_intf =
|
||||
|
||||
static const k053252_interface qdrmfgp_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static MACHINE_START( qdrmfgp )
|
||||
|
@ -236,7 +236,11 @@ static const k051316_interface rollerg_k051316_intf =
|
||||
|
||||
static const k053252_interface rollerg_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static MACHINE_START( rollerg )
|
||||
|
@ -360,7 +360,11 @@ static const k053247_interface rng_k055673_intf =
|
||||
|
||||
static const k053252_interface rng_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static MACHINE_START( rng )
|
||||
|
@ -454,7 +454,11 @@ static const k053247_interface esckids_k053246_intf =
|
||||
|
||||
static const k053252_interface esckids_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static MACHINE_START( vendetta )
|
||||
|
@ -456,7 +456,11 @@ static const k053247_interface xexex_k053246_intf =
|
||||
|
||||
static const k053252_interface xexex_k053252_intf =
|
||||
{
|
||||
"screen"
|
||||
"screen",
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static void xexex_postload(running_machine &machine)
|
||||
|
@ -9040,6 +9040,11 @@ struct _k053252_state
|
||||
UINT8 vsw,hsw;
|
||||
|
||||
screen_device *screen;
|
||||
devcb_resolved_write_line int1_en;
|
||||
devcb_resolved_write_line int2_en;
|
||||
devcb_resolved_write_line int1_ack;
|
||||
devcb_resolved_write_line int2_ack;
|
||||
//devcb_resolved_write8 int_time;
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
@ -9057,7 +9062,8 @@ INLINE k053252_state *k053252_get_safe_token( device_t *device )
|
||||
INLINE const k053252_interface *k053252_get_interface( device_t *device )
|
||||
{
|
||||
assert(device != NULL);
|
||||
assert((device->type() == K053252));
|
||||
assert(device->type() == K053252);
|
||||
|
||||
return (const k053252_interface *) device->static_config();
|
||||
}
|
||||
|
||||
@ -9087,8 +9093,8 @@ static void k053252_res_change( device_t *device )
|
||||
//VC - VFP - VBP - (VSW+1)
|
||||
attoseconds_t refresh = HZ_TO_ATTOSECONDS(device->clock()) * (k053252->hc) * k053252->vc;
|
||||
|
||||
printf("H %d %d %d %d\n",k053252->hc,k053252->hfp,k053252->hbp,k053252->hsw);
|
||||
printf("V %d %d %d %d\n",k053252->vc,k053252->vfp,k053252->vbp,k053252->vsw);
|
||||
//printf("H %d %d %d %d\n",k053252->hc,k053252->hfp,k053252->hbp,k053252->hsw);
|
||||
//printf("V %d %d %d %d\n",k053252->vc,k053252->vfp,k053252->vbp,k053252->vsw);
|
||||
|
||||
visarea.min_x = 0;
|
||||
visarea.min_y = 0;
|
||||
@ -9132,6 +9138,8 @@ WRITE8_DEVICE_HANDLER( k053252_w )
|
||||
logerror("%d (%04x) HBP set\n",k053252->hbp,k053252->hbp);
|
||||
k053252_res_change(device);
|
||||
break;
|
||||
case 0x06: k053252->int1_en(data); break;
|
||||
case 0x07: k053252->int2_en(data); break;
|
||||
case 0x08:
|
||||
case 0x09:
|
||||
k053252->vc = (k053252->regs[9]&0xff);
|
||||
@ -9155,6 +9163,9 @@ WRITE8_DEVICE_HANDLER( k053252_w )
|
||||
logerror("%02x VSW / %02x HSW set\n",k053252->vsw,k053252->hsw);
|
||||
k053252_res_change(device);
|
||||
break;
|
||||
//case 0x0d: k053252->int_time(data); break;
|
||||
case 0x0e: k053252->int1_ack(1); break;
|
||||
case 0x0f: k053252->int2_ack(1); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -9171,6 +9182,11 @@ static DEVICE_START( k053252 )
|
||||
|
||||
device->save_item(NAME(k053252->regs));
|
||||
k053252->screen = device->machine().device<screen_device>(intf->screen);
|
||||
k053252->int1_en.resolve(intf->int1_en, *device);
|
||||
k053252->int2_en.resolve(intf->int2_en, *device);
|
||||
k053252->int1_ack.resolve(intf->int1_ack, *device);
|
||||
k053252->int2_ack.resolve(intf->int2_ack, *device);
|
||||
//k053252->int_time.resolve(intf->int_time, *device);
|
||||
}
|
||||
|
||||
static DEVICE_RESET( k053252 )
|
||||
|
@ -133,6 +133,11 @@ typedef struct _k053252_interface k053252_interface;
|
||||
struct _k053252_interface
|
||||
{
|
||||
const char *screen;
|
||||
devcb_write_line int1_en;
|
||||
devcb_write_line int2_en;
|
||||
devcb_write_line int1_ack;
|
||||
devcb_write_line int2_ack;
|
||||
// devcb_write8 int_time;
|
||||
};
|
||||
|
||||
typedef struct _k001006_interface k001006_interface;
|
||||
|
Loading…
Reference in New Issue
Block a user