mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +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 =
|
static const k053252_interface dbz_k053252_intf =
|
||||||
{
|
{
|
||||||
"screen"
|
"screen",
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static MACHINE_START( dbz )
|
static MACHINE_START( dbz )
|
||||||
|
@ -102,15 +102,14 @@ static WRITE8_HANDLER( coincntr_w )
|
|||||||
if ((data & 0xdc) != 0x10) popmessage("coincntr %02x",data);
|
if ((data & 0xdc) != 0x10) popmessage("coincntr %02x",data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* probably not? */
|
static WRITE_LINE_DEVICE_HANDLER( hexion_irq_ack_w )
|
||||||
static WRITE8_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 )
|
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(0xe880, 0xe889) AM_DEVWRITE("konami", k051649_frequency_w)
|
||||||
AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("konami", k051649_volume_w)
|
AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("konami", k051649_volume_w)
|
||||||
AM_RANGE(0xe88f, 0xe88f) AM_DEVWRITE("konami", k051649_keyonoff_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(0xf000, 0xf00f) AM_DEVREADWRITE("k053252",k053252_r,k053252_w)
|
||||||
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(0xf200, 0xf200) AM_DEVWRITE_MODERN("oki", okim6295_device, write)
|
AM_RANGE(0xf200, 0xf200) AM_DEVWRITE_MODERN("oki", okim6295_device, write)
|
||||||
AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW1")
|
AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW1")
|
||||||
AM_RANGE(0xf401, 0xf401) AM_READ_PORT("DSW2")
|
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 =
|
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 )
|
static MACHINE_CONFIG_START( hexion, hexion_state )
|
||||||
|
@ -345,9 +345,13 @@ static const k053250_interface overdriv_k053250_intf_2 =
|
|||||||
0, 0 //TODO
|
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 =
|
static const k053252_interface qdrmfgp_k053252_intf =
|
||||||
{
|
{
|
||||||
"screen"
|
"screen",
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static MACHINE_START( qdrmfgp )
|
static MACHINE_START( qdrmfgp )
|
||||||
|
@ -236,7 +236,11 @@ static const k051316_interface rollerg_k051316_intf =
|
|||||||
|
|
||||||
static const k053252_interface rollerg_k053252_intf =
|
static const k053252_interface rollerg_k053252_intf =
|
||||||
{
|
{
|
||||||
"screen"
|
"screen",
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static MACHINE_START( rollerg )
|
static MACHINE_START( rollerg )
|
||||||
|
@ -360,7 +360,11 @@ static const k053247_interface rng_k055673_intf =
|
|||||||
|
|
||||||
static const k053252_interface rng_k053252_intf =
|
static const k053252_interface rng_k053252_intf =
|
||||||
{
|
{
|
||||||
"screen"
|
"screen",
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static MACHINE_START( rng )
|
static MACHINE_START( rng )
|
||||||
|
@ -454,7 +454,11 @@ static const k053247_interface esckids_k053246_intf =
|
|||||||
|
|
||||||
static const k053252_interface esckids_k053252_intf =
|
static const k053252_interface esckids_k053252_intf =
|
||||||
{
|
{
|
||||||
"screen"
|
"screen",
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static MACHINE_START( vendetta )
|
static MACHINE_START( vendetta )
|
||||||
|
@ -456,7 +456,11 @@ static const k053247_interface xexex_k053246_intf =
|
|||||||
|
|
||||||
static const k053252_interface xexex_k053252_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)
|
static void xexex_postload(running_machine &machine)
|
||||||
|
@ -9040,6 +9040,11 @@ struct _k053252_state
|
|||||||
UINT8 vsw,hsw;
|
UINT8 vsw,hsw;
|
||||||
|
|
||||||
screen_device *screen;
|
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 )
|
INLINE const k053252_interface *k053252_get_interface( device_t *device )
|
||||||
{
|
{
|
||||||
assert(device != NULL);
|
assert(device != NULL);
|
||||||
assert((device->type() == K053252));
|
assert(device->type() == K053252);
|
||||||
|
|
||||||
return (const k053252_interface *) device->static_config();
|
return (const k053252_interface *) device->static_config();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9087,8 +9093,8 @@ static void k053252_res_change( device_t *device )
|
|||||||
//VC - VFP - VBP - (VSW+1)
|
//VC - VFP - VBP - (VSW+1)
|
||||||
attoseconds_t refresh = HZ_TO_ATTOSECONDS(device->clock()) * (k053252->hc) * k053252->vc;
|
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("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("V %d %d %d %d\n",k053252->vc,k053252->vfp,k053252->vbp,k053252->vsw);
|
||||||
|
|
||||||
visarea.min_x = 0;
|
visarea.min_x = 0;
|
||||||
visarea.min_y = 0;
|
visarea.min_y = 0;
|
||||||
@ -9132,6 +9138,8 @@ WRITE8_DEVICE_HANDLER( k053252_w )
|
|||||||
logerror("%d (%04x) HBP set\n",k053252->hbp,k053252->hbp);
|
logerror("%d (%04x) HBP set\n",k053252->hbp,k053252->hbp);
|
||||||
k053252_res_change(device);
|
k053252_res_change(device);
|
||||||
break;
|
break;
|
||||||
|
case 0x06: k053252->int1_en(data); break;
|
||||||
|
case 0x07: k053252->int2_en(data); break;
|
||||||
case 0x08:
|
case 0x08:
|
||||||
case 0x09:
|
case 0x09:
|
||||||
k053252->vc = (k053252->regs[9]&0xff);
|
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);
|
logerror("%02x VSW / %02x HSW set\n",k053252->vsw,k053252->hsw);
|
||||||
k053252_res_change(device);
|
k053252_res_change(device);
|
||||||
break;
|
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));
|
device->save_item(NAME(k053252->regs));
|
||||||
k053252->screen = device->machine().device<screen_device>(intf->screen);
|
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 )
|
static DEVICE_RESET( k053252 )
|
||||||
|
@ -133,6 +133,11 @@ typedef struct _k053252_interface k053252_interface;
|
|||||||
struct _k053252_interface
|
struct _k053252_interface
|
||||||
{
|
{
|
||||||
const char *screen;
|
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;
|
typedef struct _k001006_interface k001006_interface;
|
||||||
|
Loading…
Reference in New Issue
Block a user