INTERRUPT_GEN -> INTERRUPT_GEN_MEMBER for MESS part (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2012-09-18 14:45:06 +00:00
parent 3ac43e0187
commit a1b116c06f
157 changed files with 796 additions and 838 deletions

View File

@ -66,7 +66,7 @@ static MACHINE_CONFIG_START( alphasmart, alphasmart_state )
MCFG_CPU_PROGRAM_MAP(alphasmart_mem) MCFG_CPU_PROGRAM_MAP(alphasmart_mem)
MCFG_CPU_IO_MAP(alphasmart_io) MCFG_CPU_IO_MAP(alphasmart_io)
MCFG_CPU_CONFIG(alphasmart_hc11_config) MCFG_CPU_CONFIG(alphasmart_hc11_config)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 50) MCFG_CPU_PERIODIC_INT_DRIVER(alphasmart_state, irq0_line_hold, 50)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_ADD("screen", LCD)

View File

@ -32,6 +32,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(apexc_interrupt);
}; };
@ -395,10 +396,9 @@ INPUT_PORTS_END
/* /*
Not a real interrupt - just handle keyboard input Not a real interrupt - just handle keyboard input
*/ */
static INTERRUPT_GEN( apexc_interrupt ) INTERRUPT_GEN_MEMBER(apexc_state::apexc_interrupt)
{ {
apexc_state *state = device->machine().driver_data<apexc_state>(); address_space& space = *machine().device("maincpu")->memory().space(AS_PROGRAM);
address_space& space = *device->machine().device("maincpu")->memory().space(AS_PROGRAM);
UINT32 edit_keys; UINT32 edit_keys;
int control_keys; int control_keys;
@ -406,26 +406,26 @@ static INTERRUPT_GEN( apexc_interrupt )
/* read new state of edit keys */ /* read new state of edit keys */
edit_keys = device->machine().root_device().ioport("data")->read(); edit_keys = machine().root_device().ioport("data")->read();
/* toggle data reg according to transitions */ /* toggle data reg according to transitions */
state->m_panel_data_reg ^= edit_keys & (~state->m_old_edit_keys); m_panel_data_reg ^= edit_keys & (~m_old_edit_keys);
/* remember new state of edit keys */ /* remember new state of edit keys */
state->m_old_edit_keys = edit_keys; m_old_edit_keys = edit_keys;
/* read new state of control keys */ /* read new state of control keys */
control_keys = state->ioport("panel")->read(); control_keys = ioport("panel")->read();
/* compute transitions */ /* compute transitions */
control_transitions = control_keys & (~state->m_old_control_keys); control_transitions = control_keys & (~m_old_control_keys);
/* process commands */ /* process commands */
if (control_transitions & panel_run) if (control_transitions & panel_run)
{ /* toggle run/stop state */ { /* toggle run/stop state */
device->state().set_state_int(APEXC_STATE, ! device->state().state_int(APEXC_STATE)); device.state().set_state_int(APEXC_STATE, ! device.state().state_int(APEXC_STATE));
} }
while (control_transitions & (panel_CR | panel_A | panel_R | panel_ML | panel_HB)) while (control_transitions & (panel_CR | panel_A | panel_R | panel_ML | panel_HB))
@ -467,10 +467,10 @@ static INTERRUPT_GEN( apexc_interrupt )
/* read/write register #reg_id */ /* read/write register #reg_id */
if (control_keys & panel_write) if (control_keys & panel_write)
/* write reg */ /* write reg */
device->state().set_state_int(reg_id, state->m_panel_data_reg); device.state().set_state_int(reg_id, m_panel_data_reg);
else else
/* read reg */ /* read reg */
state->m_panel_data_reg = device->state().state_int(reg_id); m_panel_data_reg = device.state().state_int(reg_id);
} }
} }
@ -479,16 +479,16 @@ static INTERRUPT_GEN( apexc_interrupt )
if (control_keys & panel_write) { if (control_keys & panel_write) {
/* write memory */ /* write memory */
space.write_dword(device->state().state_int(APEXC_ML_FULL)<<2, state->m_panel_data_reg); space.write_dword(device.state().state_int(APEXC_ML_FULL)<<2, m_panel_data_reg);
} }
else { else {
/* read memory */ /* read memory */
state->m_panel_data_reg = space.read_dword(device->state().state_int(APEXC_ML_FULL)<<2); m_panel_data_reg = space.read_dword(device.state().state_int(APEXC_ML_FULL)<<2);
} }
} }
/* remember new state of control keys */ /* remember new state of control keys */
state->m_old_control_keys = control_keys; m_old_control_keys = control_keys;
} }
/* /*
@ -869,7 +869,7 @@ static MACHINE_CONFIG_START( apexc, apexc_state )
MCFG_CPU_PROGRAM_MAP(apexc_mem_map) MCFG_CPU_PROGRAM_MAP(apexc_mem_map)
MCFG_CPU_IO_MAP(apexc_io_map) MCFG_CPU_IO_MAP(apexc_io_map)
/* dummy interrupt: handles the control panel */ /* dummy interrupt: handles the control panel */
MCFG_CPU_VBLANK_INT("screen", apexc_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", apexc_state, apexc_interrupt)
/*MCFG_CPU_PERIODIC_INT(func, rate)*/ /*MCFG_CPU_PERIODIC_INT(func, rate)*/

View File

@ -71,7 +71,7 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2 MHz */ MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2 MHz */
MCFG_CPU_PROGRAM_MAP(apple3_map) MCFG_CPU_PROGRAM_MAP(apple3_map)
MCFG_CPU_CONFIG( apple3_m6502_interface ) MCFG_CPU_CONFIG( apple3_m6502_interface )
MCFG_CPU_PERIODIC_INT(apple3_interrupt, 192) MCFG_CPU_PERIODIC_INT_DRIVER(apple3_state, apple3_interrupt, 192)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_RESET_OVERRIDE(apple3_state, apple3 ) MCFG_MACHINE_RESET_OVERRIDE(apple3_state, apple3 )

View File

@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) // ??? MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) // ???
MCFG_CPU_PROGRAM_MAP(aquarius_mem) MCFG_CPU_PROGRAM_MAP(aquarius_mem)
MCFG_CPU_IO_MAP(aquarius_io) MCFG_CPU_IO_MAP(aquarius_io)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) MCFG_CPU_VBLANK_INT_DRIVER("screen", aquarius_state, irq0_line_hold)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -530,7 +530,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_state )
MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */ MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */
MCFG_CPU_PROGRAM_MAP(arcadia_mem) MCFG_CPU_PROGRAM_MAP(arcadia_mem)
MCFG_CPU_IO_MAP(arcadia_io) MCFG_CPU_IO_MAP(arcadia_io)
MCFG_CPU_PERIODIC_INT(arcadia_video_line, 262*60) MCFG_CPU_PERIODIC_INT_DRIVER(arcadia_state, arcadia_video_line, 262*60)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* video hardware */ /* video hardware */

View File

@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( b2m, b2m_state )
MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_ADD("maincpu", I8080, 2000000)
MCFG_CPU_PROGRAM_MAP(b2m_mem) MCFG_CPU_PROGRAM_MAP(b2m_mem)
MCFG_CPU_IO_MAP(b2m_io) MCFG_CPU_IO_MAP(b2m_io)
MCFG_CPU_VBLANK_INT("screen", b2m_vblank_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", b2m_state, b2m_vblank_interrupt)
/* video hardware */ /* video hardware */

View File

@ -691,9 +691,9 @@ ROM_END
static INTERRUPT_GEN( bbcb_vsync ) INTERRUPT_GEN_MEMBER(bbc_state::bbcb_vsync)
{ {
via6522_device *via_0 = device->machine().device<via6522_device>("via6522_0"); via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
via_0->write_ca1(1); via_0->write_ca1(1);
via_0->write_ca1(0); via_0->write_ca1(0);
} }
@ -841,8 +841,8 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2.00 MHz */ MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2.00 MHz */
MCFG_CPU_PROGRAM_MAP( bbca_mem) MCFG_CPU_PROGRAM_MAP( bbca_mem)
MCFG_CPU_VBLANK_INT("screen", bbcb_vsync) /* screen refresh interrupts */ MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync) /* screen refresh interrupts */
MCFG_CPU_PERIODIC_INT(bbcb_keyscan, 1000) /* scan keyboard */ MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcb_keyscan, 1000) /* scan keyboard */
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbca ) MCFG_MACHINE_START_OVERRIDE(bbc_state, bbca )
@ -933,8 +933,8 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M65SC02, 2000000) /* 2.00 MHz */ MCFG_CPU_ADD("maincpu", M65SC02, 2000000) /* 2.00 MHz */
MCFG_CPU_PROGRAM_MAP( bbcm_mem) MCFG_CPU_PROGRAM_MAP( bbcm_mem)
MCFG_CPU_VBLANK_INT("screen", bbcb_vsync) /* screen refresh interrupts */ MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync) /* screen refresh interrupts */
MCFG_CPU_PERIODIC_INT(bbcm_keyscan, 1000) /* scan keyboard */ MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcm_keyscan, 1000) /* scan keyboard */
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcm ) MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcm )

View File

@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( bmjr, bmjr_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6800, XTAL_4MHz/4) //unknown clock / divider MCFG_CPU_ADD("maincpu",M6800, XTAL_4MHz/4) //unknown clock / divider
MCFG_CPU_PROGRAM_MAP(bmjr_mem) MCFG_CPU_PROGRAM_MAP(bmjr_mem)
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) MCFG_CPU_VBLANK_INT_DRIVER("screen", bmjr_state, irq0_line_hold)
/* video hardware */ /* video hardware */

View File

@ -113,6 +113,8 @@ protected:
virtual void palette_init(); virtual void palette_init();
public: public:
UINT32 screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(bml3_irq);
INTERRUPT_GEN_MEMBER(bml3_timer_firq);
}; };
#define mc6845_h_char_total (m_crtc_vreg[0]) #define mc6845_h_char_total (m_crtc_vreg[0])
@ -600,21 +602,20 @@ static TIMER_DEVICE_CALLBACK( keyboard_callback )
} }
#if 0 #if 0
static INTERRUPT_GEN( bml3_irq ) INTERRUPT_GEN_MEMBER(bml3_state::bml3_irq)
{ {
device->machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE); machine().device("maincpu")->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE);
} }
#endif #endif
static INTERRUPT_GEN( bml3_timer_firq ) INTERRUPT_GEN_MEMBER(bml3_state::bml3_timer_firq)
{ {
bml3_state *state = device->machine().driver_data<bml3_state>();
if(!state->m_firq_mask) if(!m_firq_mask)
{ {
state->m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
state->m_firq_status = 1; m_firq_status = 1;
} }
} }
@ -889,8 +890,8 @@ static MACHINE_CONFIG_START( bml3, bml3_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6809, XTAL_1MHz) MCFG_CPU_ADD("maincpu",M6809, XTAL_1MHz)
MCFG_CPU_PROGRAM_MAP(bml3_mem) MCFG_CPU_PROGRAM_MAP(bml3_mem)
MCFG_CPU_VBLANK_INT("screen", bml3_timer_firq ) MCFG_CPU_VBLANK_INT_DRIVER("screen", bml3_state, bml3_timer_firq)
// MCFG_CPU_PERIODIC_INT(bml3_firq,45) // MCFG_CPU_PERIODIC_INT_DRIVER(bml3_state, bml3_firq, 45)
// MCFG_MACHINE_RESET_OVERRIDE(bml3_state,bml3) // MCFG_MACHINE_RESET_OVERRIDE(bml3_state,bml3)

View File

@ -1085,13 +1085,13 @@ static MACHINE_CONFIG_START( ntsc, c128_state )
MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6567_CLOCK) MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6567_CLOCK)
MCFG_CPU_PROGRAM_MAP( z80_mem) MCFG_CPU_PROGRAM_MAP( z80_mem)
MCFG_CPU_IO_MAP( z80_io) MCFG_CPU_IO_MAP( z80_io)
MCFG_CPU_VBLANK_INT(SCREEN_VIC_TAG, c128_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_VIC_TAG, c128_state, c128_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(Z80A_TAG) MCFG_QUANTUM_PERFECT_CPU(Z80A_TAG)
MCFG_CPU_ADD(M8502_TAG, M8502, VIC6567_CLOCK) MCFG_CPU_ADD(M8502_TAG, M8502, VIC6567_CLOCK)
MCFG_CPU_PROGRAM_MAP( m8502_mem) MCFG_CPU_PROGRAM_MAP( m8502_mem)
MCFG_CPU_CONFIG( cpu_intf ) MCFG_CPU_CONFIG( cpu_intf )
MCFG_CPU_VBLANK_INT(SCREEN_VIC_TAG, c128_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_VIC_TAG, c128_state, c128_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M8502_TAG) MCFG_QUANTUM_PERFECT_CPU(M8502_TAG)
// video hardware // video hardware
@ -1192,13 +1192,13 @@ static MACHINE_CONFIG_START( pal, c128_state )
MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6569_CLOCK) MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6569_CLOCK)
MCFG_CPU_PROGRAM_MAP( z80_mem) MCFG_CPU_PROGRAM_MAP( z80_mem)
MCFG_CPU_IO_MAP(z80_io) MCFG_CPU_IO_MAP(z80_io)
MCFG_CPU_VBLANK_INT(SCREEN_VIC_TAG, c128_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_VIC_TAG, c128_state, c128_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(Z80A_TAG) MCFG_QUANTUM_PERFECT_CPU(Z80A_TAG)
MCFG_CPU_ADD(M8502_TAG, M8502, VIC6569_CLOCK) MCFG_CPU_ADD(M8502_TAG, M8502, VIC6569_CLOCK)
MCFG_CPU_PROGRAM_MAP( m8502_mem) MCFG_CPU_PROGRAM_MAP( m8502_mem)
MCFG_CPU_CONFIG( cpu_intf ) MCFG_CPU_CONFIG( cpu_intf )
MCFG_CPU_VBLANK_INT(SCREEN_VIC_TAG, c128_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_VIC_TAG, c128_state, c128_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M8502_TAG) MCFG_QUANTUM_PERFECT_CPU(M8502_TAG)
// video hardware // video hardware

View File

@ -373,12 +373,11 @@ INPUT_PORTS_END
// vic2_interface vic_intf // vic2_interface vic_intf
//------------------------------------------------- //-------------------------------------------------
static INTERRUPT_GEN( c64_frame_interrupt ) INTERRUPT_GEN_MEMBER(c64_state::c64_frame_interrupt)
{ {
c64_state *state = device->machine().driver_data<c64_state>();
state->check_interrupts(); check_interrupts();
cbm_common_interrupt(device); cbm_common_interrupt(&device);
} }
WRITE_LINE_MEMBER( c64_state::vic_irq_w ) WRITE_LINE_MEMBER( c64_state::vic_irq_w )
@ -991,7 +990,7 @@ static MACHINE_CONFIG_START( ntsc, c64_state )
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK) MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK)
MCFG_CPU_PROGRAM_MAP(c64_mem) MCFG_CPU_PROGRAM_MAP(c64_mem)
MCFG_CPU_CONFIG(cpu_intf) MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware // video hardware
@ -1090,7 +1089,7 @@ static MACHINE_CONFIG_START( pal, c64_state )
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK) MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
MCFG_CPU_PROGRAM_MAP(c64_mem) MCFG_CPU_PROGRAM_MAP(c64_mem)
MCFG_CPU_CONFIG(cpu_intf) MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware // video hardware
@ -1167,7 +1166,7 @@ static MACHINE_CONFIG_START( pal_gs, c64gs_state )
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK) MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
MCFG_CPU_PROGRAM_MAP(c64_mem) MCFG_CPU_PROGRAM_MAP(c64_mem)
MCFG_CPU_CONFIG(c64gs_cpu_intf) MCFG_CPU_CONFIG(c64gs_cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, c64_state, c64_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware // video hardware

View File

@ -289,9 +289,9 @@ static const vic3_interface c65_vic3_pal_intf = {
c65_c64_mem_r c65_c64_mem_r
}; };
static INTERRUPT_GEN( vic3_raster_irq ) INTERRUPT_GEN_MEMBER(c65_state::vic3_raster_irq)
{ {
device_t *vic3 = device->machine().device("vic3"); device_t *vic3 = machine().device("vic3");
vic3_raster_interrupt_gen(vic3); vic3_raster_interrupt_gen(vic3);
} }
@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( c65, c65_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M4510, 3500000) /* or VIC6567_CLOCK, */ MCFG_CPU_ADD("maincpu", M4510, 3500000) /* or VIC6567_CLOCK, */
MCFG_CPU_PROGRAM_MAP(c65_mem) MCFG_CPU_PROGRAM_MAP(c65_mem)
MCFG_CPU_VBLANK_INT("screen", c65_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", c65_state, c65_frame_interrupt)
MCFG_CPU_PERIODIC_INT(vic3_raster_irq, VIC6567_HRETRACERATE) MCFG_CPU_PERIODIC_INT_DRIVER(c65_state, vic3_raster_irq, VIC6567_HRETRACERATE)
MCFG_MACHINE_START_OVERRIDE(c65_state, c65 ) MCFG_MACHINE_START_OVERRIDE(c65_state, c65 )

View File

@ -498,7 +498,7 @@ static MACHINE_CONFIG_START( p500, cbmb_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6509, VIC6567_CLOCK) /* 7.8336 MHz */ MCFG_CPU_ADD("maincpu", M6509, VIC6567_CLOCK) /* 7.8336 MHz */
MCFG_CPU_PROGRAM_MAP(p500_mem) MCFG_CPU_PROGRAM_MAP(p500_mem)
//MCFG_CPU_PERIODIC_INT(vic2_raster_irq, VIC6567_HRETRACERATE) //MCFG_CPU_PERIODIC_INT_DRIVER(cbmb_state, vic2_raster_irq, VIC6567_HRETRACERATE)
MCFG_MACHINE_RESET_OVERRIDE(cbmb_state, cbmb ) MCFG_MACHINE_RESET_OVERRIDE(cbmb_state, cbmb )

View File

@ -523,8 +523,8 @@ static MACHINE_CONFIG_START( cgenie_common, cgenie_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_17_73447MHz/8) /* 2,2168 MHz */ MCFG_CPU_ADD("maincpu", Z80, XTAL_17_73447MHz/8) /* 2,2168 MHz */
MCFG_CPU_PROGRAM_MAP(cgenie_mem) MCFG_CPU_PROGRAM_MAP(cgenie_mem)
MCFG_CPU_IO_MAP(cgenie_io) MCFG_CPU_IO_MAP(cgenie_io)
MCFG_CPU_VBLANK_INT("screen", cgenie_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", cgenie_state, cgenie_frame_interrupt)
MCFG_CPU_PERIODIC_INT(cgenie_timer_interrupt, 40) MCFG_CPU_PERIODIC_INT_DRIVER(cgenie_state, cgenie_timer_interrupt, 40)
MCFG_QUANTUM_TIME(attotime::from_hz(240)) MCFG_QUANTUM_TIME(attotime::from_hz(240))

View File

@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( compis, compis_state )
MCFG_CPU_ADD("maincpu", I80186, 8000000) /* 8 MHz */ MCFG_CPU_ADD("maincpu", I80186, 8000000) /* 8 MHz */
MCFG_CPU_PROGRAM_MAP(compis_mem) MCFG_CPU_PROGRAM_MAP(compis_mem)
MCFG_CPU_IO_MAP(compis_io) MCFG_CPU_IO_MAP(compis_io)
MCFG_CPU_VBLANK_INT("screen", compis_vblank_int) MCFG_CPU_VBLANK_INT_DRIVER("screen", compis_state, compis_vblank_int)
MCFG_CPU_CONFIG(i86_address_mask) MCFG_CPU_CONFIG(i86_address_mask)
//MCFG_QUANTUM_TIME(attotime::from_hz(60)) //MCFG_QUANTUM_TIME(attotime::from_hz(60))
@ -400,7 +400,7 @@ static MACHINE_CONFIG_START( compis2, compis_state )
MCFG_CPU_ADD("maincpu", I80186, 8000000) /* 8 MHz */ MCFG_CPU_ADD("maincpu", I80186, 8000000) /* 8 MHz */
MCFG_CPU_PROGRAM_MAP(compis_mem) MCFG_CPU_PROGRAM_MAP(compis_mem)
MCFG_CPU_IO_MAP(compis_io) MCFG_CPU_IO_MAP(compis_io)
MCFG_CPU_VBLANK_INT("screen", compis_vblank_int) MCFG_CPU_VBLANK_INT_DRIVER("screen", compis_state, compis_vblank_int)
MCFG_CPU_CONFIG(i86_address_mask) MCFG_CPU_CONFIG(i86_address_mask)
//MCFG_QUANTUM_TIME(attotime::from_hz(60)) //MCFG_QUANTUM_TIME(attotime::from_hz(60))

View File

@ -119,7 +119,7 @@ static MACHINE_CONFIG_START( concept, concept_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 8182000) /* 16.364 MHz / 2 */ MCFG_CPU_ADD("maincpu", M68000, 8182000) /* 16.364 MHz / 2 */
MCFG_CPU_PROGRAM_MAP(concept_memmap) MCFG_CPU_PROGRAM_MAP(concept_memmap)
MCFG_CPU_VBLANK_INT("screen", concept_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", concept_state, concept_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))

View File

@ -50,6 +50,7 @@ public:
DECLARE_READ8_MEMBER(elwro800jr_io_r); DECLARE_READ8_MEMBER(elwro800jr_io_r);
DECLARE_WRITE8_MEMBER(elwro800jr_io_w); DECLARE_WRITE8_MEMBER(elwro800jr_io_w);
DECLARE_MACHINE_RESET(elwro800); DECLARE_MACHINE_RESET(elwro800);
INTERRUPT_GEN_MEMBER(elwro800jr_interrupt);
}; };
@ -535,9 +536,9 @@ static const cassette_interface elwro800jr_cassette_interface =
NULL NULL
}; };
static INTERRUPT_GEN( elwro800jr_interrupt ) INTERRUPT_GEN_MEMBER(elwro800_state::elwro800jr_interrupt)
{ {
device->execute().set_input_line(0, HOLD_LINE); device.execute().set_input_line(0, HOLD_LINE);
} }
static const floppy_interface elwro800jr_floppy_interface = static const floppy_interface elwro800jr_floppy_interface =
@ -578,7 +579,7 @@ static MACHINE_CONFIG_START( elwro800, elwro800_state )
MCFG_CPU_ADD("maincpu",Z80, 3500000) /* 3.5 MHz */ MCFG_CPU_ADD("maincpu",Z80, 3500000) /* 3.5 MHz */
MCFG_CPU_PROGRAM_MAP(elwro800_mem) MCFG_CPU_PROGRAM_MAP(elwro800_mem)
MCFG_CPU_IO_MAP(elwro800_io) MCFG_CPU_IO_MAP(elwro800_io)
MCFG_CPU_VBLANK_INT("screen", elwro800jr_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", elwro800_state, elwro800jr_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(elwro800_state,elwro800) MCFG_MACHINE_RESET_OVERRIDE(elwro800_state,elwro800)

View File

@ -2670,7 +2670,7 @@ static MACHINE_CONFIG_FRAGMENT( towns_base )
MCFG_CPU_ADD("maincpu",I386, 16000000) MCFG_CPU_ADD("maincpu",I386, 16000000)
MCFG_CPU_PROGRAM_MAP(towns_mem) MCFG_CPU_PROGRAM_MAP(towns_mem)
MCFG_CPU_IO_MAP(towns_io) MCFG_CPU_IO_MAP(towns_io)
MCFG_CPU_VBLANK_INT("screen", towns_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", towns_state, towns_vsync_irq)
// MCFG_MACHINE_RESET_OVERRIDE(towns_state,towns) // MCFG_MACHINE_RESET_OVERRIDE(towns_state,towns)
@ -2741,7 +2741,7 @@ static MACHINE_CONFIG_DERIVED( townsux, towns )
MCFG_CPU_REPLACE("maincpu",I386, 16000000) MCFG_CPU_REPLACE("maincpu",I386, 16000000)
MCFG_CPU_PROGRAM_MAP(ux_mem) MCFG_CPU_PROGRAM_MAP(ux_mem)
MCFG_CPU_IO_MAP(towns_io) MCFG_CPU_IO_MAP(towns_io)
MCFG_CPU_VBLANK_INT("screen", towns_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", towns_state, towns_vsync_irq)
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("2M") MCFG_RAM_DEFAULT_SIZE("2M")
@ -2753,7 +2753,7 @@ static MACHINE_CONFIG_DERIVED( townssj, towns )
MCFG_CPU_REPLACE("maincpu",I486, 66000000) MCFG_CPU_REPLACE("maincpu",I486, 66000000)
MCFG_CPU_PROGRAM_MAP(towns_mem) MCFG_CPU_PROGRAM_MAP(towns_mem)
MCFG_CPU_IO_MAP(towns_io) MCFG_CPU_IO_MAP(towns_io)
MCFG_CPU_VBLANK_INT("screen", towns_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", towns_state, towns_vsync_irq)
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("8M") MCFG_RAM_DEFAULT_SIZE("8M")
@ -2765,7 +2765,7 @@ static MACHINE_CONFIG_DERIVED( townshr, towns )
MCFG_CPU_REPLACE("maincpu",I486, 20000000) MCFG_CPU_REPLACE("maincpu",I486, 20000000)
MCFG_CPU_PROGRAM_MAP(towns_mem) MCFG_CPU_PROGRAM_MAP(towns_mem)
MCFG_CPU_IO_MAP(towns_io) MCFG_CPU_IO_MAP(towns_io)
MCFG_CPU_VBLANK_INT("screen", towns_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", towns_state, towns_vsync_irq)
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("4M") MCFG_RAM_DEFAULT_SIZE("4M")
@ -2778,7 +2778,7 @@ static MACHINE_CONFIG_START( marty, marty_state )
MCFG_CPU_REPLACE("maincpu",I386, 16000000) MCFG_CPU_REPLACE("maincpu",I386, 16000000)
MCFG_CPU_PROGRAM_MAP(marty_mem) MCFG_CPU_PROGRAM_MAP(marty_mem)
MCFG_CPU_IO_MAP(towns_io) MCFG_CPU_IO_MAP(towns_io)
MCFG_CPU_VBLANK_INT("screen", towns_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", towns_state, towns_vsync_irq)
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("6M") MCFG_RAM_DEFAULT_SIZE("6M")

View File

@ -115,6 +115,7 @@ public:
virtual void machine_start(); virtual void machine_start();
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
INTERRUPT_GEN_MEMBER(fp1100_vblank_irq);
}; };
void fp1100_state::video_start() void fp1100_state::video_start()
@ -394,12 +395,11 @@ static const mc6845_interface mc6845_intf =
NULL /* update address callback */ NULL /* update address callback */
}; };
static INTERRUPT_GEN( fp1100_vblank_irq ) INTERRUPT_GEN_MEMBER(fp1100_state::fp1100_vblank_irq)
{ {
fp1100_state *state = device->machine().driver_data<fp1100_state>();
if(state->irq_mask & 0x10) if(irq_mask & 0x10)
device->machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf0); machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf0);
} }
static MACHINE_CONFIG_START( fp1100, fp1100_state ) static MACHINE_CONFIG_START( fp1100, fp1100_state )
@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( fp1100, fp1100_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) //unknown clock MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) //unknown clock
MCFG_CPU_PROGRAM_MAP(fp1100_map) MCFG_CPU_PROGRAM_MAP(fp1100_map)
MCFG_CPU_IO_MAP(fp1100_io) MCFG_CPU_IO_MAP(fp1100_io)
MCFG_CPU_VBLANK_INT("screen",fp1100_vblank_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", fp1100_state, fp1100_vblank_irq)
MCFG_CPU_ADD( "sub", UPD7801, XTAL_4MHz ) //unknown clock MCFG_CPU_ADD( "sub", UPD7801, XTAL_4MHz ) //unknown clock
MCFG_CPU_PROGRAM_MAP( fp1100_slave_map ) MCFG_CPU_PROGRAM_MAP( fp1100_slave_map )

View File

@ -187,7 +187,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL / 2) MCFG_CPU_ADD("maincpu", Z80, XTAL / 2)
MCFG_CPU_PROGRAM_MAP(galaxy_mem) MCFG_CPU_PROGRAM_MAP(galaxy_mem)
MCFG_CPU_VBLANK_INT("screen", galaxy_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", galaxy_state, galaxy_interrupt)
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)
@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( galaxyp, galaxy_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL / 2) MCFG_CPU_ADD("maincpu", Z80, XTAL / 2)
MCFG_CPU_PROGRAM_MAP(galaxyp_mem) MCFG_CPU_PROGRAM_MAP(galaxyp_mem)
MCFG_CPU_IO_MAP(galaxyp_io) MCFG_CPU_IO_MAP(galaxyp_io)
MCFG_CPU_VBLANK_INT("screen", galaxy_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", galaxy_state, galaxy_interrupt)
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)

View File

@ -89,9 +89,9 @@ UINT32 gamecom_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
return 0; return 0;
} }
static INTERRUPT_GEN( gamecom_interrupt ) INTERRUPT_GEN_MEMBER(gamecom_state::gamecom_interrupt)
{ {
device->machine().device("maincpu")->execute().set_input_line(LCDC_INT, ASSERT_LINE ); machine().device("maincpu")->execute().set_input_line(LCDC_INT, ASSERT_LINE );
} }
static MACHINE_CONFIG_START( gamecom, gamecom_state ) static MACHINE_CONFIG_START( gamecom, gamecom_state )
@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( gamecom, gamecom_state )
MCFG_CPU_ADD( "maincpu", SM8500, XTAL_11_0592MHz/2 ) /* actually it's an sm8521 microcontroller containing an sm8500 cpu */ MCFG_CPU_ADD( "maincpu", SM8500, XTAL_11_0592MHz/2 ) /* actually it's an sm8521 microcontroller containing an sm8500 cpu */
MCFG_CPU_PROGRAM_MAP( gamecom_mem_map) MCFG_CPU_PROGRAM_MAP( gamecom_mem_map)
MCFG_CPU_CONFIG( gamecom_cpu_config ) MCFG_CPU_CONFIG( gamecom_cpu_config )
MCFG_CPU_VBLANK_INT("screen", gamecom_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", gamecom_state, gamecom_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))

View File

@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( gb_common, gb_state )
MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */ MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */
MCFG_CPU_PROGRAM_MAP(gb_map) MCFG_CPU_PROGRAM_MAP(gb_map)
MCFG_LR35902_CONFIG(dmg_cpu_reset) MCFG_LR35902_CONFIG(dmg_cpu_reset)
MCFG_CPU_VBLANK_INT("screen", gb_scanline_interrupt) /* 1 dummy int each frame */ MCFG_CPU_VBLANK_INT_DRIVER("screen", gb_state, gb_scanline_interrupt) /* 1 dummy int each frame */
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( megaduck, gb_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */ MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */
MCFG_CPU_PROGRAM_MAP( megaduck_map) MCFG_CPU_PROGRAM_MAP( megaduck_map)
MCFG_CPU_VBLANK_INT("screen", gb_scanline_interrupt) /* 1 int each scanline ! */ MCFG_CPU_VBLANK_INT_DRIVER("screen", gb_state, gb_scanline_interrupt) /* 1 int each scanline ! */
MCFG_LR35902_CONFIG(megaduck_cpu_reset) MCFG_LR35902_CONFIG(megaduck_cpu_reset)
MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_ADD("screen", LCD)

View File

@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( geniusiq, geniusiq_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // The main crystal is at 32MHz, not sure whats the CPU freq MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // The main crystal is at 32MHz, not sure whats the CPU freq
MCFG_CPU_PROGRAM_MAP(geniusiq_mem) MCFG_CPU_PROGRAM_MAP(geniusiq_mem)
MCFG_CPU_PERIODIC_INT(irq6_line_hold, 125) // the internal clock is increased by 1 sec every 125 interrupts MCFG_CPU_PERIODIC_INT_DRIVER(geniusiq_state, irq6_line_hold, 125) // the internal clock is increased by 1 sec every 125 interrupts
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -205,9 +205,9 @@ UINT32 gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind16
} }
static INTERRUPT_GEN( gmaster_interrupt ) INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt)
{ {
device->machine().device("maincpu")->execute().set_input_line(UPD7810_INTFE1, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UPD7810_INTFE1, ASSERT_LINE);
} }
static const UPD7810_CONFIG config = { static const UPD7810_CONFIG config = {
@ -221,7 +221,7 @@ static MACHINE_CONFIG_START( gmaster, gmaster_state )
MCFG_CPU_PROGRAM_MAP(gmaster_mem) MCFG_CPU_PROGRAM_MAP(gmaster_mem)
MCFG_CPU_IO_MAP( gmaster_io) MCFG_CPU_IO_MAP( gmaster_io)
MCFG_CPU_CONFIG( config ) MCFG_CPU_CONFIG( config )
MCFG_CPU_VBLANK_INT("screen", gmaster_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", gmaster_state, gmaster_interrupt)
MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_ADD("screen", LCD)
MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_REFRESH_RATE(60)

View File

@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( h19, h19_state )
MCFG_CPU_ADD("maincpu",Z80, H19_CLOCK) // From schematics MCFG_CPU_ADD("maincpu",Z80, H19_CLOCK) // From schematics
MCFG_CPU_PROGRAM_MAP(h19_mem) MCFG_CPU_PROGRAM_MAP(h19_mem)
MCFG_CPU_IO_MAP(h19_io) MCFG_CPU_IO_MAP(h19_io)
//MCFG_DEVICE_PERIODIC_INT(irq0_line_hold, 50) // for testing, causes a keyboard scan //MCFG_DEVICE_PERIODIC_INT_DRIVER(h19_state, irq0_line_hold, 50) // for testing, causes a keyboard scan
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -440,7 +440,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrp_mem) MCFG_CPU_PROGRAM_MAP(hec2hrp_mem)
MCFG_CPU_IO_MAP(hec2hrp_io) MCFG_CPU_IO_MAP(hec2hrp_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) /* put on the Z80 irq in Hz*/ MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/
MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp)
@ -483,7 +483,7 @@ static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrp_mem) MCFG_CPU_PROGRAM_MAP(hec2hrp_mem)
MCFG_CPU_IO_MAP(hec2hrp_io) MCFG_CPU_IO_MAP(hec2hrp_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) /* put on the Z80 irq in Hz*/ MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/
MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp)
@ -526,7 +526,7 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrx_mem) MCFG_CPU_PROGRAM_MAP(hec2hrx_mem)
MCFG_CPU_IO_MAP(hec2mx40_io) MCFG_CPU_IO_MAP(hec2mx40_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) // put on the Z80 irq in Hz MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz
/* Disc II unit */ /* Disc II unit */
MCFG_CPU_ADD("disc2cpu",Z80, XTAL_4MHz) MCFG_CPU_ADD("disc2cpu",Z80, XTAL_4MHz)
@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrx_mem) MCFG_CPU_PROGRAM_MAP(hec2hrx_mem)
MCFG_CPU_IO_MAP(hec2hrx_io) MCFG_CPU_IO_MAP(hec2hrx_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) // put on the Z80 irq in Hz MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz
MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx)
@ -625,7 +625,7 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrx_mem) MCFG_CPU_PROGRAM_MAP(hec2hrx_mem)
MCFG_CPU_IO_MAP(hec2mdhrx_io) MCFG_CPU_IO_MAP(hec2mdhrx_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) // put on the Z80 irq in Hz MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz
MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx)
@ -673,7 +673,7 @@ static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
MCFG_CPU_PROGRAM_MAP(hec2hrx_mem) MCFG_CPU_PROGRAM_MAP(hec2hrx_mem)
MCFG_CPU_IO_MAP(hec2mx80_io) MCFG_CPU_IO_MAP(hec2mx80_io)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) // put on the Z80 irq in Hz MCFG_CPU_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz
MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx)

View File

@ -73,13 +73,13 @@ public:
DECLARE_VIDEO_START(brailab4); DECLARE_VIDEO_START(brailab4);
UINT32 screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(homelab_frame);
}; };
static INTERRUPT_GEN( homelab_frame ) INTERRUPT_GEN_MEMBER(homelab_state::homelab_frame)
{ {
homelab_state *state = device->machine().driver_data<homelab_state>(); if (m_nmi)
if (state->m_nmi) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
} }
READ8_MEMBER( homelab_state::key_r ) // offset 27F-2FE READ8_MEMBER( homelab_state::key_r ) // offset 27F-2FE
@ -741,7 +741,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2)
MCFG_CPU_PROGRAM_MAP(homelab2_mem) MCFG_CPU_PROGRAM_MAP(homelab2_mem)
MCFG_CPU_VBLANK_INT("screen", homelab_frame) MCFG_CPU_VBLANK_INT_DRIVER("screen", homelab_state, homelab_frame)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -39,6 +39,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(homez80_interrupt);
}; };
@ -271,11 +272,10 @@ static GFXDECODE_START( homez80 )
GFXDECODE_END GFXDECODE_END
static INTERRUPT_GEN( homez80_interrupt ) INTERRUPT_GEN_MEMBER(homez80_state::homez80_interrupt)
{ {
homez80_state *state = device->machine().driver_data<homez80_state>(); device.execute().set_input_line(0, (m_irq) ? HOLD_LINE : CLEAR_LINE);
device->execute().set_input_line(0, (state->m_irq) ? HOLD_LINE : CLEAR_LINE); m_irq ^= 1;
state->m_irq ^= 1;
} }
static MACHINE_CONFIG_START( homez80, homez80_state ) static MACHINE_CONFIG_START( homez80, homez80_state )
@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( homez80, homez80_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 2) MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 2)
MCFG_CPU_PROGRAM_MAP(homez80_mem) MCFG_CPU_PROGRAM_MAP(homez80_mem)
MCFG_CPU_IO_MAP(homez80_io) MCFG_CPU_IO_MAP(homez80_io)
MCFG_CPU_PERIODIC_INT(homez80_interrupt, 50) MCFG_CPU_PERIODIC_INT_DRIVER(homez80_state, homez80_interrupt, 50)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( interact, interact_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", I8080, XTAL_2MHz) MCFG_CPU_ADD("maincpu", I8080, XTAL_2MHz)
MCFG_CPU_PROGRAM_MAP(interact_mem) MCFG_CPU_PROGRAM_MAP(interact_mem)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) /* put on the I8080 irq in Hz*/ MCFG_CPU_PERIODIC_INT_DRIVER(interact_state, irq0_line_hold, 50) /* put on the I8080 irq in Hz*/
MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact)
MCFG_MACHINE_START_OVERRIDE(interact_state,interact) MCFG_MACHINE_START_OVERRIDE(interact_state,interact)
@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( hector1, interact_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_1_75MHz) MCFG_CPU_ADD("maincpu", Z80, XTAL_1_75MHz)
MCFG_CPU_PROGRAM_MAP(interact_mem) MCFG_CPU_PROGRAM_MAP(interact_mem)
MCFG_CPU_PERIODIC_INT(irq0_line_hold,50) /* put on the I8080 irq in Hz*/ MCFG_CPU_PERIODIC_INT_DRIVER(interact_state, irq0_line_hold, 50) /* put on the I8080 irq in Hz*/
MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact)
MCFG_MACHINE_START_OVERRIDE(interact_state,interact) MCFG_MACHINE_START_OVERRIDE(interact_state,interact)

View File

@ -801,17 +801,17 @@ static TIMER_CALLBACK(intv_interrupt2_complete)
machine.device("keyboard")->execute().set_input_line(0, CLEAR_LINE); machine.device("keyboard")->execute().set_input_line(0, CLEAR_LINE);
} }
static INTERRUPT_GEN( intv_interrupt2 ) INTERRUPT_GEN_MEMBER(intv_state::intv_interrupt2)
{ {
device->machine().device("keyboard")->execute().set_input_line(0, ASSERT_LINE); machine().device("keyboard")->execute().set_input_line(0, ASSERT_LINE);
device->machine().scheduler().timer_set(device->machine().device<cpu_device>("keyboard")->cycles_to_attotime(100), FUNC(intv_interrupt2_complete)); machine().scheduler().timer_set(machine().device<cpu_device>("keyboard")->cycles_to_attotime(100), FUNC(intv_interrupt2_complete));
} }
static MACHINE_CONFIG_START( intv, intv_state ) static MACHINE_CONFIG_START( intv, intv_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", CP1610, XTAL_3_579545MHz/4) /* Colorburst/4 */ MCFG_CPU_ADD("maincpu", CP1610, XTAL_3_579545MHz/4) /* Colorburst/4 */
MCFG_CPU_PROGRAM_MAP(intv_mem) MCFG_CPU_PROGRAM_MAP(intv_mem)
MCFG_CPU_VBLANK_INT("screen", intv_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
@ -874,7 +874,7 @@ static MACHINE_CONFIG_DERIVED( intvkbd, intv )
MCFG_CPU_ADD("keyboard", M6502, XTAL_3_579545MHz/2) /* Colorburst/2 */ MCFG_CPU_ADD("keyboard", M6502, XTAL_3_579545MHz/2) /* Colorburst/2 */
MCFG_CPU_PROGRAM_MAP(intvkbd2_mem) MCFG_CPU_PROGRAM_MAP(intvkbd2_mem)
MCFG_CPU_VBLANK_INT("screen", intv_interrupt2) MCFG_CPU_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt2)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_QUANTUM_TIME(attotime::from_hz(6000))

View File

@ -131,6 +131,7 @@ public:
DECLARE_DRIVER_INIT(ip225015); DECLARE_DRIVER_INIT(ip225015);
virtual void machine_start(); virtual void machine_start();
virtual void machine_reset(); virtual void machine_reset();
INTERRUPT_GEN_MEMBER(ip22_vbl);
}; };
@ -1609,14 +1610,13 @@ static void rtc_update(ip22_state *state)
} }
} }
static INTERRUPT_GEN( ip22_vbl ) INTERRUPT_GEN_MEMBER(ip22_state::ip22_vbl)
{ {
ip22_state *state = device->machine().driver_data<ip22_state>(); m_nIntCounter++;
state->m_nIntCounter++; // if( m_nIntCounter == 60 )
// if( state->m_nIntCounter == 60 )
{ {
state->m_nIntCounter = 0; m_nIntCounter = 0;
rtc_update(state); rtc_update(this);
} }
} }
@ -1635,7 +1635,7 @@ static MACHINE_CONFIG_START( ip225015, ip22_state )
MCFG_CPU_ADD( "maincpu", R5000BE, 50000000*3 ) MCFG_CPU_ADD( "maincpu", R5000BE, 50000000*3 )
MCFG_CPU_CONFIG( config ) MCFG_CPU_CONFIG( config )
MCFG_CPU_PROGRAM_MAP( ip225015_map) MCFG_CPU_PROGRAM_MAP( ip225015_map)
MCFG_CPU_VBLANK_INT("screen", ip22_vbl) MCFG_CPU_VBLANK_INT_DRIVER("screen", ip22_state, ip22_vbl)
MCFG_NVRAM_ADD_0FILL("nvram") MCFG_NVRAM_ADD_0FILL("nvram")
@ -1676,14 +1676,14 @@ static MACHINE_CONFIG_DERIVED( ip224613, ip225015 )
MCFG_CPU_REPLACE( "maincpu", R4600BE, 133333333 ) MCFG_CPU_REPLACE( "maincpu", R4600BE, 133333333 )
MCFG_CPU_CONFIG( config ) MCFG_CPU_CONFIG( config )
MCFG_CPU_PROGRAM_MAP( ip225015_map) MCFG_CPU_PROGRAM_MAP( ip225015_map)
MCFG_CPU_VBLANK_INT("screen", ip22_vbl) MCFG_CPU_VBLANK_INT_DRIVER("screen", ip22_state, ip22_vbl)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ip244415, ip225015 ) static MACHINE_CONFIG_DERIVED( ip244415, ip225015 )
MCFG_CPU_REPLACE( "maincpu", R4600BE, 150000000 ) MCFG_CPU_REPLACE( "maincpu", R4600BE, 150000000 )
MCFG_CPU_CONFIG( config ) MCFG_CPU_CONFIG( config )
MCFG_CPU_PROGRAM_MAP( ip225015_map) MCFG_CPU_PROGRAM_MAP( ip225015_map)
MCFG_CPU_VBLANK_INT("screen", ip22_vbl) MCFG_CPU_VBLANK_INT_DRIVER("screen", ip22_state, ip22_vbl)
MACHINE_CONFIG_END MACHINE_CONFIG_END
ROM_START( ip225015 ) ROM_START( ip225015 )

View File

@ -95,6 +95,7 @@ public:
UINT8 m_cassette_data; UINT8 m_cassette_data;
iq151cart_slot_device * m_carts[5]; iq151cart_slot_device * m_carts[5];
DECLARE_DRIVER_INIT(iq151); DECLARE_DRIVER_INIT(iq151);
INTERRUPT_GEN_MEMBER(iq151_vblank_interrupt);
}; };
READ8_MEMBER(iq151_state::keyboard_row_r) READ8_MEMBER(iq151_state::keyboard_row_r)
@ -319,12 +320,11 @@ WRITE_LINE_MEMBER( iq151_state::pic_set_int_line )
m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE); m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
} }
static INTERRUPT_GEN( iq151_vblank_interrupt ) INTERRUPT_GEN_MEMBER(iq151_state::iq151_vblank_interrupt)
{ {
iq151_state *state = device->machine().driver_data<iq151_state>();
pic8259_ir6_w(state->m_pic, state->m_vblank_irq_state & 1); pic8259_ir6_w(m_pic, m_vblank_irq_state & 1);
state->m_vblank_irq_state ^= 1; m_vblank_irq_state ^= 1;
} }
static IRQ_CALLBACK(iq151_irq_callback) static IRQ_CALLBACK(iq151_irq_callback)
@ -435,7 +435,7 @@ static MACHINE_CONFIG_START( iq151, iq151_state )
MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz) MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz)
MCFG_CPU_PROGRAM_MAP(iq151_mem) MCFG_CPU_PROGRAM_MAP(iq151_mem)
MCFG_CPU_IO_MAP(iq151_io) MCFG_CPU_IO_MAP(iq151_io)
MCFG_CPU_VBLANK_INT("screen", iq151_vblank_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", iq151_state, iq151_vblank_interrupt)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_2_5MHz) MCFG_CPU_ADD("maincpu", Z80, XTAL_2_5MHz)
MCFG_CPU_PROGRAM_MAP(kaypro_map) MCFG_CPU_PROGRAM_MAP(kaypro_map)
MCFG_CPU_IO_MAP(kayproii_io) MCFG_CPU_IO_MAP(kayproii_io)
MCFG_CPU_VBLANK_INT("screen", kay_kbd_interrupt) /* this doesn't actually exist, it is to run the keyboard */ MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt) /* this doesn't actually exist, it is to run the keyboard */
MCFG_CPU_CONFIG(kayproii_daisy_chain) MCFG_CPU_CONFIG(kayproii_daisy_chain)
MCFG_MACHINE_START_OVERRIDE(kaypro_state, kayproii ) MCFG_MACHINE_START_OVERRIDE(kaypro_state, kayproii )
@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(kaypro_map) MCFG_CPU_PROGRAM_MAP(kaypro_map)
MCFG_CPU_IO_MAP(kaypro2x_io) MCFG_CPU_IO_MAP(kaypro2x_io)
MCFG_CPU_VBLANK_INT("screen", kay_kbd_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)
MCFG_CPU_CONFIG(kaypro2x_daisy_chain) MCFG_CPU_CONFIG(kaypro2x_daisy_chain)
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro2x ) MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro2x )

View File

@ -135,7 +135,7 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 5093760) /* 20.37504 MHz / 4 */ MCFG_CPU_ADD("maincpu", M68000, 5093760) /* 20.37504 MHz / 4 */
MCFG_CPU_PROGRAM_MAP(lisa_map) MCFG_CPU_PROGRAM_MAP(lisa_map)
MCFG_CPU_VBLANK_INT("screen", lisa_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", lisa_state, lisa_interrupt)
MCFG_CPU_ADD(COP421_TAG, COP421, 3900000) MCFG_CPU_ADD(COP421_TAG, COP421, 3900000)
MCFG_CPU_IO_MAP(lisa_cop_io_map) MCFG_CPU_IO_MAP(lisa_cop_io_map)

View File

@ -78,18 +78,17 @@
// CA2: SCSI interrupt = 0x01 // CA2: SCSI interrupt = 0x01
// CB1: ASC interrupt = 0x10 // CB1: ASC interrupt = 0x10
static INTERRUPT_GEN( mac_rbv_vbl ) INTERRUPT_GEN_MEMBER(mac_state::mac_rbv_vbl)
{ {
mac_state *mac = device->machine().driver_data<mac_state>();
mac->m_rbv_regs[2] &= ~0x40; // set vblank signal m_rbv_regs[2] &= ~0x40; // set vblank signal
mac->m_rbv_vbltime = 10; m_rbv_vbltime = 10;
// printf("RBV: raising VBL!\n"); // printf("RBV: raising VBL!\n");
if (mac->m_rbv_regs[0x12] & 0x40) if (m_rbv_regs[0x12] & 0x40)
{ {
mac->rbv_recalc_irqs(); rbv_recalc_irqs();
} }
} }
@ -1110,7 +1109,7 @@ static MACHINE_CONFIG_DERIVED( maclc, macii )
MCFG_CPU_REPLACE("maincpu", M68020HMMU, C15M) MCFG_CPU_REPLACE("maincpu", M68020HMMU, C15M)
MCFG_CPU_PROGRAM_MAP(maclc_map) MCFG_CPU_PROGRAM_MAP(maclc_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_LENGTH(256)
@ -1147,7 +1146,7 @@ static MACHINE_CONFIG_DERIVED( maclc2, maclc )
MCFG_CPU_REPLACE("maincpu", M68030, C15M) MCFG_CPU_REPLACE("maincpu", M68030, C15M)
MCFG_CPU_PROGRAM_MAP(maclc_map) MCFG_CPU_PROGRAM_MAP(maclc_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("4M") MCFG_RAM_DEFAULT_SIZE("4M")
@ -1164,7 +1163,7 @@ static MACHINE_CONFIG_DERIVED( maclc3, maclc )
MCFG_CPU_REPLACE("maincpu", M68030, 25000000) MCFG_CPU_REPLACE("maincpu", M68030, 25000000)
MCFG_CPU_PROGRAM_MAP(maclc3_map) MCFG_CPU_PROGRAM_MAP(maclc3_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_VIDEO_START_OVERRIDE(mac_state,macsonora) MCFG_VIDEO_START_OVERRIDE(mac_state,macsonora)
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macsonora) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macsonora)
@ -1193,7 +1192,7 @@ static MACHINE_CONFIG_DERIVED( maciivx, maclc )
MCFG_CPU_REPLACE("maincpu", M68030, C32M) MCFG_CPU_REPLACE("maincpu", M68030, C32M)
MCFG_CPU_PROGRAM_MAP(maclc3_map) MCFG_CPU_PROGRAM_MAP(maclc3_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_VIDEO_START_OVERRIDE(mac_state,macv8) MCFG_VIDEO_START_OVERRIDE(mac_state,macv8)
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
@ -1217,7 +1216,7 @@ static MACHINE_CONFIG_DERIVED( maciivi, maclc )
MCFG_CPU_REPLACE("maincpu", M68030, C15M) MCFG_CPU_REPLACE("maincpu", M68030, C15M)
MCFG_CPU_PROGRAM_MAP(maclc3_map) MCFG_CPU_PROGRAM_MAP(maclc3_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_VIDEO_START_OVERRIDE(mac_state,macv8) MCFG_VIDEO_START_OVERRIDE(mac_state,macv8)
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
@ -1486,7 +1485,7 @@ static MACHINE_CONFIG_DERIVED( maciici, macii )
MCFG_CPU_REPLACE("maincpu", M68030, 25000000) MCFG_CPU_REPLACE("maincpu", M68030, 25000000)
MCFG_CPU_PROGRAM_MAP(maciici_map) MCFG_CPU_PROGRAM_MAP(maciici_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_LENGTH(256)
@ -1515,7 +1514,7 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii )
MCFG_CPU_REPLACE("maincpu", M68030, 20000000) MCFG_CPU_REPLACE("maincpu", M68030, 20000000)
MCFG_CPU_PROGRAM_MAP(maciici_map) MCFG_CPU_PROGRAM_MAP(maciici_map)
MCFG_CPU_VBLANK_INT(MAC_SCREEN_NAME, mac_rbv_vbl) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl)
MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_LENGTH(256)

View File

@ -712,7 +712,7 @@ static MACHINE_CONFIG_START( mbeeic, mbee_state )
MCFG_CPU_PROGRAM_MAP(mbeeic_mem) MCFG_CPU_PROGRAM_MAP(mbeeic_mem)
MCFG_CPU_IO_MAP(mbeeic_io) MCFG_CPU_IO_MAP(mbeeic_io)
MCFG_CPU_CONFIG(mbee_daisy_chain) MCFG_CPU_CONFIG(mbee_daisy_chain)
//MCFG_CPU_VBLANK_INT("screen", mbee_interrupt) //MCFG_CPU_VBLANK_INT_DRIVER("screen", mbee_state, mbee_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee ) MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee )

View File

@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 750000) // 750 kHz MCFG_CPU_ADD("maincpu", M6502, 750000) // 750 kHz
MCFG_CPU_PROGRAM_MAP(microtan_map) MCFG_CPU_PROGRAM_MAP(microtan_map)
MCFG_CPU_VBLANK_INT("screen", microtan_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", microtan_state, microtan_interrupt)
/* video hardware - include overscan */ /* video hardware - include overscan */

View File

@ -1069,7 +1069,7 @@ static MACHINE_CONFIG_START( msx, msx_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) /* 3.579545 MHz */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(msx_memory_map) MCFG_CPU_PROGRAM_MAP(msx_memory_map)
MCFG_CPU_IO_MAP(msx_io_map) MCFG_CPU_IO_MAP(msx_io_map)
MCFG_CPU_VBLANK_INT("screen", msx_interrupt) /* Needed for mouse updates */ MCFG_CPU_VBLANK_INT_DRIVER("screen", msx_state, msx_interrupt) /* Needed for mouse updates */
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_START_OVERRIDE(msx_state, msx ) MCFG_MACHINE_START_OVERRIDE(msx_state, msx )

View File

@ -164,6 +164,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(mz2500_vbl);
}; };
@ -1821,13 +1822,12 @@ static GFXDECODE_START( mz2500 )
GFXDECODE_ENTRY("pcg", 0, mz2500_pcg_layout_3bpp, 0, 4) GFXDECODE_ENTRY("pcg", 0, mz2500_pcg_layout_3bpp, 0, 4)
GFXDECODE_END GFXDECODE_END
static INTERRUPT_GEN( mz2500_vbl ) INTERRUPT_GEN_MEMBER(mz2500_state::mz2500_vbl)
{ {
mz2500_state *state = device->machine().driver_data<mz2500_state>(); if(m_irq_mask[0])
if(state->m_irq_mask[0]) device.execute().set_input_line_and_vector(0, HOLD_LINE, m_irq_vector[0]);
device->execute().set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[0]);
state->m_cg_clear_flag = 0; m_cg_clear_flag = 0;
} }
static READ8_DEVICE_HANDLER( mz2500_porta_r ) static READ8_DEVICE_HANDLER( mz2500_porta_r )
@ -2097,7 +2097,7 @@ static MACHINE_CONFIG_START( mz2500, mz2500_state )
MCFG_CPU_ADD("maincpu", Z80, 6000000) MCFG_CPU_ADD("maincpu", Z80, 6000000)
MCFG_CPU_PROGRAM_MAP(mz2500_map) MCFG_CPU_PROGRAM_MAP(mz2500_map)
MCFG_CPU_IO_MAP(mz2500_io) MCFG_CPU_IO_MAP(mz2500_io)
MCFG_CPU_VBLANK_INT("screen", mz2500_vbl) MCFG_CPU_VBLANK_INT_DRIVER("screen", mz2500_state, mz2500_vbl)
MCFG_I8255_ADD( "i8255_0", ppi8255_intf ) MCFG_I8255_ADD( "i8255_0", ppi8255_intf )

View File

@ -1329,14 +1329,13 @@ void newbrain_state::machine_reset()
timer_set(attotime::from_usec(get_reset_t()), TIMER_ID_RESET); timer_set(attotime::from_usec(get_reset_t()), TIMER_ID_RESET);
} }
static INTERRUPT_GEN( newbrain_interrupt ) INTERRUPT_GEN_MEMBER(newbrain_state::newbrain_interrupt)
{ {
newbrain_state *state = device->machine().driver_data<newbrain_state>();
if (!(state->m_enrg1 & NEWBRAIN_ENRG1_CLK)) if (!(m_enrg1 & NEWBRAIN_ENRG1_CLK))
{ {
state->m_clkint = 0; m_clkint = 0;
state->check_interrupt(); check_interrupt();
} }
} }
@ -1381,7 +1380,7 @@ static MACHINE_CONFIG_START( newbrain_a, newbrain_state )
MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/8) MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/8)
MCFG_CPU_PROGRAM_MAP(newbrain_map) MCFG_CPU_PROGRAM_MAP(newbrain_map)
MCFG_CPU_IO_MAP(newbrain_a_io_map) MCFG_CPU_IO_MAP(newbrain_a_io_map)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, newbrain_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, newbrain_state, newbrain_interrupt)
MCFG_CPU_ADD(COP420_TAG, COP420, XTAL_16MHz/8) // COP420-GUW/N MCFG_CPU_ADD(COP420_TAG, COP420, XTAL_16MHz/8) // COP420-GUW/N
MCFG_CPU_IO_MAP(newbrain_cop_io_map) MCFG_CPU_IO_MAP(newbrain_cop_io_map)

View File

@ -105,9 +105,9 @@ static INPUT_PORTS_START( ondra )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NMI") PORT_CODE(KEYCODE_ESC) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NMI") PORT_CODE(KEYCODE_ESC)
INPUT_PORTS_END INPUT_PORTS_END
static INTERRUPT_GEN( ondra_interrupt ) INTERRUPT_GEN_MEMBER(ondra_state::ondra_interrupt)
{ {
device->execute().set_input_line(0, HOLD_LINE); device.execute().set_input_line(0, HOLD_LINE);
} }
static const cassette_interface ondra_cassette_interface = static const cassette_interface ondra_cassette_interface =
@ -125,7 +125,7 @@ static MACHINE_CONFIG_START( ondra, ondra_state )
MCFG_CPU_ADD("maincpu", Z80, 2000000) MCFG_CPU_ADD("maincpu", Z80, 2000000)
MCFG_CPU_PROGRAM_MAP(ondra_mem) MCFG_CPU_PROGRAM_MAP(ondra_mem)
MCFG_CPU_IO_MAP(ondra_io) MCFG_CPU_IO_MAP(ondra_io)
MCFG_CPU_VBLANK_INT("screen", ondra_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", ondra_state, ondra_interrupt)
/* video hardware */ /* video hardware */

View File

@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( orionz80, orion_state )
MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_ADD("maincpu", Z80, 2500000)
MCFG_CPU_PROGRAM_MAP(orionz80_mem) MCFG_CPU_PROGRAM_MAP(orionz80_mem)
MCFG_CPU_IO_MAP(orionz80_io) MCFG_CPU_IO_MAP(orionz80_io)
MCFG_CPU_VBLANK_INT("screen",orionz80_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", orion_state, orionz80_interrupt)
MCFG_MACHINE_START_OVERRIDE(orion_state, orionz80 ) MCFG_MACHINE_START_OVERRIDE(orion_state, orionz80 )
MCFG_MACHINE_RESET_OVERRIDE(orion_state, orionz80 ) MCFG_MACHINE_RESET_OVERRIDE(orion_state, orionz80 )

View File

@ -202,9 +202,9 @@ static INPUT_PORTS_START (p2000t)
INPUT_PORTS_END INPUT_PORTS_END
static INTERRUPT_GEN( p2000_interrupt ) INTERRUPT_GEN_MEMBER(p2000t_state::p2000_interrupt)
{ {
device->machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE);
} }
READ8_MEMBER( p2000t_state::videoram_r ) READ8_MEMBER( p2000t_state::videoram_r )
@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( p2000t, p2000t_state )
MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_ADD("maincpu", Z80, 2500000)
MCFG_CPU_PROGRAM_MAP(p2000t_mem) MCFG_CPU_PROGRAM_MAP(p2000t_mem)
MCFG_CPU_IO_MAP(p2000t_io) MCFG_CPU_IO_MAP(p2000t_io)
MCFG_CPU_VBLANK_INT("screen", p2000_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
@ -249,7 +249,7 @@ static MACHINE_CONFIG_START( p2000m, p2000t_state )
MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_ADD("maincpu", Z80, 2500000)
MCFG_CPU_PROGRAM_MAP(p2000m_mem) MCFG_CPU_PROGRAM_MAP(p2000m_mem)
MCFG_CPU_IO_MAP(p2000t_io) MCFG_CPU_IO_MAP(p2000t_io)
MCFG_CPU_VBLANK_INT("screen", p2000_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* video hardware */ /* video hardware */

View File

@ -70,6 +70,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pasogo_interrupt);
}; };
@ -449,7 +450,7 @@ UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind16 &b
return 0; return 0;
} }
static INTERRUPT_GEN( pasogo_interrupt ) INTERRUPT_GEN_MEMBER(pasogo_state::pasogo_interrupt)
{ {
// machine.device("maincpu")->execute().set_input_line(UPD7810_INTFE1, PULSE_LINE); // machine.device("maincpu")->execute().set_input_line(UPD7810_INTFE1, PULSE_LINE);
} }
@ -504,7 +505,7 @@ static MACHINE_CONFIG_START( pasogo, pasogo_state )
MCFG_CPU_ADD("maincpu", I80188/*V30HL in vadem vg230*/, 10000000/*?*/) MCFG_CPU_ADD("maincpu", I80188/*V30HL in vadem vg230*/, 10000000/*?*/)
MCFG_CPU_PROGRAM_MAP(pasogo_mem) MCFG_CPU_PROGRAM_MAP(pasogo_mem)
MCFG_CPU_IO_MAP( pasogo_io) MCFG_CPU_IO_MAP( pasogo_io)
MCFG_CPU_VBLANK_INT("screen", pasogo_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pasogo_state, pasogo_interrupt)
// MCFG_CPU_CONFIG(i86_address_mask) // MCFG_CPU_CONFIG(i86_address_mask)
MCFG_PIT8254_ADD( "pit8254", pc_pit8254_config ) MCFG_PIT8254_ADD( "pit8254", pc_pit8254_config )

View File

@ -64,6 +64,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pc100_vblank_irq);
}; };
void pc100_state::video_start() void pc100_state::video_start()
@ -342,9 +343,9 @@ void pc100_state::machine_reset()
{ {
} }
static INTERRUPT_GEN(pc100_vblank_irq) INTERRUPT_GEN_MEMBER(pc100_state::pc100_vblank_irq)
{ {
pic8259_ir4_w(device->machine().device("pic8259"), 1); pic8259_ir4_w(machine().device("pic8259"), 1);
} }
static TIMER_DEVICE_CALLBACK( pc100_600hz_irq ) static TIMER_DEVICE_CALLBACK( pc100_600hz_irq )
@ -386,7 +387,7 @@ static MACHINE_CONFIG_START( pc100, pc100_state )
MCFG_CPU_ADD("maincpu", I8086, MASTER_CLOCK) MCFG_CPU_ADD("maincpu", I8086, MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(pc100_map) MCFG_CPU_PROGRAM_MAP(pc100_map)
MCFG_CPU_IO_MAP(pc100_io) MCFG_CPU_IO_MAP(pc100_io)
MCFG_CPU_VBLANK_INT("screen",pc100_vblank_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc100_state, pc100_vblank_irq)
/* video hardware */ /* video hardware */

View File

@ -329,7 +329,7 @@ static MACHINE_CONFIG_START( pc2000, pc2000_state )
MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) /* probably not accurate */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) /* probably not accurate */
MCFG_CPU_PROGRAM_MAP(pc2000_mem) MCFG_CPU_PROGRAM_MAP(pc2000_mem)
MCFG_CPU_IO_MAP(pc2000_io) MCFG_CPU_IO_MAP(pc2000_io)
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc2000_state, irq0_line_hold)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_ADD("screen", LCD)

View File

@ -233,6 +233,8 @@ public:
UINT32 screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pc6001_interrupt);
INTERRUPT_GEN_MEMBER(pc6001sr_interrupt);
}; };
@ -1846,24 +1848,22 @@ INPUT_PORTS_END
static UINT8 check_joy_press(running_machine &machine); static UINT8 check_joy_press(running_machine &machine);
static INTERRUPT_GEN( pc6001_interrupt ) INTERRUPT_GEN_MEMBER(pc6001_state::pc6001_interrupt)
{ {
pc6001_state *state = device->machine().driver_data<pc6001_state>(); m_cur_keycode = check_joy_press(machine());
state->m_cur_keycode = check_joy_press(device->machine());
if(IRQ_LOG) printf("Stick IRQ called 0x16\n"); if(IRQ_LOG) printf("Stick IRQ called 0x16\n");
state->m_irq_vector = 0x16; m_irq_vector = 0x16;
device->execute().set_input_line(0, ASSERT_LINE); device.execute().set_input_line(0, ASSERT_LINE);
} }
static INTERRUPT_GEN( pc6001sr_interrupt ) INTERRUPT_GEN_MEMBER(pc6001_state::pc6001sr_interrupt)
{ {
pc6001_state *state = device->machine().driver_data<pc6001_state>(); m_kludge^= 1;
state->m_kludge^= 1;
state->m_cur_keycode = check_joy_press(device->machine()); m_cur_keycode = check_joy_press(machine());
if(IRQ_LOG) printf("VRTC IRQ called 0x16\n"); if(IRQ_LOG) printf("VRTC IRQ called 0x16\n");
state->m_irq_vector = (state->m_kludge) ? 0x22 : 0x16; m_irq_vector = (m_kludge) ? 0x22 : 0x16;
device->execute().set_input_line(0, ASSERT_LINE); device.execute().set_input_line(0, ASSERT_LINE);
} }
static IRQ_CALLBACK ( pc6001_irq_callback ) static IRQ_CALLBACK ( pc6001_irq_callback )
@ -2326,7 +2326,7 @@ static MACHINE_CONFIG_START( pc6001, pc6001_state )
MCFG_CPU_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // ~4 Mhz MCFG_CPU_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // ~4 Mhz
MCFG_CPU_PROGRAM_MAP(pc6001_map) MCFG_CPU_PROGRAM_MAP(pc6001_map)
MCFG_CPU_IO_MAP(pc6001_io) MCFG_CPU_IO_MAP(pc6001_io)
MCFG_CPU_VBLANK_INT("screen", pc6001_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc6001_state, pc6001_interrupt)
// MCFG_CPU_ADD("subcpu", I8049, 7987200) // MCFG_CPU_ADD("subcpu", I8049, 7987200)
@ -2398,7 +2398,7 @@ static MACHINE_CONFIG_DERIVED( pc6601, pc6001m2 )
MCFG_CPU_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2) MCFG_CPU_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2)
MCFG_CPU_PROGRAM_MAP(pc6001m2_map) MCFG_CPU_PROGRAM_MAP(pc6001m2_map)
MCFG_CPU_IO_MAP(pc6601_io) MCFG_CPU_IO_MAP(pc6601_io)
MCFG_CPU_VBLANK_INT("screen", pc6001_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc6001_state, pc6001_interrupt)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pc6001sr, pc6001m2 ) static MACHINE_CONFIG_DERIVED( pc6001sr, pc6001m2 )
@ -2412,7 +2412,7 @@ static MACHINE_CONFIG_DERIVED( pc6001sr, pc6001m2 )
MCFG_CPU_REPLACE("maincpu", Z80, XTAL_3_579545MHz) //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models MCFG_CPU_REPLACE("maincpu", Z80, XTAL_3_579545MHz) //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models
MCFG_CPU_PROGRAM_MAP(pc6001sr_map) MCFG_CPU_PROGRAM_MAP(pc6001sr_map)
MCFG_CPU_IO_MAP(pc6001sr_io) MCFG_CPU_IO_MAP(pc6001sr_io)
MCFG_CPU_VBLANK_INT("screen", pc6001sr_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc6001_state, pc6001sr_interrupt)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -451,6 +451,7 @@ public:
DECLARE_MACHINE_RESET(pc8801_clock_speed); DECLARE_MACHINE_RESET(pc8801_clock_speed);
DECLARE_MACHINE_RESET(pc8801_dic); DECLARE_MACHINE_RESET(pc8801_dic);
DECLARE_MACHINE_RESET(pc8801_cdrom); DECLARE_MACHINE_RESET(pc8801_cdrom);
INTERRUPT_GEN_MEMBER(pc8801_vrtc_irq);
}; };
@ -2344,11 +2345,10 @@ static TIMER_DEVICE_CALLBACK( pc8801_rtc_irq )
pc8801_raise_irq(timer.machine(),1<<(2),1); pc8801_raise_irq(timer.machine(),1<<(2),1);
} }
static INTERRUPT_GEN( pc8801_vrtc_irq ) INTERRUPT_GEN_MEMBER(pc8801_state::pc8801_vrtc_irq)
{ {
pc8801_state *state = device->machine().driver_data<pc8801_state>(); if(m_vblank_irq_mask)
if(state->m_vblank_irq_mask) pc8801_raise_irq(machine(),1<<(1),1);
pc8801_raise_irq(device->machine(),1<<(1),1);
} }
#else #else
@ -2411,14 +2411,13 @@ static TIMER_DEVICE_CALLBACK( pc8801_rtc_irq )
} }
} }
static INTERRUPT_GEN( pc8801_vrtc_irq ) INTERRUPT_GEN_MEMBER(pc8801_state::pc8801_vrtc_irq)
{ {
pc8801_state *state = device->machine().driver_data<pc8801_state>(); if(m_vrtc_irq_mask && m_i8214_irq_level >= 2)
if(state->m_vrtc_irq_mask && state->m_i8214_irq_level >= 2)
{ {
state->m_vrtc_irq_latch = 1; m_vrtc_irq_latch = 1;
//IRQ_LOG(("vrtc\n")); //IRQ_LOG(("vrtc\n"));
device->execute().set_input_line(0,HOLD_LINE); device.execute().set_input_line(0,HOLD_LINE);
} }
} }
#endif #endif
@ -2663,7 +2662,7 @@ static MACHINE_CONFIG_START( pc8801, pc8801_state )
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(pc8801_mem) MCFG_CPU_PROGRAM_MAP(pc8801_mem)
MCFG_CPU_IO_MAP(pc8801_io) MCFG_CPU_IO_MAP(pc8801_io)
MCFG_CPU_VBLANK_INT("screen", pc8801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq)
/* sub CPU(5 inch floppy drive) */ /* sub CPU(5 inch floppy drive) */
MCFG_CPU_ADD("fdccpu", Z80, MASTER_CLOCK) /* 4 MHz */ MCFG_CPU_ADD("fdccpu", Z80, MASTER_CLOCK) /* 4 MHz */

View File

@ -102,6 +102,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pc88va_vrtc_irq);
}; };
@ -1562,9 +1563,9 @@ void pc88va_state::machine_reset()
machine().device("fdccpu")->execute().set_input_line_vector(0, 0); machine().device("fdccpu")->execute().set_input_line_vector(0, 0);
} }
static INTERRUPT_GEN( pc88va_vrtc_irq ) INTERRUPT_GEN_MEMBER(pc88va_state::pc88va_vrtc_irq)
{ {
pic8259_ir2_w(device->machine().device("pic8259_master"), 1); pic8259_ir2_w(machine().device("pic8259_master"), 1);
} }
/* Not sure if parameters are correct for pc88va (copied from x68k) */ /* Not sure if parameters are correct for pc88va (copied from x68k) */
@ -1657,7 +1658,7 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state )
MCFG_CPU_ADD("maincpu", V30, 8000000) /* 8 MHz */ MCFG_CPU_ADD("maincpu", V30, 8000000) /* 8 MHz */
MCFG_CPU_PROGRAM_MAP(pc88va_map) MCFG_CPU_PROGRAM_MAP(pc88va_map)
MCFG_CPU_IO_MAP(pc88va_io_map) MCFG_CPU_IO_MAP(pc88va_io_map)
MCFG_CPU_VBLANK_INT("screen",pc88va_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc88va_state, pc88va_vrtc_irq)
MCFG_CPU_ADD("fdccpu", Z80, 8000000) /* 8 MHz */ MCFG_CPU_ADD("fdccpu", Z80, 8000000) /* 8 MHz */
MCFG_CPU_PROGRAM_MAP(pc88va_z80_map) MCFG_CPU_PROGRAM_MAP(pc88va_z80_map)

View File

@ -415,6 +415,7 @@ public:
DECLARE_PALETTE_INIT(pc9801); DECLARE_PALETTE_INIT(pc9801);
DECLARE_MACHINE_RESET(pc9801rs); DECLARE_MACHINE_RESET(pc9801rs);
DECLARE_MACHINE_START(pc9821); DECLARE_MACHINE_START(pc9821);
INTERRUPT_GEN_MEMBER(pc9801_vrtc_irq);
}; };
@ -2607,14 +2608,13 @@ MACHINE_START_MEMBER(pc9801_state,pc9821)
state_save_register_global_pointer(machine(), m_sdip, 24); state_save_register_global_pointer(machine(), m_sdip, 24);
} }
static INTERRUPT_GEN(pc9801_vrtc_irq) INTERRUPT_GEN_MEMBER(pc9801_state::pc9801_vrtc_irq)
{ {
pc9801_state *state = device->machine().driver_data<pc9801_state>();
#if 0 #if 0
address_space &space = *device->machine().device("maincpu")->memory().space(AS_PROGRAM); address_space &space = *machine().device("maincpu")->memory().space(AS_PROGRAM);
static UINT8 test; static UINT8 test;
if(device->machine().input().code_pressed_once(JOYCODE_BUTTON1)) if(machine().input().code_pressed_once(JOYCODE_BUTTON1))
test^=1; test^=1;
if(test) if(test)
@ -2624,13 +2624,13 @@ static INTERRUPT_GEN(pc9801_vrtc_irq)
} }
#endif #endif
if(state->m_vrtc_irq_mask) if(m_vrtc_irq_mask)
{ {
pic8259_ir2_w(device->machine().device("pic8259_master"), 1); pic8259_ir2_w(machine().device("pic8259_master"), 1);
state->m_vrtc_irq_mask = 0; // TODO: this irq auto-masks? m_vrtc_irq_mask = 0; // TODO: this irq auto-masks?
} }
else else
pic8259_ir2_w(device->machine().device("pic8259_master"), 0); pic8259_ir2_w(machine().device("pic8259_master"), 0);
} }
@ -2639,7 +2639,7 @@ static MACHINE_CONFIG_START( pc9801, pc9801_state )
MCFG_CPU_ADD("maincpu", I8086, 5000000) //unknown clock MCFG_CPU_ADD("maincpu", I8086, 5000000) //unknown clock
MCFG_CPU_PROGRAM_MAP(pc9801_map) MCFG_CPU_PROGRAM_MAP(pc9801_map)
MCFG_CPU_IO_MAP(pc9801_io) MCFG_CPU_IO_MAP(pc9801_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801) MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801)
MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801f) MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801f)
@ -2694,7 +2694,7 @@ static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801 )
MCFG_CPU_REPLACE("maincpu",V30,10000000) MCFG_CPU_REPLACE("maincpu",V30,10000000)
MCFG_CPU_PROGRAM_MAP(pc9801_map) MCFG_CPU_PROGRAM_MAP(pc9801_map)
MCFG_CPU_IO_MAP(pc9801_io) MCFG_CPU_IO_MAP(pc9801_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MACHINE_CONFIG_END MACHINE_CONFIG_END
#endif #endif
@ -2702,7 +2702,7 @@ static MACHINE_CONFIG_START( pc9801rs, pc9801_state )
MCFG_CPU_ADD("maincpu", I386, 16000000) MCFG_CPU_ADD("maincpu", I386, 16000000)
MCFG_CPU_PROGRAM_MAP(pc9801rs_map) MCFG_CPU_PROGRAM_MAP(pc9801rs_map)
MCFG_CPU_IO_MAP(pc9801rs_io) MCFG_CPU_IO_MAP(pc9801rs_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801) MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801)
MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs) MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs)
@ -2755,14 +2755,14 @@ static MACHINE_CONFIG_DERIVED( pc9801ux, pc9801rs )
MCFG_CPU_CONFIG(i286_address_mask) MCFG_CPU_CONFIG(i286_address_mask)
MCFG_CPU_PROGRAM_MAP(pc9801ux_map) MCFG_CPU_PROGRAM_MAP(pc9801ux_map)
MCFG_CPU_IO_MAP(pc9801ux_io) MCFG_CPU_IO_MAP(pc9801ux_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_START( pc9821, pc9801_state ) static MACHINE_CONFIG_START( pc9821, pc9801_state )
MCFG_CPU_ADD("maincpu", I486, 16000000) MCFG_CPU_ADD("maincpu", I486, 16000000)
MCFG_CPU_PROGRAM_MAP(pc9821_map) MCFG_CPU_PROGRAM_MAP(pc9821_map)
MCFG_CPU_IO_MAP(pc9821_io) MCFG_CPU_IO_MAP(pc9821_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9821) MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9821)
MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs) MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs)
@ -2812,7 +2812,7 @@ static MACHINE_CONFIG_DERIVED( pc9821v20, pc9821 )
MCFG_CPU_REPLACE("maincpu",PENTIUM,32000000) /* TODO: clock */ MCFG_CPU_REPLACE("maincpu",PENTIUM,32000000) /* TODO: clock */
MCFG_CPU_PROGRAM_MAP(pc9821_map) MCFG_CPU_PROGRAM_MAP(pc9821_map)
MCFG_CPU_IO_MAP(pc9821_io) MCFG_CPU_IO_MAP(pc9821_io)
MCFG_CPU_VBLANK_INT("screen",pc9801_vrtc_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, pc9801_vrtc_irq)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* /*

View File

@ -1801,10 +1801,8 @@ static void pdp1_lightpen(running_machine &machine)
/* /*
Not a real interrupt - just handle keyboard input Not a real interrupt - just handle keyboard input
*/ */
INTERRUPT_GEN( pdp1_interrupt ) INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
{ {
pdp1_state *state = device->machine().driver_data<pdp1_state>();
running_machine &machine = device->machine();
int control_keys; int control_keys;
int tw_keys; int tw_keys;
int ta_keys; int ta_keys;
@ -1814,80 +1812,80 @@ INTERRUPT_GEN( pdp1_interrupt )
int ta_transitions; int ta_transitions;
device->state().set_state_int(PDP1_SS, device->machine().root_device().ioport("SENSE")->read()); device.state().set_state_int(PDP1_SS, machine().root_device().ioport("SENSE")->read());
/* read new state of control keys */ /* read new state of control keys */
control_keys = state->ioport("CSW")->read(); control_keys = ioport("CSW")->read();
if (control_keys & pdp1_control) if (control_keys & pdp1_control)
{ {
/* compute transitions */ /* compute transitions */
control_transitions = control_keys & (~ state->m_old_control_keys); control_transitions = control_keys & (~ m_old_control_keys);
if (control_transitions & pdp1_extend) if (control_transitions & pdp1_extend)
{ {
device->state().set_state_int(PDP1_EXTEND_SW, ! device->state().state_int(PDP1_EXTEND_SW)); device.state().set_state_int(PDP1_EXTEND_SW, ! device.state().state_int(PDP1_EXTEND_SW));
} }
if (control_transitions & pdp1_start_nobrk) if (control_transitions & pdp1_start_nobrk)
{ {
pdp1_pulse_start_clear(device); /* pulse Start Clear line */ pdp1_pulse_start_clear(&device); /* pulse Start Clear line */
device->state().set_state_int(PDP1_EXD, device->state().state_int(PDP1_EXTEND_SW)); device.state().set_state_int(PDP1_EXD, device.state().state_int(PDP1_EXTEND_SW));
device->state().set_state_int(PDP1_SBM, (UINT64)0); device.state().set_state_int(PDP1_SBM, (UINT64)0);
device->state().set_state_int(PDP1_OV, (UINT64)0); device.state().set_state_int(PDP1_OV, (UINT64)0);
device->state().set_state_int(PDP1_PC, device->state().state_int(PDP1_TA)); device.state().set_state_int(PDP1_PC, device.state().state_int(PDP1_TA));
device->state().set_state_int(PDP1_RUN, 1); device.state().set_state_int(PDP1_RUN, 1);
} }
if (control_transitions & pdp1_start_brk) if (control_transitions & pdp1_start_brk)
{ {
pdp1_pulse_start_clear(device); /* pulse Start Clear line */ pdp1_pulse_start_clear(&device); /* pulse Start Clear line */
device->state().set_state_int(PDP1_EXD, device->state().state_int(PDP1_EXTEND_SW)); device.state().set_state_int(PDP1_EXD, device.state().state_int(PDP1_EXTEND_SW));
device->state().set_state_int(PDP1_SBM, 1); device.state().set_state_int(PDP1_SBM, 1);
device->state().set_state_int(PDP1_OV, (UINT64)0); device.state().set_state_int(PDP1_OV, (UINT64)0);
device->state().set_state_int(PDP1_PC, device->state().state_int(PDP1_TA)); device.state().set_state_int(PDP1_PC, device.state().state_int(PDP1_TA));
device->state().set_state_int(PDP1_RUN, 1); device.state().set_state_int(PDP1_RUN, 1);
} }
if (control_transitions & pdp1_stop) if (control_transitions & pdp1_stop)
{ {
device->state().set_state_int(PDP1_RUN, (UINT64)0); device.state().set_state_int(PDP1_RUN, (UINT64)0);
device->state().set_state_int(PDP1_RIM, (UINT64)0); /* bug : we stop after reading an even-numbered word device.state().set_state_int(PDP1_RIM, (UINT64)0); /* bug : we stop after reading an even-numbered word
(i.e. data), whereas a real pdp-1 stops after reading (i.e. data), whereas a real pdp-1 stops after reading
an odd-numbered word (i.e. dio instruciton) */ an odd-numbered word (i.e. dio instruciton) */
} }
if (control_transitions & pdp1_continue) if (control_transitions & pdp1_continue)
{ {
device->state().set_state_int(PDP1_RUN, 1); device.state().set_state_int(PDP1_RUN, 1);
} }
if (control_transitions & pdp1_examine) if (control_transitions & pdp1_examine)
{ {
pdp1_pulse_start_clear(device); /* pulse Start Clear line */ pdp1_pulse_start_clear(&device); /* pulse Start Clear line */
device->state().set_state_int(PDP1_PC, device->state().state_int(PDP1_TA)); device.state().set_state_int(PDP1_PC, device.state().state_int(PDP1_TA));
device->state().set_state_int(PDP1_MA, device->state().state_int(PDP1_PC)); device.state().set_state_int(PDP1_MA, device.state().state_int(PDP1_PC));
device->state().set_state_int(PDP1_IR, LAC); /* this instruction is actually executed */ device.state().set_state_int(PDP1_IR, LAC); /* this instruction is actually executed */
device->state().set_state_int(PDP1_MB, (signed)device->memory().space(AS_PROGRAM)->read_dword(PDP1_MA<<2)); device.state().set_state_int(PDP1_MB, (signed)device.memory().space(AS_PROGRAM)->read_dword(PDP1_MA<<2));
device->state().set_state_int(PDP1_AC, device->state().state_int(PDP1_MB)); device.state().set_state_int(PDP1_AC, device.state().state_int(PDP1_MB));
} }
if (control_transitions & pdp1_deposit) if (control_transitions & pdp1_deposit)
{ {
pdp1_pulse_start_clear(device); /* pulse Start Clear line */ pdp1_pulse_start_clear(&device); /* pulse Start Clear line */
device->state().set_state_int(PDP1_PC, device->state().state_int(PDP1_TA)); device.state().set_state_int(PDP1_PC, device.state().state_int(PDP1_TA));
device->state().set_state_int(PDP1_MA, device->state().state_int(PDP1_PC)); device.state().set_state_int(PDP1_MA, device.state().state_int(PDP1_PC));
device->state().set_state_int(PDP1_AC, device->state().state_int(PDP1_TW)); device.state().set_state_int(PDP1_AC, device.state().state_int(PDP1_TW));
device->state().set_state_int(PDP1_IR, DAC); /* this instruction is actually executed */ device.state().set_state_int(PDP1_IR, DAC); /* this instruction is actually executed */
device->state().set_state_int(PDP1_MB, device->state().state_int(PDP1_AC)); device.state().set_state_int(PDP1_MB, device.state().state_int(PDP1_AC));
device->memory().space(AS_PROGRAM)->write_dword(device->state().state_int(PDP1_MA)<<2, device->state().state_int(PDP1_MB)); device.memory().space(AS_PROGRAM)->write_dword(device.state().state_int(PDP1_MA)<<2, device.state().state_int(PDP1_MB));
} }
if (control_transitions & pdp1_read_in) if (control_transitions & pdp1_read_in)
{ /* set cpu to read instructions from perforated tape */ { /* set cpu to read instructions from perforated tape */
pdp1_pulse_start_clear(device); /* pulse Start Clear line */ pdp1_pulse_start_clear(&device); /* pulse Start Clear line */
device->state().set_state_int(PDP1_PC, ( device->state().state_int(PDP1_TA) & 0170000) device.state().set_state_int(PDP1_PC, ( device.state().state_int(PDP1_TA) & 0170000)
| (device->state().state_int(PDP1_PC) & 0007777)); /* transfer ETA to EPC */ | (device.state().state_int(PDP1_PC) & 0007777)); /* transfer ETA to EPC */
/*machine.device("maincpu")->state().set_state_int(PDP1_MA, machine.device("maincpu")->state().state_int(PDP1_PC));*/ /*machine.device("maincpu")->state().set_state_int(PDP1_MA, machine.device("maincpu")->state().state_int(PDP1_PC));*/
device->state().set_state_int(PDP1_EXD, device->state().state_int(PDP1_EXTEND_SW)); device.state().set_state_int(PDP1_EXD, device.state().state_int(PDP1_EXTEND_SW));
device->state().set_state_int(PDP1_OV, (UINT64)0); /* right??? */ device.state().set_state_int(PDP1_OV, (UINT64)0); /* right??? */
device->state().set_state_int(PDP1_RUN, (UINT64)0); device.state().set_state_int(PDP1_RUN, (UINT64)0);
device->state().set_state_int(PDP1_RIM, 1); device.state().set_state_int(PDP1_RIM, 1);
} }
if (control_transitions & pdp1_reader) if (control_transitions & pdp1_reader)
{ {
@ -1897,53 +1895,53 @@ INTERRUPT_GEN( pdp1_interrupt )
} }
if (control_transitions & pdp1_single_step) if (control_transitions & pdp1_single_step)
{ {
device->state().set_state_int(PDP1_SNGL_STEP, ! device->state().state_int(PDP1_SNGL_STEP)); device.state().set_state_int(PDP1_SNGL_STEP, ! device.state().state_int(PDP1_SNGL_STEP));
} }
if (control_transitions & pdp1_single_inst) if (control_transitions & pdp1_single_inst)
{ {
device->state().set_state_int(PDP1_SNGL_INST, ! device->state().state_int(PDP1_SNGL_INST)); device.state().set_state_int(PDP1_SNGL_INST, ! device.state().state_int(PDP1_SNGL_INST));
} }
/* remember new state of control keys */ /* remember new state of control keys */
state->m_old_control_keys = control_keys; m_old_control_keys = control_keys;
/* handle test word keys */ /* handle test word keys */
tw_keys = (machine.root_device().ioport("TWDMSB")->read() << 16) | machine.root_device().ioport("TWDLSB")->read(); tw_keys = (machine().root_device().ioport("TWDMSB")->read() << 16) | machine().root_device().ioport("TWDLSB")->read();
/* compute transitions */ /* compute transitions */
tw_transitions = tw_keys & (~ state->m_old_tw_keys); tw_transitions = tw_keys & (~ m_old_tw_keys);
if (tw_transitions) if (tw_transitions)
device->state().set_state_int(PDP1_TW, device->state().state_int(PDP1_TW) ^ tw_transitions); device.state().set_state_int(PDP1_TW, device.state().state_int(PDP1_TW) ^ tw_transitions);
/* remember new state of test word keys */ /* remember new state of test word keys */
state->m_old_tw_keys = tw_keys; m_old_tw_keys = tw_keys;
/* handle address keys */ /* handle address keys */
ta_keys = machine.root_device().ioport("TSTADD")->read(); ta_keys = machine().root_device().ioport("TSTADD")->read();
/* compute transitions */ /* compute transitions */
ta_transitions = ta_keys & (~ state->m_old_ta_keys); ta_transitions = ta_keys & (~ m_old_ta_keys);
if (ta_transitions) if (ta_transitions)
device->state().set_state_int(PDP1_TA, device->state().state_int(PDP1_TA) ^ ta_transitions); device.state().set_state_int(PDP1_TA, device.state().state_int(PDP1_TA) ^ ta_transitions);
/* remember new state of test word keys */ /* remember new state of test word keys */
state->m_old_ta_keys = ta_keys; m_old_ta_keys = ta_keys;
} }
else else
{ {
state->m_old_control_keys = 0; m_old_control_keys = 0;
state->m_old_tw_keys = 0; m_old_tw_keys = 0;
state->m_old_ta_keys = 0; m_old_ta_keys = 0;
pdp1_keyboard(machine); pdp1_keyboard(machine());
} }
pdp1_lightpen(machine); pdp1_lightpen(machine());
} }
@ -1954,7 +1952,7 @@ static MACHINE_CONFIG_START( pdp1, pdp1_state )
MCFG_CPU_ADD("maincpu", PDP1, 1000000/*the CPU core uses microsecond counts*/) MCFG_CPU_ADD("maincpu", PDP1, 1000000/*the CPU core uses microsecond counts*/)
MCFG_CPU_CONFIG(pdp1_reset_param) MCFG_CPU_CONFIG(pdp1_reset_param)
MCFG_CPU_PROGRAM_MAP(pdp1_map) MCFG_CPU_PROGRAM_MAP(pdp1_map)
MCFG_CPU_VBLANK_INT("screen", pdp1_interrupt) /* dummy interrupt: handles input */ MCFG_CPU_VBLANK_INT_DRIVER("screen", pdp1_state, pdp1_interrupt) /* dummy interrupt: handles input */
/* video hardware (includes the control panel and typewriter output) */ /* video hardware (includes the control panel and typewriter output) */

View File

@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( pet_general, pet_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/8) MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/8)
MCFG_CPU_PROGRAM_MAP(pet_mem) MCFG_CPU_PROGRAM_MAP(pet_mem)
MCFG_CPU_VBLANK_INT("screen", pet_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pet_state, pet_frame_interrupt)
/* video hardware */ /* video hardware */
@ -783,7 +783,7 @@ static MACHINE_CONFIG_DERIVED( superpet, pet80 )
/* m6809 cpu */ /* m6809 cpu */
MCFG_CPU_ADD("m6809", M6809, 1000000) MCFG_CPU_ADD("m6809", M6809, 1000000)
MCFG_CPU_PROGRAM_MAP(superpet_m6809_mem) MCFG_CPU_PROGRAM_MAP(superpet_m6809_mem)
MCFG_CPU_VBLANK_INT("screen", pet_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pet_state, pet_frame_interrupt)
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)

View File

@ -30,6 +30,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pk8000_interrupt);
}; };
@ -308,9 +309,9 @@ static INPUT_PORTS_START( pk8000 )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END INPUT_PORTS_END
static INTERRUPT_GEN( pk8000_interrupt ) INTERRUPT_GEN_MEMBER(pk8000_state::pk8000_interrupt)
{ {
device->execute().set_input_line(0, HOLD_LINE); device.execute().set_input_line(0, HOLD_LINE);
} }
static IRQ_CALLBACK(pk8000_irq_callback) static IRQ_CALLBACK(pk8000_irq_callback)
@ -349,7 +350,7 @@ static MACHINE_CONFIG_START( pk8000, pk8000_state )
MCFG_CPU_ADD("maincpu",I8080, 1780000) MCFG_CPU_ADD("maincpu",I8080, 1780000)
MCFG_CPU_PROGRAM_MAP(pk8000_mem) MCFG_CPU_PROGRAM_MAP(pk8000_mem)
MCFG_CPU_IO_MAP(pk8000_io) MCFG_CPU_IO_MAP(pk8000_io)
MCFG_CPU_VBLANK_INT("screen", pk8000_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pk8000_state, pk8000_interrupt)
/* video hardware */ /* video hardware */

View File

@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( pk8020, pk8020_state )
MCFG_CPU_ADD("maincpu", I8080, XTAL_20MHz / 8) MCFG_CPU_ADD("maincpu", I8080, XTAL_20MHz / 8)
MCFG_CPU_PROGRAM_MAP(pk8020_mem) MCFG_CPU_PROGRAM_MAP(pk8020_mem)
MCFG_CPU_IO_MAP(pk8020_io) MCFG_CPU_IO_MAP(pk8020_io)
MCFG_CPU_VBLANK_INT("screen", pk8020_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pk8020_state, pk8020_interrupt)
/* video hardware */ /* video hardware */

View File

@ -566,16 +566,14 @@ static M6510_INTERFACE( c16_cpu_intf )
// ted7360_interface ted_intf // ted7360_interface ted_intf
//------------------------------------------------- //-------------------------------------------------
static INTERRUPT_GEN( c16_raster_interrupt ) INTERRUPT_GEN_MEMBER(plus4_state::c16_raster_interrupt)
{ {
plus4_state *state = device->machine().driver_data<plus4_state>();
state->m_ted->raster_interrupt_gen(); m_ted->raster_interrupt_gen();
} }
static INTERRUPT_GEN( c16_frame_interrupt ) INTERRUPT_GEN_MEMBER(plus4_state::c16_frame_interrupt)
{ {
plus4_state *state = device->machine().driver_data<plus4_state>();
int value, i; int value, i;
static const char *const c16ports[] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7" }; static const char *const c16ports[] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7" };
@ -584,54 +582,54 @@ static INTERRUPT_GEN( c16_frame_interrupt )
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
value = 0xff; value = 0xff;
value &= ~device->machine().root_device().ioport(c16ports[i])->read(); value &= ~machine().root_device().ioport(c16ports[i])->read();
/* Shift Lock is mapped on Left/Right Shift */ /* Shift Lock is mapped on Left/Right Shift */
if ((i == 1) && (device->machine().root_device().ioport("SPECIAL")->read() & 0x80)) if ((i == 1) && (machine().root_device().ioport("SPECIAL")->read() & 0x80))
value &= ~0x80; value &= ~0x80;
state->m_keyline[i] = value; m_keyline[i] = value;
} }
if (device->machine().root_device().ioport("CTRLSEL")->read() & 0x01) if (machine().root_device().ioport("CTRLSEL")->read() & 0x01)
{ {
value = 0xff; value = 0xff;
if (device->machine().root_device().ioport("JOY0")->read() & 0x10) /* Joypad1_Button */ if (machine().root_device().ioport("JOY0")->read() & 0x10) /* Joypad1_Button */
{ {
if (device->machine().root_device().ioport("SPECIAL")->read() & 0x40) if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
value &= ~0x80; value &= ~0x80;
else else
value &= ~0x40; value &= ~0x40;
} }
value &= ~(device->machine().root_device().ioport("JOY0")->read() & 0x0f); /* Other Inputs Joypad1 */ value &= ~(machine().root_device().ioport("JOY0")->read() & 0x0f); /* Other Inputs Joypad1 */
if (device->machine().root_device().ioport("SPECIAL")->read() & 0x40) if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
state->m_keyline[9] = value; m_keyline[9] = value;
else else
state->m_keyline[8] = value; m_keyline[8] = value;
} }
if (device->machine().root_device().ioport("CTRLSEL")->read() & 0x10) if (machine().root_device().ioport("CTRLSEL")->read() & 0x10)
{ {
value = 0xff; value = 0xff;
if (device->machine().root_device().ioport("JOY1")->read() & 0x10) /* Joypad2_Button */ if (machine().root_device().ioport("JOY1")->read() & 0x10) /* Joypad2_Button */
{ {
if (device->machine().root_device().ioport("SPECIAL")->read() & 0x40) if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
value &= ~0x40; value &= ~0x40;
else else
value &= ~0x80; value &= ~0x80;
} }
value &= ~(device->machine().root_device().ioport("JOY1")->read() & 0x0f); /* Other Inputs Joypad2 */ value &= ~(machine().root_device().ioport("JOY1")->read() & 0x0f); /* Other Inputs Joypad2 */
if (device->machine().root_device().ioport("SPECIAL")->read() & 0x40) if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
state->m_keyline[8] = value; m_keyline[8] = value;
else else
state->m_keyline[9] = value; m_keyline[9] = value;
} }
state->m_ted->frame_interrupt_gen(); m_ted->frame_interrupt_gen();
} }
WRITE_LINE_MEMBER( plus4_state::ted_irq_w ) WRITE_LINE_MEMBER( plus4_state::ted_irq_w )
@ -905,8 +903,8 @@ static MACHINE_CONFIG_START( ntsc, plus4_state )
MCFG_CPU_ADD(MOS7501_TAG, M7501, XTAL_14_31818MHz/16) MCFG_CPU_ADD(MOS7501_TAG, M7501, XTAL_14_31818MHz/16)
MCFG_CPU_PROGRAM_MAP(plus4_mem) MCFG_CPU_PROGRAM_MAP(plus4_mem)
MCFG_CPU_CONFIG(cpu_intf) MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c16_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt)
MCFG_CPU_PERIODIC_INT(c16_raster_interrupt, TED7360_HRETRACERATE) MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
// video and sound hardware // video and sound hardware
@ -944,8 +942,8 @@ static MACHINE_CONFIG_START( pal, plus4_state )
MCFG_CPU_ADD(MOS7501_TAG, M7501, XTAL_17_73447MHz/20) MCFG_CPU_ADD(MOS7501_TAG, M7501, XTAL_17_73447MHz/20)
MCFG_CPU_PROGRAM_MAP(plus4_mem) MCFG_CPU_PROGRAM_MAP(plus4_mem)
MCFG_CPU_CONFIG(cpu_intf) MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c16_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt)
MCFG_CPU_PERIODIC_INT(c16_raster_interrupt, TED7360_HRETRACERATE) MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
// video and sound hardware // video and sound hardware

View File

@ -169,7 +169,7 @@ static MACHINE_CONFIG_START( poly88, poly88_state )
MCFG_CPU_ADD("maincpu",I8080, 1853000) MCFG_CPU_ADD("maincpu",I8080, 1853000)
MCFG_CPU_PROGRAM_MAP(poly88_mem) MCFG_CPU_PROGRAM_MAP(poly88_mem)
MCFG_CPU_IO_MAP(poly88_io) MCFG_CPU_IO_MAP(poly88_io)
MCFG_CPU_VBLANK_INT("screen", poly88_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", poly88_state, poly88_interrupt)
/* video hardware */ /* video hardware */

View File

@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( primoa32, primo_state )
MCFG_CPU_ADD( "maincpu", Z80, 2500000 ) MCFG_CPU_ADD( "maincpu", Z80, 2500000 )
MCFG_CPU_PROGRAM_MAP( primo32_mem) MCFG_CPU_PROGRAM_MAP( primo32_mem)
MCFG_CPU_IO_MAP( primoa_port) MCFG_CPU_IO_MAP( primoa_port)
MCFG_CPU_VBLANK_INT("screen", primo_vblank_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", primo_state, primo_vblank_interrupt)
/* video hardware */ /* video hardware */

View File

@ -82,6 +82,7 @@ public:
DECLARE_DRIVER_INIT(pyl601); DECLARE_DRIVER_INIT(pyl601);
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
INTERRUPT_GEN_MEMBER(pyl601_interrupt);
}; };
@ -515,11 +516,10 @@ DRIVER_INIT_MEMBER(pyl601_state,pyl601)
memset(machine().device<ram_device>(RAM_TAG)->pointer(), 0, 64 * 1024); memset(machine().device<ram_device>(RAM_TAG)->pointer(), 0, 64 * 1024);
} }
static INTERRUPT_GEN( pyl601_interrupt ) INTERRUPT_GEN_MEMBER(pyl601_state::pyl601_interrupt)
{ {
pyl601_state *state = device->machine().driver_data<pyl601_state>(); m_tick50_mark = 0x80;
state->m_tick50_mark = 0x80; device.execute().set_input_line(0, HOLD_LINE);
device->execute().set_input_line(0, HOLD_LINE);
} }
static LEGACY_FLOPPY_OPTIONS_START(pyldin) static LEGACY_FLOPPY_OPTIONS_START(pyldin)
@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( pyl601, pyl601_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz) MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz)
MCFG_CPU_PROGRAM_MAP(pyl601_mem) MCFG_CPU_PROGRAM_MAP(pyl601_mem)
MCFG_CPU_VBLANK_INT("screen", pyl601_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", pyl601_state, pyl601_interrupt)
/* video hardware */ /* video hardware */

View File

@ -132,6 +132,7 @@ private:
virtual void machine_reset(); virtual void machine_reset();
public: public:
UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
}; };
void rainbow_state::machine_start() void rainbow_state::machine_start()
@ -316,9 +317,9 @@ READ8_MEMBER( rainbow_state::read_video_ram_r )
return m_p_ram[offset]; return m_p_ram[offset];
} }
static INTERRUPT_GEN( vblank_irq ) INTERRUPT_GEN_MEMBER(rainbow_state::vblank_irq)
{ {
device->execute().set_input_line_and_vector(INPUT_LINE_INT0, ASSERT_LINE, 0x20); device.execute().set_input_line_and_vector(INPUT_LINE_INT0, ASSERT_LINE, 0x20);
} }
WRITE8_MEMBER( rainbow_state::clear_video_interrupt ) WRITE8_MEMBER( rainbow_state::clear_video_interrupt )
@ -463,7 +464,7 @@ static MACHINE_CONFIG_START( rainbow, rainbow_state )
MCFG_CPU_ADD("maincpu",I8088, XTAL_24_0734MHz / 5) MCFG_CPU_ADD("maincpu",I8088, XTAL_24_0734MHz / 5)
MCFG_CPU_PROGRAM_MAP(rainbow8088_map) MCFG_CPU_PROGRAM_MAP(rainbow8088_map)
MCFG_CPU_IO_MAP(rainbow8088_io) MCFG_CPU_IO_MAP(rainbow8088_io)
MCFG_CPU_VBLANK_INT("screen", vblank_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", rainbow_state, vblank_irq)
MCFG_CPU_ADD("subcpu",Z80, XTAL_24_0734MHz / 6) MCFG_CPU_ADD("subcpu",Z80, XTAL_24_0734MHz / 6)
MCFG_CPU_PROGRAM_MAP(rainbowz80_mem) MCFG_CPU_PROGRAM_MAP(rainbowz80_mem)

View File

@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( rx78, rx78_state )
MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider
MCFG_CPU_PROGRAM_MAP(rx78_mem) MCFG_CPU_PROGRAM_MAP(rx78_mem)
MCFG_CPU_IO_MAP(rx78_io) MCFG_CPU_IO_MAP(rx78_io)
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold) MCFG_CPU_VBLANK_INT_DRIVER("screen", rx78_state, irq0_line_hold)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -349,10 +349,10 @@ void samcoupe_irq(device_t *device, UINT8 src)
state->m_status &= ~src; state->m_status &= ~src;
} }
static INTERRUPT_GEN( samcoupe_frame_interrupt ) INTERRUPT_GEN_MEMBER(samcoupe_state::samcoupe_frame_interrupt)
{ {
/* signal frame interrupt */ /* signal frame interrupt */
samcoupe_irq(device, SAM_FRAME_INT); samcoupe_irq(&device, SAM_FRAME_INT);
} }
@ -530,7 +530,7 @@ static MACHINE_CONFIG_START( samcoupe, samcoupe_state )
MCFG_CPU_ADD("maincpu", Z80, SAMCOUPE_XTAL_X1 / 4) /* 6 MHz */ MCFG_CPU_ADD("maincpu", Z80, SAMCOUPE_XTAL_X1 / 4) /* 6 MHz */
MCFG_CPU_PROGRAM_MAP(samcoupe_mem) MCFG_CPU_PROGRAM_MAP(samcoupe_mem)
MCFG_CPU_IO_MAP(samcoupe_io) MCFG_CPU_IO_MAP(samcoupe_io)
MCFG_CPU_VBLANK_INT("screen", samcoupe_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", samcoupe_state, samcoupe_frame_interrupt)
/* video hardware */ /* video hardware */

View File

@ -102,6 +102,7 @@ public:
DECLARE_DRIVER_INIT(sgi_ip2); DECLARE_DRIVER_INIT(sgi_ip2);
virtual void machine_start(); virtual void machine_start();
virtual void machine_reset(); virtual void machine_reset();
INTERRUPT_GEN_MEMBER(sgi_ip2_vbl);
}; };
@ -367,7 +368,7 @@ static GENERIC_TERMINAL_INTERFACE( sgi_terminal_intf )
}; };
static INTERRUPT_GEN( sgi_ip2_vbl ) INTERRUPT_GEN_MEMBER(sgi_ip2_state::sgi_ip2_vbl)
{ {
} }
@ -477,7 +478,7 @@ static MACHINE_CONFIG_START( sgi_ip2, sgi_ip2_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68020, 16000000) MCFG_CPU_ADD("maincpu", M68020, 16000000)
MCFG_CPU_PROGRAM_MAP(sgi_ip2_map) MCFG_CPU_PROGRAM_MAP(sgi_ip2_map)
MCFG_CPU_VBLANK_INT(TERMINAL_TAG ":" TERMINAL_SCREEN_TAG, sgi_ip2_vbl) MCFG_CPU_VBLANK_INT_DRIVER(TERMINAL_TAG ":" TERMINAL_SCREEN_TAG, sgi_ip2_state, sgi_ip2_vbl)
/* video hardware */ /* video hardware */

View File

@ -42,6 +42,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(sgi_ip6_vbl);
}; };
@ -192,7 +193,7 @@ WRITE32_MEMBER(sgi_ip6_state::ip6_unk3_w)
verboselog(machine(), 0, "ip6_unk3_w: Unknown address: %08x = %08x & %08x\n", 0x1fb00000 + (offset << 2), data, mem_mask ); verboselog(machine(), 0, "ip6_unk3_w: Unknown address: %08x = %08x & %08x\n", 0x1fb00000 + (offset << 2), data, mem_mask );
} }
static INTERRUPT_GEN( sgi_ip6_vbl ) INTERRUPT_GEN_MEMBER(sgi_ip6_state::sgi_ip6_vbl)
{ {
} }
@ -233,7 +234,7 @@ static MACHINE_CONFIG_START( sgi_ip6, sgi_ip6_state )
MCFG_CPU_ADD( "maincpu", R3000BE, 20000000 ) // FIXME: Should be R2000 MCFG_CPU_ADD( "maincpu", R3000BE, 20000000 ) // FIXME: Should be R2000
MCFG_CPU_CONFIG( config ) MCFG_CPU_CONFIG( config )
MCFG_CPU_PROGRAM_MAP( sgi_ip6_map ) MCFG_CPU_PROGRAM_MAP( sgi_ip6_map )
MCFG_CPU_VBLANK_INT("screen", sgi_ip6_vbl) MCFG_CPU_VBLANK_INT_DRIVER("screen", sgi_ip6_state, sgi_ip6_vbl)
/* video hardware */ /* video hardware */

View File

@ -45,6 +45,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(sm1800_vblank_interrupt);
}; };
static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state) static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state)
@ -92,11 +93,10 @@ UINT32 sm1800_state::screen_update_sm1800(screen_device &screen, bitmap_ind16 &b
return 0; return 0;
} }
static INTERRUPT_GEN( sm1800_vblank_interrupt ) INTERRUPT_GEN_MEMBER(sm1800_state::sm1800_vblank_interrupt)
{ {
sm1800_state *state = device->machine().driver_data<sm1800_state>(); machine().device("maincpu")->execute().set_input_line(0, m_irq_state ? HOLD_LINE : CLEAR_LINE);
device->machine().device("maincpu")->execute().set_input_line(0, state->m_irq_state ? HOLD_LINE : CLEAR_LINE); m_irq_state ^= 1;
state->m_irq_state ^= 1;
} }
static I8275_DISPLAY_PIXELS(sm1800_display_pixels) static I8275_DISPLAY_PIXELS(sm1800_display_pixels)
@ -189,7 +189,7 @@ static MACHINE_CONFIG_START( sm1800, sm1800_state )
MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz) MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz)
MCFG_CPU_PROGRAM_MAP(sm1800_mem) MCFG_CPU_PROGRAM_MAP(sm1800_mem)
MCFG_CPU_IO_MAP(sm1800_io) MCFG_CPU_IO_MAP(sm1800_io)
MCFG_CPU_VBLANK_INT("screen", sm1800_vblank_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", sm1800_state, sm1800_vblank_interrupt)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -87,6 +87,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(smc777_vblank_irq);
}; };
@ -1046,12 +1047,11 @@ static const floppy_interface smc777_floppy_interface =
NULL NULL
}; };
static INTERRUPT_GEN( smc777_vblank_irq ) INTERRUPT_GEN_MEMBER(smc777_state::smc777_vblank_irq)
{ {
smc777_state *state = device->machine().driver_data<smc777_state>();
if(state->m_irq_mask) if(m_irq_mask)
device->execute().set_input_line(0,HOLD_LINE); device.execute().set_input_line(0,HOLD_LINE);
} }
@ -1079,7 +1079,7 @@ static MACHINE_CONFIG_START( smc777, smc777_state )
MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK) MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(smc777_mem) MCFG_CPU_PROGRAM_MAP(smc777_mem)
MCFG_CPU_IO_MAP(smc777_io) MCFG_CPU_IO_MAP(smc777_io)
MCFG_CPU_VBLANK_INT("screen",smc777_vblank_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", smc777_state, smc777_vblank_irq)
/* video hardware */ /* video hardware */

View File

@ -128,6 +128,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(assert_irq);
}; };
@ -909,14 +910,13 @@ static TIMER_CALLBACK( clear_irq_cb )
state->m_vblankstate = 0; state->m_vblankstate = 0;
} }
static INTERRUPT_GEN( assert_irq ) INTERRUPT_GEN_MEMBER(socrates_state::assert_irq)
{ {
socrates_state *state = device->machine().driver_data<socrates_state>(); device.execute().set_input_line(0, ASSERT_LINE);
device->execute().set_input_line(0, ASSERT_LINE); machine().scheduler().timer_set(downcast<cpu_device *>(&device)->cycles_to_attotime(44), FUNC(clear_irq_cb));
device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(44), FUNC(clear_irq_cb));
// 44 is a complete and total guess, need to properly measure how many clocks/microseconds the int line is high for. // 44 is a complete and total guess, need to properly measure how many clocks/microseconds the int line is high for.
state->m_vblankstate = 1; m_vblankstate = 1;
state->m_kbmcu_rscount = 0; // clear the mcu poke count m_kbmcu_rscount = 0; // clear the mcu poke count
} }
static MACHINE_CONFIG_START( socrates, socrates_state ) static MACHINE_CONFIG_START( socrates, socrates_state )
@ -925,7 +925,7 @@ static MACHINE_CONFIG_START( socrates, socrates_state )
MCFG_CPU_PROGRAM_MAP(z80_mem) MCFG_CPU_PROGRAM_MAP(z80_mem)
MCFG_CPU_IO_MAP(z80_io) MCFG_CPU_IO_MAP(z80_io)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_CPU_VBLANK_INT("screen", assert_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", socrates_state, assert_irq)
//MCFG_MACHINE_START_OVERRIDE(socrates_state,socrates) //MCFG_MACHINE_START_OVERRIDE(socrates_state,socrates)
/* video hardware */ /* video hardware */

View File

@ -660,9 +660,9 @@ static GFXDECODE_START( spectrum )
GFXDECODE_END GFXDECODE_END
static INTERRUPT_GEN( spec_interrupt ) INTERRUPT_GEN_MEMBER(spectrum_state::spec_interrupt)
{ {
device->execute().set_input_line(0, HOLD_LINE); device.execute().set_input_line(0, HOLD_LINE);
} }
static const cassette_interface spectrum_cassette_interface = static const cassette_interface spectrum_cassette_interface =
@ -708,7 +708,7 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state )
MCFG_CPU_ADD("maincpu", Z80, X1 / 4) /* This is verified only for the ZX Spectum. Other clones are reported to have different clocks */ MCFG_CPU_ADD("maincpu", Z80, X1 / 4) /* This is verified only for the ZX Spectum. Other clones are reported to have different clocks */
MCFG_CPU_PROGRAM_MAP(spectrum_mem) MCFG_CPU_PROGRAM_MAP(spectrum_mem)
MCFG_CPU_IO_MAP(spectrum_io) MCFG_CPU_IO_MAP(spectrum_io)
MCFG_CPU_VBLANK_INT("screen", spec_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", spectrum_state, spec_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum ) MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum )

View File

@ -201,6 +201,8 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(supracan_irq);
INTERRUPT_GEN_MEMBER(supracan_sound_irq);
}; };
@ -1870,31 +1872,29 @@ static GFXDECODE_START( supracan )
GFXDECODE_ENTRY( "ram_gfx3", 0, supracan_gfx1bpp_alt, 0, 0x80 ) GFXDECODE_ENTRY( "ram_gfx3", 0, supracan_gfx1bpp_alt, 0, 0x80 )
GFXDECODE_END GFXDECODE_END
static INTERRUPT_GEN( supracan_irq ) INTERRUPT_GEN_MEMBER(supracan_state::supracan_irq)
{ {
#if 0 #if 0
supracan_state *state = (supracan_state *)device->machine().driver_data<supracan_state>();
if(state->m_irq_mask) if(m_irq_mask)
{ {
device->execute().set_input_line(7, HOLD_LINE); device.execute().set_input_line(7, HOLD_LINE);
} }
#endif #endif
} }
static INTERRUPT_GEN( supracan_sound_irq ) INTERRUPT_GEN_MEMBER(supracan_state::supracan_sound_irq)
{ {
supracan_state *state = (supracan_state *)device->machine().driver_data<supracan_state>();
state->m_sound_irq_source_reg |= 0x80; m_sound_irq_source_reg |= 0x80;
if(state->m_sound_irq_enable_reg & state->m_sound_irq_source_reg) if(m_sound_irq_enable_reg & m_sound_irq_source_reg)
{ {
device->machine().device("soundcpu")->execute().set_input_line(0, ASSERT_LINE); machine().device("soundcpu")->execute().set_input_line(0, ASSERT_LINE);
} }
else else
{ {
device->machine().device("soundcpu")->execute().set_input_line(0, CLEAR_LINE); machine().device("soundcpu")->execute().set_input_line(0, CLEAR_LINE);
} }
} }
@ -1902,11 +1902,11 @@ static MACHINE_CONFIG_START( supracan, supracan_state )
MCFG_CPU_ADD( "maincpu", M68000, XTAL_10_738635MHz ) /* Correct frequency unknown */ MCFG_CPU_ADD( "maincpu", M68000, XTAL_10_738635MHz ) /* Correct frequency unknown */
MCFG_CPU_PROGRAM_MAP( supracan_mem ) MCFG_CPU_PROGRAM_MAP( supracan_mem )
MCFG_CPU_VBLANK_INT("screen", supracan_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", supracan_state, supracan_irq)
MCFG_CPU_ADD( "soundcpu", M6502, XTAL_3_579545MHz ) /* TODO: Verify actual clock */ MCFG_CPU_ADD( "soundcpu", M6502, XTAL_3_579545MHz ) /* TODO: Verify actual clock */
MCFG_CPU_PROGRAM_MAP( supracan_sound_mem ) MCFG_CPU_PROGRAM_MAP( supracan_sound_mem )
MCFG_CPU_VBLANK_INT("screen", supracan_sound_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", supracan_state, supracan_sound_irq)
#if !(SOUNDCPU_BOOT_HACK) #if !(SOUNDCPU_BOOT_HACK)
MCFG_QUANTUM_PERFECT_CPU("maincpu") MCFG_QUANTUM_PERFECT_CPU("maincpu")

View File

@ -414,13 +414,12 @@ UINT32 svision_state::screen_update_tvlink(screen_device &screen, bitmap_rgb32 &
return 0; return 0;
} }
static INTERRUPT_GEN( svision_frame_int ) INTERRUPT_GEN_MEMBER(svision_state::svision_frame_int)
{ {
svision_state *state = device->machine().driver_data<svision_state>(); if (BANK&1)
if (state->BANK&1) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
svision_sound_decrement(state->m_sound); svision_sound_decrement(m_sound);
} }
DRIVER_INIT_MEMBER(svision_state,svision) DRIVER_INIT_MEMBER(svision_state,svision)
@ -514,7 +513,7 @@ static MACHINE_CONFIG_START( svision, svision_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M65C02, 4000000) /* ? stz used! speed? */ MCFG_CPU_ADD("maincpu", M65C02, 4000000) /* ? stz used! speed? */
MCFG_CPU_PROGRAM_MAP(svision_mem) MCFG_CPU_PROGRAM_MAP(svision_mem)
MCFG_CPU_VBLANK_INT("screen", svision_frame_int) MCFG_CPU_VBLANK_INT_DRIVER("screen", svision_state, svision_frame_int)
/* video hardware */ /* video hardware */

View File

@ -89,6 +89,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(ti990_10_line_interrupt);
}; };
@ -106,12 +107,11 @@ void ti990_10_state::machine_reset()
ti990_hdc_init(machine(), ti990_set_int13); ti990_hdc_init(machine(), ti990_set_int13);
} }
static INTERRUPT_GEN( ti990_10_line_interrupt ) INTERRUPT_GEN_MEMBER(ti990_10_state::ti990_10_line_interrupt)
{ {
ti990_10_state *state = device->machine().driver_data<ti990_10_state>(); vdt911_keyboard(m_terminal);
vdt911_keyboard(state->m_terminal);
ti990_line_interrupt(device->machine()); ti990_line_interrupt(machine());
} }
#ifdef UNUSED_FUNCTION #ifdef UNUSED_FUNCTION
@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state )
MCFG_CPU_CONFIG(reset_params) MCFG_CPU_CONFIG(reset_params)
MCFG_CPU_PROGRAM_MAP(ti990_10_memmap) MCFG_CPU_PROGRAM_MAP(ti990_10_memmap)
MCFG_CPU_IO_MAP(ti990_10_io) MCFG_CPU_IO_MAP(ti990_10_io)
MCFG_CPU_PERIODIC_INT(ti990_10_line_interrupt, 120/*or 100 in Europe*/) MCFG_CPU_PERIODIC_INT_DRIVER(ti990_10_state, ti990_10_line_interrupt, 120/*or 100 in Europe*/)
/* video hardware - we emulate a single 911 vdt display */ /* video hardware - we emulate a single 911 vdt display */

View File

@ -62,6 +62,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(ti990_4_line_interrupt);
}; };
@ -75,17 +76,16 @@ void ti990_4_state::machine_reset()
} }
static INTERRUPT_GEN( ti990_4_line_interrupt ) INTERRUPT_GEN_MEMBER(ti990_4_state::ti990_4_line_interrupt)
{ {
ti990_4_state *state = device->machine().driver_data<ti990_4_state>();
#if VIDEO_911 #if VIDEO_911
vdt911_keyboard(state->m_terminal); vdt911_keyboard(m_terminal);
#else #else
asr733_keyboard(state->m_terminal); asr733_keyboard(m_terminal);
#endif #endif
ti990_line_interrupt(device->machine()); ti990_line_interrupt(machine());
} }
#ifdef UNUSED_FUNCTION #ifdef UNUSED_FUNCTION
@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state )
MCFG_CPU_ADD("maincpu", TMS9900L, 3000000) MCFG_CPU_ADD("maincpu", TMS9900L, 3000000)
MCFG_CPU_PROGRAM_MAP(ti990_4_memmap) MCFG_CPU_PROGRAM_MAP(ti990_4_memmap)
MCFG_CPU_IO_MAP(ti990_4_cru_map) MCFG_CPU_IO_MAP(ti990_4_cru_map)
MCFG_CPU_PERIODIC_INT(ti990_4_line_interrupt, 120/*or TIME_IN_HZ(100) in Europe*/) MCFG_CPU_PERIODIC_INT_DRIVER(ti990_4_state, ti990_4_line_interrupt, 120/*or TIME_IN_HZ(100) in Europe*/)
/* video hardware - we emulate a single 911 vdt display */ /* video hardware - we emulate a single 911 vdt display */

View File

@ -102,6 +102,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(ti99_2_vblank_interrupt);
}; };
@ -130,11 +131,10 @@ void ti99_2_state::machine_reset()
membank("bank1")->set_base((memregion("maincpu")->base()+0x4000)); membank("bank1")->set_base((memregion("maincpu")->base()+0x4000));
} }
static INTERRUPT_GEN( ti99_2_vblank_interrupt ) INTERRUPT_GEN_MEMBER(ti99_2_state::ti99_2_vblank_interrupt)
{ {
ti99_2_state *state = device->machine().driver_data<ti99_2_state>(); device.execute().set_input_line(1, m_irq_state);
device->execute().set_input_line(1, state->m_irq_state); m_irq_state = (m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE;
state->m_irq_state = (state->m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE;
} }
@ -380,7 +380,7 @@ static MACHINE_CONFIG_START( ti99_2, ti99_2_state )
MCFG_CPU_CONFIG(ti99_2_processor_config) MCFG_CPU_CONFIG(ti99_2_processor_config)
MCFG_CPU_PROGRAM_MAP(ti99_2_memmap) MCFG_CPU_PROGRAM_MAP(ti99_2_memmap)
MCFG_CPU_IO_MAP(ti99_2_io) MCFG_CPU_IO_MAP(ti99_2_io)
MCFG_CPU_VBLANK_INT("screen", ti99_2_vblank_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", ti99_2_state, ti99_2_vblank_interrupt)
/* video hardware */ /* video hardware */

View File

@ -56,7 +56,7 @@ static MACHINE_CONFIG_START( tim011,tim011_state )
MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2) MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2)
MCFG_CPU_PROGRAM_MAP(tim011_mem) MCFG_CPU_PROGRAM_MAP(tim011_mem)
MCFG_CPU_IO_MAP(tim011_io) MCFG_CPU_IO_MAP(tim011_io)
MCFG_CPU_VBLANK_INT("screen",irq0_line_hold) MCFG_CPU_VBLANK_INT_DRIVER("screen", tim011_state, irq0_line_hold)
/* video hardware */ /* video hardware */

View File

@ -610,7 +610,7 @@ static MACHINE_CONFIG_DERIVED( model1, trs80 ) // model I, level II
MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP( model1_map) MCFG_CPU_PROGRAM_MAP( model1_map)
MCFG_CPU_IO_MAP( model1_io) MCFG_CPU_IO_MAP( model1_io)
MCFG_CPU_PERIODIC_INT(trs80_rtc_interrupt, 40) MCFG_CPU_PERIODIC_INT_DRIVER(trs80_state, trs80_rtc_interrupt, 40)
/* devices */ /* devices */
MCFG_CASSETTE_MODIFY( CASSETTE_TAG, trs80l2_cassette_interface ) MCFG_CASSETTE_MODIFY( CASSETTE_TAG, trs80l2_cassette_interface )
@ -625,7 +625,7 @@ static MACHINE_CONFIG_DERIVED( model3, model1 )
MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP( model3_map) MCFG_CPU_PROGRAM_MAP( model3_map)
MCFG_CPU_IO_MAP( model3_io) MCFG_CPU_IO_MAP( model3_io)
MCFG_CPU_PERIODIC_INT(trs80_rtc_interrupt, 30) MCFG_CPU_PERIODIC_INT_DRIVER(trs80_state, trs80_rtc_interrupt, 30)
MCFG_MACHINE_RESET_OVERRIDE(trs80_state, trs80m4 ) MCFG_MACHINE_RESET_OVERRIDE(trs80_state, trs80m4 )

View File

@ -1498,9 +1498,8 @@ static void tx0_keyboard(running_machine &machine)
/* /*
Not a real interrupt - just handle keyboard input Not a real interrupt - just handle keyboard input
*/ */
static INTERRUPT_GEN( tx0_interrupt ) INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt)
{ {
tx0_state *state = device->machine().driver_data<tx0_state>();
int control_keys; int control_keys;
int tsr_keys; int tsr_keys;
@ -1509,93 +1508,93 @@ static INTERRUPT_GEN( tx0_interrupt )
/* read new state of control keys */ /* read new state of control keys */
control_keys = state->ioport("CSW")->read(); control_keys = ioport("CSW")->read();
if (control_keys & tx0_control) if (control_keys & tx0_control)
{ {
/* compute transitions */ /* compute transitions */
control_transitions = control_keys & (~ state->m_old_control_keys); control_transitions = control_keys & (~ m_old_control_keys);
if (control_transitions & tx0_stop_cyc0) if (control_transitions & tx0_stop_cyc0)
{ {
device->machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC0, !device->machine().device("maincpu")->state().state_int(TX0_STOP_CYC0)); machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC0, !machine().device("maincpu")->state().state_int(TX0_STOP_CYC0));
} }
if (control_transitions & tx0_stop_cyc1) if (control_transitions & tx0_stop_cyc1)
{ {
device->machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC1, !device->machine().device("maincpu")->state().state_int(TX0_STOP_CYC1)); machine().device("maincpu")->state().set_state_int(TX0_STOP_CYC1, !machine().device("maincpu")->state().state_int(TX0_STOP_CYC1));
} }
if (control_transitions & tx0_gbl_cm_sel) if (control_transitions & tx0_gbl_cm_sel)
{ {
device->machine().device("maincpu")->state().set_state_int(TX0_GBL_CM_SEL, !device->machine().device("maincpu")->state().state_int(TX0_GBL_CM_SEL)); machine().device("maincpu")->state().set_state_int(TX0_GBL_CM_SEL, !machine().device("maincpu")->state().state_int(TX0_GBL_CM_SEL));
} }
if (control_transitions & tx0_stop) if (control_transitions & tx0_stop)
{ {
device->machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0); machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0);
device->machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0); machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0);
} }
if (control_transitions & tx0_restart) if (control_transitions & tx0_restart)
{ {
device->machine().device("maincpu")->state().set_state_int(TX0_RUN, 1); machine().device("maincpu")->state().set_state_int(TX0_RUN, 1);
device->machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0); machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0);
} }
if (control_transitions & tx0_read_in) if (control_transitions & tx0_read_in)
{ /* set cpu to read instructions from perforated tape */ { /* set cpu to read instructions from perforated tape */
device->machine().device("maincpu")->state().set_state_int(TX0_RESET, (UINT64)0); machine().device("maincpu")->state().set_state_int(TX0_RESET, (UINT64)0);
device->machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0); machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0);
device->machine().device("maincpu")->state().set_state_int(TX0_RIM, 1); machine().device("maincpu")->state().set_state_int(TX0_RIM, 1);
} }
if (control_transitions & tx0_toggle_dn) if (control_transitions & tx0_toggle_dn)
{ {
state->m_tsr_index++; m_tsr_index++;
if (state->m_tsr_index == 18) if (m_tsr_index == 18)
state->m_tsr_index = 0; m_tsr_index = 0;
} }
if (control_transitions & tx0_toggle_up) if (control_transitions & tx0_toggle_up)
{ {
state->m_tsr_index--; m_tsr_index--;
if (state->m_tsr_index == -1) if (m_tsr_index == -1)
state->m_tsr_index = 17; m_tsr_index = 17;
} }
if (control_transitions & tx0_cm_sel) if (control_transitions & tx0_cm_sel)
{ {
if (state->m_tsr_index >= 2) if (m_tsr_index >= 2)
{ {
UINT32 cm_sel = (UINT32) device->machine().device("maincpu")->state().state_int(TX0_CM_SEL); UINT32 cm_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_CM_SEL);
device->machine().device("maincpu")->state().set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (state->m_tsr_index - 2))); machine().device("maincpu")->state().set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (m_tsr_index - 2)));
} }
} }
if (control_transitions & tx0_lr_sel) if (control_transitions & tx0_lr_sel)
{ {
if (state->m_tsr_index >= 2) if (m_tsr_index >= 2)
{ {
UINT32 lr_sel = (UINT32) device->machine().device("maincpu")->state().state_int(TX0_LR_SEL); UINT32 lr_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_LR_SEL);
device->machine().device("maincpu")->state().set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (state->m_tsr_index - 2)))); machine().device("maincpu")->state().set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (m_tsr_index - 2))));
} }
} }
/* remember new state of control keys */ /* remember new state of control keys */
state->m_old_control_keys = control_keys; m_old_control_keys = control_keys;
/* handle toggle switch register keys */ /* handle toggle switch register keys */
tsr_keys = (device->machine().root_device().ioport("MSW")->read() << 16) | device->machine().root_device().ioport("LSW")->read(); tsr_keys = (machine().root_device().ioport("MSW")->read() << 16) | machine().root_device().ioport("LSW")->read();
/* compute transitions */ /* compute transitions */
tsr_transitions = tsr_keys & (~ state->m_old_tsr_keys); tsr_transitions = tsr_keys & (~ m_old_tsr_keys);
/* update toggle switch register */ /* update toggle switch register */
if (tsr_transitions) if (tsr_transitions)
device->machine().device("maincpu")->state().set_state_int(TX0_TBR+state->m_tsr_index, device->machine().device("maincpu")->state().state_int(TX0_TBR+state->m_tsr_index) ^ tsr_transitions); machine().device("maincpu")->state().set_state_int(TX0_TBR+m_tsr_index, machine().device("maincpu")->state().state_int(TX0_TBR+m_tsr_index) ^ tsr_transitions);
/* remember new state of toggle switch register keys */ /* remember new state of toggle switch register keys */
state->m_old_tsr_keys = tsr_keys; m_old_tsr_keys = tsr_keys;
} }
else else
{ {
state->m_old_control_keys = 0; m_old_control_keys = 0;
state->m_old_tsr_keys = 0; m_old_tsr_keys = 0;
tx0_keyboard(device->machine()); tx0_keyboard(machine());
} }
} }
@ -1606,7 +1605,7 @@ static MACHINE_CONFIG_START( tx0_64kw, tx0_state )
MCFG_CPU_CONFIG(tx0_reset_param) MCFG_CPU_CONFIG(tx0_reset_param)
MCFG_CPU_PROGRAM_MAP(tx0_64kw_map) MCFG_CPU_PROGRAM_MAP(tx0_64kw_map)
/* dummy interrupt: handles input */ /* dummy interrupt: handles input */
MCFG_CPU_VBLANK_INT("screen", tx0_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", tx0_state, tx0_interrupt)
/* video hardware (includes the control panel and typewriter output) */ /* video hardware (includes the control panel and typewriter output) */

View File

@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( vc4000, vc4000_state )
MCFG_CPU_ADD("maincpu", S2650, 3546875/4) MCFG_CPU_ADD("maincpu", S2650, 3546875/4)
MCFG_CPU_PROGRAM_MAP(vc4000_mem) MCFG_CPU_PROGRAM_MAP(vc4000_mem)
MCFG_CPU_IO_MAP(vc4000_io) MCFG_CPU_IO_MAP(vc4000_io)
MCFG_CPU_PERIODIC_INT(vc4000_video_line, 312*53) // GOLF needs this exact value MCFG_CPU_PERIODIC_INT_DRIVER(vc4000_state, vc4000_video_line, 312*53) // GOLF needs this exact value
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -163,7 +163,7 @@ static MACHINE_CONFIG_START( vector06, vector06_state )
// MCFG_CPU_ADD("maincpu", Z80, 3000000) // MCFG_CPU_ADD("maincpu", Z80, 3000000)
MCFG_CPU_PROGRAM_MAP(vector06_mem) MCFG_CPU_PROGRAM_MAP(vector06_mem)
MCFG_CPU_IO_MAP(vector06_io) MCFG_CPU_IO_MAP(vector06_io)
MCFG_CPU_VBLANK_INT("screen", vector06_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", vector06_state, vector06_interrupt)
/* video hardware */ /* video hardware */

View File

@ -202,9 +202,9 @@ INPUT_PORTS_END
// vic2_interface vic_intf // vic2_interface vic_intf
//------------------------------------------------- //-------------------------------------------------
static INTERRUPT_GEN( vic10_frame_interrupt ) INTERRUPT_GEN_MEMBER(vic10_state::vic10_frame_interrupt)
{ {
cbm_common_interrupt(device); cbm_common_interrupt(&device);
} }
READ8_MEMBER( vic10_state::vic_lightpen_x_cb ) READ8_MEMBER( vic10_state::vic_lightpen_x_cb )
@ -614,7 +614,7 @@ static MACHINE_CONFIG_START( vic10, vic10_state )
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6566_CLOCK) MCFG_CPU_ADD(M6510_TAG, M6510, VIC6566_CLOCK)
MCFG_CPU_PROGRAM_MAP(vic10_mem) MCFG_CPU_PROGRAM_MAP(vic10_mem)
MCFG_CPU_CONFIG(cpu_intf) MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_VBLANK_INT(SCREEN_TAG, vic10_frame_interrupt) MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, vic10_state, vic10_frame_interrupt)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware // video hardware

View File

@ -308,10 +308,9 @@ READ8_MEMBER( vic20_state::vic_videoram_r )
// VIDEO // VIDEO
//************************************************************************** //**************************************************************************
static INTERRUPT_GEN( vic20_raster_interrupt ) INTERRUPT_GEN_MEMBER(vic20_state::vic20_raster_interrupt)
{ {
vic20_state *state = device->machine().driver_data<vic20_state>(); m_vic->raster_interrupt_gen();
state->m_vic->raster_interrupt_gen();
} }
@ -756,7 +755,7 @@ static MACHINE_CONFIG_DERIVED( ntsc, vic20 )
// basic machine hardware // basic machine hardware
MCFG_CPU_ADD(M6502_TAG, M6502, MOS6560_CLOCK) MCFG_CPU_ADD(M6502_TAG, M6502, MOS6560_CLOCK)
MCFG_CPU_PROGRAM_MAP(vic20_mem) MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_CPU_PERIODIC_INT(vic20_raster_interrupt, MOS656X_HRETRACERATE) MCFG_CPU_PERIODIC_INT_DRIVER(vic20_state, vic20_raster_interrupt, MOS656X_HRETRACERATE)
// video/sound hardware // video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -782,7 +781,7 @@ static MACHINE_CONFIG_DERIVED( pal, vic20 )
// basic machine hardware // basic machine hardware
MCFG_CPU_ADD(M6502_TAG, M6502, MOS6561_CLOCK) MCFG_CPU_ADD(M6502_TAG, M6502, MOS6561_CLOCK)
MCFG_CPU_PROGRAM_MAP(vic20_mem) MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_CPU_PERIODIC_INT(vic20_raster_interrupt, MOS656X_HRETRACERATE) MCFG_CPU_PERIODIC_INT_DRIVER(vic20_state, vic20_raster_interrupt, MOS656X_HRETRACERATE)
// video/sound hardware // video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -140,6 +140,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vii_vblank);
}; };
enum enum
@ -1021,71 +1022,70 @@ void vii_state::machine_reset()
{ {
} }
static INTERRUPT_GEN( vii_vblank ) INTERRUPT_GEN_MEMBER(vii_state::vii_vblank)
{ {
vii_state *state = device->machine().driver_data<vii_state>(); UINT32 x = machine().rand() & 0x3ff;
UINT32 x = device->machine().rand() & 0x3ff; UINT32 y = machine().rand() & 0x3ff;
UINT32 y = device->machine().rand() & 0x3ff; UINT32 z = machine().rand() & 0x3ff;
UINT32 z = device->machine().rand() & 0x3ff;
state->m_controller_input[0] = state->ioport("P1")->read(); m_controller_input[0] = ioport("P1")->read();
state->m_controller_input[1] = (UINT8)x; m_controller_input[1] = (UINT8)x;
state->m_controller_input[2] = (UINT8)y; m_controller_input[2] = (UINT8)y;
state->m_controller_input[3] = (UINT8)z; m_controller_input[3] = (UINT8)z;
state->m_controller_input[4] = 0; m_controller_input[4] = 0;
x >>= 8; x >>= 8;
y >>= 8; y >>= 8;
z >>= 8; z >>= 8;
state->m_controller_input[5] = (z << 4) | (y << 2) | x; m_controller_input[5] = (z << 4) | (y << 2) | x;
state->m_controller_input[6] = 0xff; m_controller_input[6] = 0xff;
state->m_controller_input[7] = 0; m_controller_input[7] = 0;
state->m_uart_rx_count = 0; m_uart_rx_count = 0;
state->VII_VIDEO_IRQ_STATUS = state->VII_VIDEO_IRQ_ENABLE & 1; VII_VIDEO_IRQ_STATUS = VII_VIDEO_IRQ_ENABLE & 1;
if(state->VII_VIDEO_IRQ_STATUS) if(VII_VIDEO_IRQ_STATUS)
{ {
verboselog(device->machine(), 0, "Video IRQ\n"); verboselog(machine(), 0, "Video IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE);
} }
// { // {
// verboselog(device->machine(), 0, "audio 1 IRQ\n"); // verboselog(machine(), 0, "audio 1 IRQ\n");
// device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ1_LINE, ASSERT_LINE); // machine().device("maincpu")->execute().set_input_line(UNSP_IRQ1_LINE, ASSERT_LINE);
// } // }
if(state->m_io_regs[0x22] & state->m_io_regs[0x21] & 0x0c00) if(m_io_regs[0x22] & m_io_regs[0x21] & 0x0c00)
{ {
verboselog(device->machine(), 0, "timerA, timer B IRQ\n"); verboselog(machine(), 0, "timerA, timer B IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ2_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ2_LINE, ASSERT_LINE);
} }
//if(state->m_io_regs[0x22] & state->m_io_regs[0x21] & 0x2100) //if(m_io_regs[0x22] & m_io_regs[0x21] & 0x2100)
// For now trigger always if any enabled // For now trigger always if any enabled
if(state->VII_CTLR_IRQ_ENABLE) if(VII_CTLR_IRQ_ENABLE)
{ {
verboselog(device->machine(), 0, "UART, ADC IRQ\n"); verboselog(machine(), 0, "UART, ADC IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE);
} }
// { // {
// verboselog(device->machine(), 0, "audio 4 IRQ\n"); // verboselog(machine(), 0, "audio 4 IRQ\n");
// device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ4_LINE, ASSERT_LINE); // machine().device("maincpu")->execute().set_input_line(UNSP_IRQ4_LINE, ASSERT_LINE);
// } // }
if(state->m_io_regs[0x22] & state->m_io_regs[0x21] & 0x1200) if(m_io_regs[0x22] & m_io_regs[0x21] & 0x1200)
{ {
verboselog(device->machine(), 0, "External IRQ\n"); verboselog(machine(), 0, "External IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ5_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ5_LINE, ASSERT_LINE);
} }
if(state->m_io_regs[0x22] & state->m_io_regs[0x21] & 0x0070) if(m_io_regs[0x22] & m_io_regs[0x21] & 0x0070)
{ {
verboselog(device->machine(), 0, "1024Hz, 2048HZ, 4096HZ IRQ\n"); verboselog(machine(), 0, "1024Hz, 2048HZ, 4096HZ IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ6_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ6_LINE, ASSERT_LINE);
} }
if(state->m_io_regs[0x22] & state->m_io_regs[0x21] & 0x008b) if(m_io_regs[0x22] & m_io_regs[0x21] & 0x008b)
{ {
verboselog(device->machine(), 0, "TMB1, TMB2, 4Hz, key change IRQ\n"); verboselog(machine(), 0, "TMB1, TMB2, 4Hz, key change IRQ\n");
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ7_LINE, ASSERT_LINE); machine().device("maincpu")->execute().set_input_line(UNSP_IRQ7_LINE, ASSERT_LINE);
} }
} }
@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( vii, vii_state )
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
MCFG_CPU_PROGRAM_MAP( vii_mem ) MCFG_CPU_PROGRAM_MAP( vii_mem )
MCFG_CPU_VBLANK_INT("screen", vii_vblank) MCFG_CPU_VBLANK_INT_DRIVER("screen", vii_state, vii_vblank)
MCFG_SCREEN_ADD( "screen", RASTER ) MCFG_SCREEN_ADD( "screen", RASTER )
@ -1116,7 +1116,7 @@ static MACHINE_CONFIG_START( vsmile, vii_state )
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
MCFG_CPU_PROGRAM_MAP( vii_mem ) MCFG_CPU_PROGRAM_MAP( vii_mem )
MCFG_CPU_VBLANK_INT("screen", vii_vblank) MCFG_CPU_VBLANK_INT_DRIVER("screen", vii_state, vii_vblank)
MCFG_SCREEN_ADD( "screen", RASTER ) MCFG_SCREEN_ADD( "screen", RASTER )
@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_START( batman, vii_state )
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
MCFG_CPU_PROGRAM_MAP( vii_mem ) MCFG_CPU_PROGRAM_MAP( vii_mem )
MCFG_CPU_VBLANK_INT("screen", vii_vblank) MCFG_CPU_VBLANK_INT_DRIVER("screen", vii_state, vii_vblank)
MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface) MCFG_I2CMEM_ADD("i2cmem",i2cmem_interface)

View File

@ -57,6 +57,7 @@ public:
virtual void machine_start(); virtual void machine_start();
virtual void machine_reset(); virtual void machine_reset();
UINT32 screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vt100_vertical_interrupt);
}; };
@ -379,11 +380,10 @@ static const vt_video_interface vt100_video_interface =
DEVCB_DRIVER_MEMBER(vt100_state, vt100_clear_video_interrupt) DEVCB_DRIVER_MEMBER(vt100_state, vt100_clear_video_interrupt)
}; };
static INTERRUPT_GEN( vt100_vertical_interrupt ) INTERRUPT_GEN_MEMBER(vt100_state::vt100_vertical_interrupt)
{ {
vt100_state *state = device->machine().driver_data<vt100_state>(); m_vertical_int = 1;
state->m_vertical_int = 1; device.execute().set_input_line(0, HOLD_LINE);
device->execute().set_input_line(0, HOLD_LINE);
} }
/* F4 Character Displayer */ /* F4 Character Displayer */
@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( vt100, vt100_state )
MCFG_CPU_ADD("maincpu",I8080, XTAL_24_8832MHz / 9) MCFG_CPU_ADD("maincpu",I8080, XTAL_24_8832MHz / 9)
MCFG_CPU_PROGRAM_MAP(vt100_mem) MCFG_CPU_PROGRAM_MAP(vt100_mem)
MCFG_CPU_IO_MAP(vt100_io) MCFG_CPU_IO_MAP(vt100_io)
MCFG_CPU_VBLANK_INT("screen", vt100_vertical_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", vt100_state, vt100_vertical_interrupt)
/* video hardware */ /* video hardware */

View File

@ -47,6 +47,7 @@ public:
required_shared_ptr<UINT8> m_video_ram; required_shared_ptr<UINT8> m_video_ram;
DECLARE_DRIVER_INIT(vt240); DECLARE_DRIVER_INIT(vt240);
virtual void machine_reset(); virtual void machine_reset();
INTERRUPT_GEN_MEMBER(vt240_irq);
}; };
/* TODO */ /* TODO */
@ -140,9 +141,9 @@ static UPD7220_INTERFACE( hgdc_intf )
DEVCB_NULL DEVCB_NULL
}; };
static INTERRUPT_GEN( vt240_irq ) INTERRUPT_GEN_MEMBER(vt240_state::vt240_irq)
{ {
//device->execute().set_input_line(I8085_RST65_LINE, ASSERT_LINE); //device.execute().set_input_line(I8085_RST65_LINE, ASSERT_LINE);
} }
static const gfx_layout vt240_chars_8x8 = static const gfx_layout vt240_chars_8x8 =
@ -165,7 +166,7 @@ static MACHINE_CONFIG_START( vt240, vt240_state )
MCFG_CPU_ADD("maincpu", I8085A, XTAL_16MHz / 4) MCFG_CPU_ADD("maincpu", I8085A, XTAL_16MHz / 4)
MCFG_CPU_PROGRAM_MAP(vt240_mem) MCFG_CPU_PROGRAM_MAP(vt240_mem)
MCFG_CPU_IO_MAP(vt240_io) MCFG_CPU_IO_MAP(vt240_io)
MCFG_CPU_VBLANK_INT("screen",vt240_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", vt240_state, vt240_irq)
/* video hardware */ /* video hardware */

View File

@ -398,9 +398,9 @@ void vtech2_state::palette_init()
colortable_entry_set_value(machine().colortable, 512+i, i); colortable_entry_set_value(machine().colortable, 512+i, i);
} }
static INTERRUPT_GEN( vtech2_interrupt ) INTERRUPT_GEN_MEMBER(vtech2_state::vtech2_interrupt)
{ {
device->machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE);
} }
static const cassette_interface laser_cassette_interface = static const cassette_interface laser_cassette_interface =
@ -430,7 +430,7 @@ static MACHINE_CONFIG_START( laser350, vtech2_state )
MCFG_CPU_ADD("maincpu", Z80, 3694700) /* 3.694700 MHz */ MCFG_CPU_ADD("maincpu", Z80, 3694700) /* 3.694700 MHz */
MCFG_CPU_PROGRAM_MAP(vtech2_mem) MCFG_CPU_PROGRAM_MAP(vtech2_mem)
MCFG_CPU_IO_MAP(vtech2_io) MCFG_CPU_IO_MAP(vtech2_io)
MCFG_CPU_VBLANK_INT("screen", vtech2_interrupt) MCFG_CPU_VBLANK_INT_DRIVER("screen", vtech2_state, vtech2_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))

View File

@ -1895,22 +1895,22 @@ static WRITE_LINE_DEVICE_HANDLER( mfp_irq_callback )
drvstate->m_mfp_prev = state; drvstate->m_mfp_prev = state;
} }
static INTERRUPT_GEN( x68k_vsync_irq ) INTERRUPT_GEN_MEMBER(x68k_state::x68k_vsync_irq)
{ {
#if 0 #if 0
x68k_state *state = machine.driver_data<x68k_state>(); x68k_state *state = machine.driver_data<x68k_state>();
if(state->m_mfp.ierb & 0x40) if(m_mfp.ierb & 0x40)
{ {
state->m_mfp.isrb |= 0x40; m_mfp.isrb |= 0x40;
state->m_current_vector[6] = (state->m_mfp.vr & 0xf0) | 0x06; // GPIP4 (V-DISP) m_current_vector[6] = (m_mfp.vr & 0xf0) | 0x06; // GPIP4 (V-DISP)
state->m_current_irq_line = 6; m_current_irq_line = 6;
mfp_timer_a_callback(0); // Timer A is usually always in event count mode, and is tied to V-DISP mfp_timer_a_callback(0); // Timer A is usually always in event count mode, and is tied to V-DISP
mfp_trigger_irq(MFP_IRQ_GPIP4); mfp_trigger_irq(MFP_IRQ_GPIP4);
} }
if(state->m_crtc.height == 256) if(m_crtc.height == 256)
machine.primary_screen->update_partial(256);//state->m_crtc.reg[4]/2); machine.primary_screen->update_partial(256);//m_crtc.reg[4]/2);
else else
machine.primary_screen->update_partial(512);//state->m_crtc.reg[4]); machine.primary_screen->update_partial(512);//m_crtc.reg[4]);
#endif #endif
} }
@ -2741,7 +2741,7 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */
MCFG_CPU_PROGRAM_MAP(x68k_map) MCFG_CPU_PROGRAM_MAP(x68k_map)
MCFG_CPU_VBLANK_INT("screen", x68k_vsync_irq) MCFG_CPU_VBLANK_INT_DRIVER("screen", x68k_state, x68k_vsync_irq)
MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_MACHINE_START_OVERRIDE(x68k_state, x68000 ) MCFG_MACHINE_START_OVERRIDE(x68k_state, x68000 )

View File

@ -60,6 +60,7 @@ public:
DECLARE_MACHINE_RESET(apple3); DECLARE_MACHINE_RESET(apple3);
DECLARE_VIDEO_START(apple3); DECLARE_VIDEO_START(apple3);
UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(apple3_interrupt);
}; };
@ -69,9 +70,6 @@ extern const applefdc_interface apple3_fdc_interface;
extern const via6522_interface apple3_via_0_intf; extern const via6522_interface apple3_via_0_intf;
extern const via6522_interface apple3_via_1_intf; extern const via6522_interface apple3_via_1_intf;
INTERRUPT_GEN( apple3_interrupt );
/*----------- defined in video/apple3.c -----------*/ /*----------- defined in video/apple3.c -----------*/
void apple3_write_charmem(running_machine &machine); void apple3_write_charmem(running_machine &machine);

View File

@ -81,7 +81,6 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(arcadia_video_line);
}; };
extern INTERRUPT_GEN( arcadia_video_line );
#endif /* ARCADIA_H_ */ #endif /* ARCADIA_H_ */

View File

@ -49,6 +49,7 @@ public:
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(b2m_vblank_interrupt);
}; };
/*----------- defined in machine/b2m.c -----------*/ /*----------- defined in machine/b2m.c -----------*/
@ -60,6 +61,4 @@ extern const i8255_interface b2m_ppi8255_interface_1;
extern const i8255_interface b2m_ppi8255_interface_2; extern const i8255_interface b2m_ppi8255_interface_2;
extern const i8255_interface b2m_ppi8255_interface_3; extern const i8255_interface b2m_ppi8255_interface_3;
extern INTERRUPT_GEN( b2m_vblank_interrupt );
#endif #endif

View File

@ -282,6 +282,9 @@ public:
DECLARE_MACHINE_RESET(bbcbp); DECLARE_MACHINE_RESET(bbcbp);
DECLARE_VIDEO_START(bbcbp); DECLARE_VIDEO_START(bbcbp);
UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(bbcb_vsync);
INTERRUPT_GEN_MEMBER(bbcb_keyscan);
INTERRUPT_GEN_MEMBER(bbcm_keyscan);
}; };
@ -295,9 +298,6 @@ extern const via6522_interface bbcb_system_via;
extern const via6522_interface bbcb_user_via; extern const via6522_interface bbcb_user_via;
extern const wd17xx_interface bbc_wd17xx_interface; extern const wd17xx_interface bbc_wd17xx_interface;
INTERRUPT_GEN( bbcb_keyscan );
INTERRUPT_GEN( bbcm_keyscan );
/* disc support */ /* disc support */
DEVICE_IMAGE_LOAD ( bbcb_cart ); DEVICE_IMAGE_LOAD ( bbcb_cart );

View File

@ -220,13 +220,12 @@ public:
DECLARE_DRIVER_INIT(c128d); DECLARE_DRIVER_INIT(c128d);
DECLARE_DRIVER_INIT(c128); DECLARE_DRIVER_INIT(c128);
DECLARE_DRIVER_INIT(c128d81); DECLARE_DRIVER_INIT(c128d81);
INTERRUPT_GEN_MEMBER(c128_frame_interrupt);
}; };
/*----------- defined in machine/c128.c -----------*/ /*----------- defined in machine/c128.c -----------*/
extern INTERRUPT_GEN( c128_frame_interrupt );
extern const mos6526_interface c128_cia1_intf, c128_cia2_intf; extern const mos6526_interface c128_cia1_intf, c128_cia2_intf;
#endif /* __C128_H__ */ #endif /* __C128_H__ */

View File

@ -75,8 +75,6 @@ extern void c16_interrupt(running_machine &machine, int level);
extern int c16_dma_read(running_machine &machine, int offset); extern int c16_dma_read(running_machine &machine, int offset);
extern int c16_dma_read_rom(running_machine &machine, int offset); extern int c16_dma_read_rom(running_machine &machine, int offset);
extern INTERRUPT_GEN( c16_frame_interrupt );
MACHINE_CONFIG_EXTERN( c16_cartslot ); MACHINE_CONFIG_EXTERN( c16_cartslot );
#endif /* __C16_H__ */ #endif /* __C16_H__ */

View File

@ -142,6 +142,7 @@ public:
int m_cass_rd; int m_cass_rd;
int m_iec_srq; int m_iec_srq;
DECLARE_DRIVER_INIT(c64pal); DECLARE_DRIVER_INIT(c64pal);
INTERRUPT_GEN_MEMBER(c64_frame_interrupt);
}; };

View File

@ -90,6 +90,7 @@ public:
DECLARE_DRIVER_INIT( ultimax ); DECLARE_DRIVER_INIT( ultimax );
DECLARE_DRIVER_INIT( c64gs ); DECLARE_DRIVER_INIT( c64gs );
DECLARE_DRIVER_INIT( sx64 ); DECLARE_DRIVER_INIT( sx64 );
INTERRUPT_GEN_MEMBER(c64_frame_interrupt);
}; };
@ -105,7 +106,6 @@ DECLARE_WRITE8_HANDLER ( c64_colorram_write );
MACHINE_START( c64 ); MACHINE_START( c64 );
MACHINE_RESET( c64 ); MACHINE_RESET( c64 );
INTERRUPT_GEN( c64_frame_interrupt );
TIMER_CALLBACK( c64_tape_timer ); TIMER_CALLBACK( c64_tape_timer );
/* private area */ /* private area */

View File

@ -65,6 +65,8 @@ public:
DECLARE_MACHINE_START(c65); DECLARE_MACHINE_START(c65);
DECLARE_PALETTE_INIT(c65); DECLARE_PALETTE_INIT(c65);
UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vic3_raster_irq);
INTERRUPT_GEN_MEMBER(c65_frame_interrupt);
}; };
@ -85,9 +87,6 @@ int c65_dma_read_color(running_machine &machine, int offset);
void c65_vic_interrupt(running_machine &machine, int level); void c65_vic_interrupt(running_machine &machine, int level);
void c65_bankswitch_interface(running_machine &machine, int value); void c65_bankswitch_interface(running_machine &machine, int value);
INTERRUPT_GEN( c65_frame_interrupt );
extern const mos6526_interface c65_cia0; extern const mos6526_interface c65_cia0;
extern const mos6526_interface c65_cia1; extern const mos6526_interface c65_cia1;

View File

@ -71,6 +71,8 @@ public:
DECLARE_PALETTE_INIT(cgenie); DECLARE_PALETTE_INIT(cgenie);
DECLARE_PALETTE_INIT(cgenienz); DECLARE_PALETTE_INIT(cgenienz);
UINT32 screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(cgenie_timer_interrupt);
INTERRUPT_GEN_MEMBER(cgenie_frame_interrupt);
}; };
@ -100,9 +102,6 @@ DECLARE_WRITE8_HANDLER ( cgenie_port_ff_w );
DECLARE_READ8_HANDLER ( cgenie_port_ff_r ); DECLARE_READ8_HANDLER ( cgenie_port_ff_r );
int cgenie_port_xx_r(int offset); int cgenie_port_xx_r(int offset);
INTERRUPT_GEN( cgenie_timer_interrupt );
INTERRUPT_GEN( cgenie_frame_interrupt );
DECLARE_READ8_HANDLER ( cgenie_status_r ); DECLARE_READ8_HANDLER ( cgenie_status_r );
DECLARE_READ8_HANDLER ( cgenie_track_r ); DECLARE_READ8_HANDLER ( cgenie_track_r );
DECLARE_READ8_HANDLER ( cgenie_sector_r ); DECLARE_READ8_HANDLER ( cgenie_sector_r );

View File

@ -187,6 +187,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void palette_init(); virtual void palette_init();
UINT32 screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(compis_vblank_int);
}; };
@ -200,6 +201,4 @@ extern const struct pic8259_interface compis_pic8259_slave_config;
extern const i8251_interface compis_usart_interface; extern const i8251_interface compis_usart_interface;
extern const upd765_interface compis_fdc_interface; extern const upd765_interface compis_fdc_interface;
INTERRUPT_GEN(compis_vblank_int);
#endif /* COMPIS_H_ */ #endif /* COMPIS_H_ */

View File

@ -56,6 +56,7 @@ public:
virtual void machine_start(); virtual void machine_start();
virtual void video_start(); virtual void video_start();
UINT32 screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(concept_interrupt);
}; };
@ -64,7 +65,4 @@ public:
extern const via6522_interface concept_via6522_intf; extern const via6522_interface concept_via6522_intf;
extern const wd17xx_interface concept_wd17xx_interface; extern const wd17xx_interface concept_wd17xx_interface;
INTERRUPT_GEN( concept_interrupt );
#endif /* CONCEPT_H_ */ #endif /* CONCEPT_H_ */

View File

@ -274,6 +274,8 @@ class towns_state : public driver_device
void poll_keyboard(); void poll_keyboard();
void mouse_timeout(); void mouse_timeout();
void wait_end(); void wait_end();
public:
INTERRUPT_GEN_MEMBER(towns_vsync_irq);
}; };
class marty_state : public towns_state class marty_state : public towns_state
@ -286,8 +288,4 @@ class marty_state : public towns_state
virtual void driver_start(); virtual void driver_start();
}; };
INTERRUPT_GEN( towns_vsync_irq );
//VIDEO_START( towns );
//SCREEN_UPDATE_RGB32( towns );
#endif /*FMTOWNS_H_*/ #endif /*FMTOWNS_H_*/

View File

@ -32,11 +32,11 @@ public:
DECLARE_MACHINE_RESET(galaxy); DECLARE_MACHINE_RESET(galaxy);
DECLARE_MACHINE_RESET(galaxyp); DECLARE_MACHINE_RESET(galaxyp);
UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(galaxy_interrupt);
}; };
/*----------- defined in machine/galaxy.c -----------*/ /*----------- defined in machine/galaxy.c -----------*/
INTERRUPT_GEN( galaxy_interrupt );
SNAPSHOT_LOAD( galaxy ); SNAPSHOT_LOAD( galaxy );
/*----------- defined in video/galaxy.c -----------*/ /*----------- defined in video/galaxy.c -----------*/

View File

@ -243,6 +243,7 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void video_start(); virtual void video_start();
virtual void palette_init(); virtual void palette_init();
INTERRUPT_GEN_MEMBER(gamecom_interrupt);
}; };

View File

@ -245,6 +245,7 @@ public:
DECLARE_PALETTE_INIT(gbc); DECLARE_PALETTE_INIT(gbc);
DECLARE_MACHINE_START(gb_video); DECLARE_MACHINE_START(gb_video);
DECLARE_MACHINE_START(gbc_video); DECLARE_MACHINE_START(gbc_video);
INTERRUPT_GEN_MEMBER(gb_scanline_interrupt);
}; };
@ -252,7 +253,6 @@ public:
DEVICE_START(gb_cart); DEVICE_START(gb_cart);
DEVICE_IMAGE_LOAD(gb_cart); DEVICE_IMAGE_LOAD(gb_cart);
INTERRUPT_GEN( gb_scanline_interrupt );
void gb_timer_callback(lr35902_cpu_device *device, int cycles); void gb_timer_callback(lr35902_cpu_device *device, int cycles);

Some files were not shown because too many files have changed in this diff Show More