mirror of
https://github.com/holub/mame
synced 2025-06-27 06:39:03 +03:00
INTERRUPT_GEN -> INTERRUPT_GEN_MEMBER for MESS part (no whatsnew)
This commit is contained in:
parent
3ac43e0187
commit
a1b116c06f
@ -66,7 +66,7 @@ static MACHINE_CONFIG_START( alphasmart, alphasmart_state )
|
||||
MCFG_CPU_PROGRAM_MAP(alphasmart_mem)
|
||||
MCFG_CPU_IO_MAP(alphasmart_io)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
|
@ -32,6 +32,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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
|
||||
*/
|
||||
static INTERRUPT_GEN( apexc_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(apexc_state::apexc_interrupt)
|
||||
{
|
||||
apexc_state *state = device->machine().driver_data<apexc_state>();
|
||||
address_space& space = *device->machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
address_space& space = *machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
UINT32 edit_keys;
|
||||
int control_keys;
|
||||
|
||||
@ -406,26 +406,26 @@ static INTERRUPT_GEN( apexc_interrupt )
|
||||
|
||||
|
||||
/* 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 */
|
||||
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 */
|
||||
state->m_old_edit_keys = edit_keys;
|
||||
m_old_edit_keys = edit_keys;
|
||||
|
||||
|
||||
/* read new state of control keys */
|
||||
control_keys = state->ioport("panel")->read();
|
||||
control_keys = ioport("panel")->read();
|
||||
|
||||
/* compute transitions */
|
||||
control_transitions = control_keys & (~state->m_old_control_keys);
|
||||
control_transitions = control_keys & (~m_old_control_keys);
|
||||
|
||||
/* process commands */
|
||||
|
||||
if (control_transitions & panel_run)
|
||||
{ /* 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))
|
||||
@ -467,10 +467,10 @@ static INTERRUPT_GEN( apexc_interrupt )
|
||||
/* read/write register #reg_id */
|
||||
if (control_keys & panel_write)
|
||||
/* 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
|
||||
/* 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) {
|
||||
/* 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 {
|
||||
/* 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 */
|
||||
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_IO_MAP(apexc_io_map)
|
||||
/* 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)*/
|
||||
|
||||
|
||||
|
@ -71,7 +71,7 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
|
||||
MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(apple3_map)
|
||||
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_MACHINE_RESET_OVERRIDE(apple3_state, apple3 )
|
||||
|
@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) // ???
|
||||
MCFG_CPU_PROGRAM_MAP(aquarius_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -530,7 +530,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_state )
|
||||
MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(arcadia_mem)
|
||||
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))
|
||||
|
||||
/* video hardware */
|
||||
|
@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( b2m, b2m_state )
|
||||
MCFG_CPU_ADD("maincpu", I8080, 2000000)
|
||||
MCFG_CPU_PROGRAM_MAP(b2m_mem)
|
||||
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 */
|
||||
|
@ -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(0);
|
||||
}
|
||||
@ -841,8 +841,8 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2.00 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP( bbca_mem)
|
||||
MCFG_CPU_VBLANK_INT("screen", bbcb_vsync) /* screen refresh interrupts */
|
||||
MCFG_CPU_PERIODIC_INT(bbcb_keyscan, 1000) /* scan keyboard */
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync) /* screen refresh interrupts */
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcb_keyscan, 1000) /* scan keyboard */
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbca )
|
||||
@ -933,8 +933,8 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M65SC02, 2000000) /* 2.00 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP( bbcm_mem)
|
||||
MCFG_CPU_VBLANK_INT("screen", bbcb_vsync) /* screen refresh interrupts */
|
||||
MCFG_CPU_PERIODIC_INT(bbcm_keyscan, 1000) /* scan keyboard */
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync) /* screen refresh interrupts */
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcm_keyscan, 1000) /* scan keyboard */
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcm )
|
||||
|
@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( bmjr, bmjr_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",M6800, XTAL_4MHz/4) //unknown clock / divider
|
||||
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 */
|
||||
|
@ -113,6 +113,8 @@ protected:
|
||||
virtual void palette_init();
|
||||
public:
|
||||
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])
|
||||
@ -600,21 +602,20 @@ static TIMER_DEVICE_CALLBACK( keyboard_callback )
|
||||
}
|
||||
|
||||
#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
|
||||
|
||||
|
||||
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);
|
||||
state->m_firq_status = 1;
|
||||
m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
|
||||
m_firq_status = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -889,8 +890,8 @@ static MACHINE_CONFIG_START( bml3, bml3_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",M6809, XTAL_1MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(bml3_mem)
|
||||
MCFG_CPU_VBLANK_INT("screen", bml3_timer_firq )
|
||||
// MCFG_CPU_PERIODIC_INT(bml3_firq,45)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", bml3_state, bml3_timer_firq)
|
||||
// MCFG_CPU_PERIODIC_INT_DRIVER(bml3_state, bml3_firq, 45)
|
||||
|
||||
// MCFG_MACHINE_RESET_OVERRIDE(bml3_state,bml3)
|
||||
|
||||
|
@ -1085,13 +1085,13 @@ static MACHINE_CONFIG_START( ntsc, c128_state )
|
||||
MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6567_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP( z80_mem)
|
||||
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_CPU_ADD(M8502_TAG, M8502, VIC6567_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP( m8502_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
@ -1192,13 +1192,13 @@ static MACHINE_CONFIG_START( pal, c128_state )
|
||||
MCFG_CPU_ADD(Z80A_TAG, Z80, VIC6569_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP( z80_mem)
|
||||
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_CPU_ADD(M8502_TAG, M8502, VIC6569_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP( m8502_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
|
@ -373,12 +373,11 @@ INPUT_PORTS_END
|
||||
// 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();
|
||||
cbm_common_interrupt(device);
|
||||
check_interrupts();
|
||||
cbm_common_interrupt(&device);
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(c64_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
@ -1090,7 +1089,7 @@ static MACHINE_CONFIG_START( pal, c64_state )
|
||||
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(c64_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
@ -1167,7 +1166,7 @@ static MACHINE_CONFIG_START( pal_gs, c64gs_state )
|
||||
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(c64_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
|
@ -289,9 +289,9 @@ static const vic3_interface c65_vic3_pal_intf = {
|
||||
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);
|
||||
}
|
||||
@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( c65, c65_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M4510, 3500000) /* or VIC6567_CLOCK, */
|
||||
MCFG_CPU_PROGRAM_MAP(c65_mem)
|
||||
MCFG_CPU_VBLANK_INT("screen", c65_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT(vic3_raster_irq, VIC6567_HRETRACERATE)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", c65_state, c65_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(c65_state, vic3_raster_irq, VIC6567_HRETRACERATE)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(c65_state, c65 )
|
||||
|
||||
|
@ -498,7 +498,7 @@ static MACHINE_CONFIG_START( p500, cbmb_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6509, VIC6567_CLOCK) /* 7.8336 MHz */
|
||||
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 )
|
||||
|
||||
|
@ -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_PROGRAM_MAP(cgenie_mem)
|
||||
MCFG_CPU_IO_MAP(cgenie_io)
|
||||
MCFG_CPU_VBLANK_INT("screen", cgenie_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT(cgenie_timer_interrupt, 40)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cgenie_state, cgenie_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(cgenie_state, cgenie_timer_interrupt, 40)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(240))
|
||||
|
||||
|
||||
|
@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( compis, compis_state )
|
||||
MCFG_CPU_ADD("maincpu", I80186, 8000000) /* 8 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(compis_mem)
|
||||
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_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_PROGRAM_MAP(compis_mem)
|
||||
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_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
@ -119,7 +119,7 @@ static MACHINE_CONFIG_START( concept, concept_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 8182000) /* 16.364 MHz / 2 */
|
||||
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))
|
||||
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
DECLARE_READ8_MEMBER(elwro800jr_io_r);
|
||||
DECLARE_WRITE8_MEMBER(elwro800jr_io_w);
|
||||
DECLARE_MACHINE_RESET(elwro800);
|
||||
INTERRUPT_GEN_MEMBER(elwro800jr_interrupt);
|
||||
};
|
||||
|
||||
|
||||
@ -535,9 +536,9 @@ static const cassette_interface elwro800jr_cassette_interface =
|
||||
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 =
|
||||
@ -578,7 +579,7 @@ static MACHINE_CONFIG_START( elwro800, elwro800_state )
|
||||
MCFG_CPU_ADD("maincpu",Z80, 3500000) /* 3.5 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(elwro800_mem)
|
||||
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)
|
||||
|
||||
|
@ -2670,7 +2670,7 @@ static MACHINE_CONFIG_FRAGMENT( towns_base )
|
||||
MCFG_CPU_ADD("maincpu",I386, 16000000)
|
||||
MCFG_CPU_PROGRAM_MAP(towns_mem)
|
||||
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)
|
||||
|
||||
@ -2741,7 +2741,7 @@ static MACHINE_CONFIG_DERIVED( townsux, towns )
|
||||
MCFG_CPU_REPLACE("maincpu",I386, 16000000)
|
||||
MCFG_CPU_PROGRAM_MAP(ux_mem)
|
||||
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_DEFAULT_SIZE("2M")
|
||||
@ -2753,7 +2753,7 @@ static MACHINE_CONFIG_DERIVED( townssj, towns )
|
||||
MCFG_CPU_REPLACE("maincpu",I486, 66000000)
|
||||
MCFG_CPU_PROGRAM_MAP(towns_mem)
|
||||
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_DEFAULT_SIZE("8M")
|
||||
@ -2765,7 +2765,7 @@ static MACHINE_CONFIG_DERIVED( townshr, towns )
|
||||
MCFG_CPU_REPLACE("maincpu",I486, 20000000)
|
||||
MCFG_CPU_PROGRAM_MAP(towns_mem)
|
||||
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_DEFAULT_SIZE("4M")
|
||||
@ -2778,7 +2778,7 @@ static MACHINE_CONFIG_START( marty, marty_state )
|
||||
MCFG_CPU_REPLACE("maincpu",I386, 16000000)
|
||||
MCFG_CPU_PROGRAM_MAP(marty_mem)
|
||||
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_DEFAULT_SIZE("6M")
|
||||
|
@ -115,6 +115,7 @@ public:
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
INTERRUPT_GEN_MEMBER(fp1100_vblank_irq);
|
||||
};
|
||||
|
||||
void fp1100_state::video_start()
|
||||
@ -394,12 +395,11 @@ static const mc6845_interface mc6845_intf =
|
||||
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)
|
||||
device->machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf0);
|
||||
if(irq_mask & 0x10)
|
||||
machine().device("maincpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf0);
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(fp1100_map)
|
||||
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_PROGRAM_MAP( fp1100_slave_map )
|
||||
|
@ -187,7 +187,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL / 2)
|
||||
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_REFRESH_RATE(50)
|
||||
|
||||
@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( galaxyp, galaxy_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(galaxyp_mem)
|
||||
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_REFRESH_RATE(50)
|
||||
|
||||
|
@ -89,9 +89,9 @@ UINT32 gamecom_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
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 )
|
||||
@ -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_PROGRAM_MAP( gamecom_mem_map)
|
||||
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))
|
||||
|
||||
|
@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( gb_common, gb_state )
|
||||
MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(gb_map)
|
||||
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))
|
||||
|
||||
@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( megaduck, gb_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */
|
||||
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_SCREEN_ADD("screen", LCD)
|
||||
|
@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( geniusiq, geniusiq_state )
|
||||
/* 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_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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -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 = {
|
||||
@ -221,7 +221,7 @@ static MACHINE_CONFIG_START( gmaster, gmaster_state )
|
||||
MCFG_CPU_PROGRAM_MAP(gmaster_mem)
|
||||
MCFG_CPU_IO_MAP( gmaster_io)
|
||||
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_REFRESH_RATE(60)
|
||||
|
@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( h19, h19_state )
|
||||
MCFG_CPU_ADD("maincpu",Z80, H19_CLOCK) // From schematics
|
||||
MCFG_CPU_PROGRAM_MAP(h19_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -440,7 +440,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state )
|
||||
MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(hec2hrp_mem)
|
||||
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_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_PROGRAM_MAP(hec2hrp_mem)
|
||||
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_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_PROGRAM_MAP(hec2hrx_mem)
|
||||
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 */
|
||||
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_PROGRAM_MAP(hec2hrx_mem)
|
||||
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_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_PROGRAM_MAP(hec2hrx_mem)
|
||||
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_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_PROGRAM_MAP(hec2hrx_mem)
|
||||
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_START_OVERRIDE(hec2hrp_state,hec2hrx)
|
||||
|
||||
|
@ -73,13 +73,13 @@ public:
|
||||
DECLARE_VIDEO_START(brailab4);
|
||||
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);
|
||||
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 (state->m_nmi)
|
||||
state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
|
||||
if (m_nmi)
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER( homelab_state::key_r ) // offset 27F-2FE
|
||||
@ -741,7 +741,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -39,6 +39,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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
|
||||
|
||||
|
||||
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, (state->m_irq) ? HOLD_LINE : CLEAR_LINE);
|
||||
state->m_irq ^= 1;
|
||||
device.execute().set_input_line(0, (m_irq) ? HOLD_LINE : CLEAR_LINE);
|
||||
m_irq ^= 1;
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(homez80_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( interact, interact_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", I8080, XTAL_2MHz)
|
||||
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_START_OVERRIDE(interact_state,interact)
|
||||
@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( hector1, interact_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_1_75MHz)
|
||||
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_START_OVERRIDE(interact_state,interact)
|
||||
|
@ -801,17 +801,17 @@ static TIMER_CALLBACK(intv_interrupt2_complete)
|
||||
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);
|
||||
device->machine().scheduler().timer_set(device->machine().device<cpu_device>("keyboard")->cycles_to_attotime(100), FUNC(intv_interrupt2_complete));
|
||||
machine().device("keyboard")->execute().set_input_line(0, ASSERT_LINE);
|
||||
machine().scheduler().timer_set(machine().device<cpu_device>("keyboard")->cycles_to_attotime(100), FUNC(intv_interrupt2_complete));
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( intv, intv_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", CP1610, XTAL_3_579545MHz/4) /* Colorburst/4 */
|
||||
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))
|
||||
|
||||
|
||||
@ -874,7 +874,7 @@ static MACHINE_CONFIG_DERIVED( intvkbd, intv )
|
||||
|
||||
MCFG_CPU_ADD("keyboard", M6502, XTAL_3_579545MHz/2) /* Colorburst/2 */
|
||||
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))
|
||||
|
||||
|
@ -131,6 +131,7 @@ public:
|
||||
DECLARE_DRIVER_INIT(ip225015);
|
||||
virtual void machine_start();
|
||||
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>();
|
||||
state->m_nIntCounter++;
|
||||
// if( state->m_nIntCounter == 60 )
|
||||
m_nIntCounter++;
|
||||
// if( m_nIntCounter == 60 )
|
||||
{
|
||||
state->m_nIntCounter = 0;
|
||||
rtc_update(state);
|
||||
m_nIntCounter = 0;
|
||||
rtc_update(this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1635,7 +1635,7 @@ static MACHINE_CONFIG_START( ip225015, ip22_state )
|
||||
MCFG_CPU_ADD( "maincpu", R5000BE, 50000000*3 )
|
||||
MCFG_CPU_CONFIG( config )
|
||||
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")
|
||||
@ -1676,14 +1676,14 @@ static MACHINE_CONFIG_DERIVED( ip224613, ip225015 )
|
||||
MCFG_CPU_REPLACE( "maincpu", R4600BE, 133333333 )
|
||||
MCFG_CPU_CONFIG( config )
|
||||
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
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ip244415, ip225015 )
|
||||
MCFG_CPU_REPLACE( "maincpu", R4600BE, 150000000 )
|
||||
MCFG_CPU_CONFIG( config )
|
||||
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
|
||||
|
||||
ROM_START( ip225015 )
|
||||
|
@ -95,6 +95,7 @@ public:
|
||||
UINT8 m_cassette_data;
|
||||
iq151cart_slot_device * m_carts[5];
|
||||
DECLARE_DRIVER_INIT(iq151);
|
||||
INTERRUPT_GEN_MEMBER(iq151_vblank_interrupt);
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
state->m_vblank_irq_state ^= 1;
|
||||
pic8259_ir6_w(m_pic, m_vblank_irq_state & 1);
|
||||
m_vblank_irq_state ^= 1;
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(iq151_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_2_5MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(kaypro_map)
|
||||
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_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_PROGRAM_MAP(kaypro_map)
|
||||
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_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro2x )
|
||||
|
@ -135,7 +135,7 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 5093760) /* 20.37504 MHz / 4 */
|
||||
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_IO_MAP(lisa_cop_io_map)
|
||||
|
@ -78,18 +78,17 @@
|
||||
// CA2: SCSI interrupt = 0x01
|
||||
// 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
|
||||
mac->m_rbv_vbltime = 10;
|
||||
m_rbv_regs[2] &= ~0x40; // set vblank signal
|
||||
m_rbv_vbltime = 10;
|
||||
|
||||
// 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_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)
|
||||
|
||||
@ -1147,7 +1146,7 @@ static MACHINE_CONFIG_DERIVED( maclc2, maclc )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, C15M)
|
||||
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_DEFAULT_SIZE("4M")
|
||||
@ -1164,7 +1163,7 @@ static MACHINE_CONFIG_DERIVED( maclc3, maclc )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, 25000000)
|
||||
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_RESET_OVERRIDE(mac_state,macsonora)
|
||||
@ -1193,7 +1192,7 @@ static MACHINE_CONFIG_DERIVED( maciivx, maclc )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, C32M)
|
||||
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_RESET_OVERRIDE(mac_state,macrbv)
|
||||
@ -1217,7 +1216,7 @@ static MACHINE_CONFIG_DERIVED( maciivi, maclc )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, C15M)
|
||||
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_RESET_OVERRIDE(mac_state,macrbv)
|
||||
@ -1486,7 +1485,7 @@ static MACHINE_CONFIG_DERIVED( maciici, macii )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, 25000000)
|
||||
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)
|
||||
|
||||
@ -1515,7 +1514,7 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii )
|
||||
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, 20000000)
|
||||
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)
|
||||
|
||||
|
@ -712,7 +712,7 @@ static MACHINE_CONFIG_START( mbeeic, mbee_state )
|
||||
MCFG_CPU_PROGRAM_MAP(mbeeic_mem)
|
||||
MCFG_CPU_IO_MAP(mbeeic_io)
|
||||
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 )
|
||||
|
||||
|
@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6502, 750000) // 750 kHz
|
||||
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 */
|
||||
|
@ -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_PROGRAM_MAP(msx_memory_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_MACHINE_START_OVERRIDE(msx_state, msx )
|
||||
|
@ -164,6 +164,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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_END
|
||||
|
||||
static INTERRUPT_GEN( mz2500_vbl )
|
||||
INTERRUPT_GEN_MEMBER(mz2500_state::mz2500_vbl)
|
||||
{
|
||||
mz2500_state *state = device->machine().driver_data<mz2500_state>();
|
||||
if(state->m_irq_mask[0])
|
||||
device->execute().set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[0]);
|
||||
if(m_irq_mask[0])
|
||||
device.execute().set_input_line_and_vector(0, HOLD_LINE, m_irq_vector[0]);
|
||||
|
||||
state->m_cg_clear_flag = 0;
|
||||
m_cg_clear_flag = 0;
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(mz2500_map)
|
||||
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 )
|
||||
|
@ -1329,14 +1329,13 @@ void newbrain_state::machine_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;
|
||||
state->check_interrupt();
|
||||
m_clkint = 0;
|
||||
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_PROGRAM_MAP(newbrain_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_IO_MAP(newbrain_cop_io_map)
|
||||
|
@ -105,9 +105,9 @@ static INPUT_PORTS_START( ondra )
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NMI") PORT_CODE(KEYCODE_ESC)
|
||||
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 =
|
||||
@ -125,7 +125,7 @@ static MACHINE_CONFIG_START( ondra, ondra_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 2000000)
|
||||
MCFG_CPU_PROGRAM_MAP(ondra_mem)
|
||||
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 */
|
||||
|
@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( orionz80, orion_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 2500000)
|
||||
MCFG_CPU_PROGRAM_MAP(orionz80_mem)
|
||||
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_RESET_OVERRIDE(orion_state, orionz80 )
|
||||
|
@ -202,9 +202,9 @@ static INPUT_PORTS_START (p2000t)
|
||||
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 )
|
||||
@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( p2000t, p2000t_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 2500000)
|
||||
MCFG_CPU_PROGRAM_MAP(p2000t_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -249,7 +249,7 @@ static MACHINE_CONFIG_START( p2000m, p2000t_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 2500000)
|
||||
MCFG_CPU_PROGRAM_MAP(p2000m_mem)
|
||||
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))
|
||||
|
||||
/* video hardware */
|
||||
|
@ -70,6 +70,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void palette_init();
|
||||
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;
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( pasogo_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(pasogo_state::pasogo_interrupt)
|
||||
{
|
||||
// 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_PROGRAM_MAP(pasogo_mem)
|
||||
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_PIT8254_ADD( "pit8254", pc_pit8254_config )
|
||||
|
@ -64,6 +64,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(pc100_vblank_irq);
|
||||
};
|
||||
|
||||
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 )
|
||||
@ -386,7 +387,7 @@ static MACHINE_CONFIG_START( pc100, pc100_state )
|
||||
MCFG_CPU_ADD("maincpu", I8086, MASTER_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(pc100_map)
|
||||
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 */
|
||||
|
@ -329,7 +329,7 @@ static MACHINE_CONFIG_START( pc2000, pc2000_state )
|
||||
MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) /* probably not accurate */
|
||||
MCFG_CPU_PROGRAM_MAP(pc2000_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
|
@ -233,6 +233,8 @@ public:
|
||||
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_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 INTERRUPT_GEN( pc6001_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(pc6001_state::pc6001_interrupt)
|
||||
{
|
||||
pc6001_state *state = device->machine().driver_data<pc6001_state>();
|
||||
state->m_cur_keycode = check_joy_press(device->machine());
|
||||
m_cur_keycode = check_joy_press(machine());
|
||||
if(IRQ_LOG) printf("Stick IRQ called 0x16\n");
|
||||
state->m_irq_vector = 0x16;
|
||||
device->execute().set_input_line(0, ASSERT_LINE);
|
||||
m_irq_vector = 0x16;
|
||||
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>();
|
||||
state->m_kludge^= 1;
|
||||
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");
|
||||
state->m_irq_vector = (state->m_kludge) ? 0x22 : 0x16;
|
||||
device->execute().set_input_line(0, ASSERT_LINE);
|
||||
m_irq_vector = (m_kludge) ? 0x22 : 0x16;
|
||||
device.execute().set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(pc6001_map)
|
||||
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)
|
||||
|
||||
@ -2398,7 +2398,7 @@ static MACHINE_CONFIG_DERIVED( pc6601, pc6001m2 )
|
||||
MCFG_CPU_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(pc6001m2_map)
|
||||
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
|
||||
|
||||
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_PROGRAM_MAP(pc6001sr_map)
|
||||
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
|
||||
|
||||
/* ROM definition */
|
||||
|
@ -451,6 +451,7 @@ public:
|
||||
DECLARE_MACHINE_RESET(pc8801_clock_speed);
|
||||
DECLARE_MACHINE_RESET(pc8801_dic);
|
||||
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);
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( pc8801_vrtc_irq )
|
||||
INTERRUPT_GEN_MEMBER(pc8801_state::pc8801_vrtc_irq)
|
||||
{
|
||||
pc8801_state *state = device->machine().driver_data<pc8801_state>();
|
||||
if(state->m_vblank_irq_mask)
|
||||
pc8801_raise_irq(device->machine(),1<<(1),1);
|
||||
if(m_vblank_irq_mask)
|
||||
pc8801_raise_irq(machine(),1<<(1),1);
|
||||
}
|
||||
|
||||
#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(state->m_vrtc_irq_mask && state->m_i8214_irq_level >= 2)
|
||||
if(m_vrtc_irq_mask && m_i8214_irq_level >= 2)
|
||||
{
|
||||
state->m_vrtc_irq_latch = 1;
|
||||
m_vrtc_irq_latch = 1;
|
||||
//IRQ_LOG(("vrtc\n"));
|
||||
device->execute().set_input_line(0,HOLD_LINE);
|
||||
device.execute().set_input_line(0,HOLD_LINE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -2663,7 +2662,7 @@ static MACHINE_CONFIG_START( pc8801, pc8801_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(pc8801_mem)
|
||||
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) */
|
||||
MCFG_CPU_ADD("fdccpu", Z80, MASTER_CLOCK) /* 4 MHz */
|
||||
|
@ -102,6 +102,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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);
|
||||
}
|
||||
|
||||
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) */
|
||||
@ -1657,7 +1658,7 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state )
|
||||
MCFG_CPU_ADD("maincpu", V30, 8000000) /* 8 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(pc88va_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_PROGRAM_MAP(pc88va_z80_map)
|
||||
|
@ -415,6 +415,7 @@ public:
|
||||
DECLARE_PALETTE_INIT(pc9801);
|
||||
DECLARE_MACHINE_RESET(pc9801rs);
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
address_space &space = *device->machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
address_space &space = *machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
static UINT8 test;
|
||||
|
||||
if(device->machine().input().code_pressed_once(JOYCODE_BUTTON1))
|
||||
if(machine().input().code_pressed_once(JOYCODE_BUTTON1))
|
||||
test^=1;
|
||||
|
||||
if(test)
|
||||
@ -2624,13 +2624,13 @@ static INTERRUPT_GEN(pc9801_vrtc_irq)
|
||||
}
|
||||
#endif
|
||||
|
||||
if(state->m_vrtc_irq_mask)
|
||||
if(m_vrtc_irq_mask)
|
||||
{
|
||||
pic8259_ir2_w(device->machine().device("pic8259_master"), 1);
|
||||
state->m_vrtc_irq_mask = 0; // TODO: this irq auto-masks?
|
||||
pic8259_ir2_w(machine().device("pic8259_master"), 1);
|
||||
m_vrtc_irq_mask = 0; // TODO: this irq auto-masks?
|
||||
}
|
||||
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_PROGRAM_MAP(pc9801_map)
|
||||
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_RESET_OVERRIDE(pc9801_state,pc9801f)
|
||||
@ -2694,7 +2694,7 @@ static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801 )
|
||||
MCFG_CPU_REPLACE("maincpu",V30,10000000)
|
||||
MCFG_CPU_PROGRAM_MAP(pc9801_map)
|
||||
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
|
||||
#endif
|
||||
|
||||
@ -2702,7 +2702,7 @@ static MACHINE_CONFIG_START( pc9801rs, pc9801_state )
|
||||
MCFG_CPU_ADD("maincpu", I386, 16000000)
|
||||
MCFG_CPU_PROGRAM_MAP(pc9801rs_map)
|
||||
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_RESET_OVERRIDE(pc9801_state,pc9801rs)
|
||||
@ -2755,14 +2755,14 @@ static MACHINE_CONFIG_DERIVED( pc9801ux, pc9801rs )
|
||||
MCFG_CPU_CONFIG(i286_address_mask)
|
||||
MCFG_CPU_PROGRAM_MAP(pc9801ux_map)
|
||||
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
|
||||
|
||||
static MACHINE_CONFIG_START( pc9821, pc9801_state )
|
||||
MCFG_CPU_ADD("maincpu", I486, 16000000)
|
||||
MCFG_CPU_PROGRAM_MAP(pc9821_map)
|
||||
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_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_PROGRAM_MAP(pc9821_map)
|
||||
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
|
||||
|
||||
/*
|
||||
|
@ -1801,10 +1801,8 @@ static void pdp1_lightpen(running_machine &machine)
|
||||
/*
|
||||
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 tw_keys;
|
||||
int ta_keys;
|
||||
@ -1814,80 +1812,80 @@ INTERRUPT_GEN( pdp1_interrupt )
|
||||
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 */
|
||||
control_keys = state->ioport("CSW")->read();
|
||||
control_keys = ioport("CSW")->read();
|
||||
|
||||
if (control_keys & pdp1_control)
|
||||
{
|
||||
/* compute transitions */
|
||||
control_transitions = control_keys & (~ state->m_old_control_keys);
|
||||
control_transitions = control_keys & (~ m_old_control_keys);
|
||||
|
||||
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)
|
||||
{
|
||||
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_SBM, (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_RUN, 1);
|
||||
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_SBM, (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_RUN, 1);
|
||||
}
|
||||
if (control_transitions & pdp1_start_brk)
|
||||
{
|
||||
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_SBM, 1);
|
||||
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_RUN, 1);
|
||||
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_SBM, 1);
|
||||
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_RUN, 1);
|
||||
}
|
||||
if (control_transitions & pdp1_stop)
|
||||
{
|
||||
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_RUN, (UINT64)0);
|
||||
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
|
||||
an odd-numbered word (i.e. dio instruciton) */
|
||||
}
|
||||
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)
|
||||
{
|
||||
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_MA, device->state().state_int(PDP1_PC));
|
||||
device->state().set_state_int(PDP1_IR, LAC); /* this instruction is actually executed */
|
||||
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_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_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_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));
|
||||
}
|
||||
if (control_transitions & pdp1_deposit)
|
||||
{
|
||||
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_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_IR, DAC); /* this instruction is actually executed */
|
||||
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_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_IR, DAC); /* this instruction is actually executed */
|
||||
|
||||
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.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));
|
||||
}
|
||||
if (control_transitions & pdp1_read_in)
|
||||
{ /* set cpu to read instructions from perforated tape */
|
||||
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().state_int(PDP1_PC) & 0007777)); /* transfer ETA to EPC */
|
||||
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().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));*/
|
||||
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_RUN, (UINT64)0);
|
||||
device->state().set_state_int(PDP1_RIM, 1);
|
||||
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_RUN, (UINT64)0);
|
||||
device.state().set_state_int(PDP1_RIM, 1);
|
||||
}
|
||||
if (control_transitions & pdp1_reader)
|
||||
{
|
||||
@ -1897,53 +1895,53 @@ INTERRUPT_GEN( pdp1_interrupt )
|
||||
}
|
||||
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)
|
||||
{
|
||||
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 */
|
||||
state->m_old_control_keys = control_keys;
|
||||
m_old_control_keys = control_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 */
|
||||
tw_transitions = tw_keys & (~ state->m_old_tw_keys);
|
||||
tw_transitions = tw_keys & (~ m_old_tw_keys);
|
||||
|
||||
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 */
|
||||
state->m_old_tw_keys = tw_keys;
|
||||
m_old_tw_keys = tw_keys;
|
||||
|
||||
|
||||
/* handle address keys */
|
||||
ta_keys = machine.root_device().ioport("TSTADD")->read();
|
||||
ta_keys = machine().root_device().ioport("TSTADD")->read();
|
||||
|
||||
/* compute transitions */
|
||||
ta_transitions = ta_keys & (~ state->m_old_ta_keys);
|
||||
ta_transitions = ta_keys & (~ m_old_ta_keys);
|
||||
|
||||
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 */
|
||||
state->m_old_ta_keys = ta_keys;
|
||||
m_old_ta_keys = ta_keys;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
state->m_old_control_keys = 0;
|
||||
state->m_old_tw_keys = 0;
|
||||
state->m_old_ta_keys = 0;
|
||||
m_old_control_keys = 0;
|
||||
m_old_tw_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_CONFIG(pdp1_reset_param)
|
||||
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) */
|
||||
|
@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( pet_general, pet_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/8)
|
||||
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 */
|
||||
@ -783,7 +783,7 @@ static MACHINE_CONFIG_DERIVED( superpet, pet80 )
|
||||
/* m6809 cpu */
|
||||
MCFG_CPU_ADD("m6809", M6809, 1000000)
|
||||
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_REFRESH_RATE(50)
|
||||
|
@ -30,6 +30,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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)
|
||||
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)
|
||||
@ -349,7 +350,7 @@ static MACHINE_CONFIG_START( pk8000, pk8000_state )
|
||||
MCFG_CPU_ADD("maincpu",I8080, 1780000)
|
||||
MCFG_CPU_PROGRAM_MAP(pk8000_mem)
|
||||
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 */
|
||||
|
@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( pk8020, pk8020_state )
|
||||
MCFG_CPU_ADD("maincpu", I8080, XTAL_20MHz / 8)
|
||||
MCFG_CPU_PROGRAM_MAP(pk8020_mem)
|
||||
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 */
|
||||
|
@ -566,16 +566,14 @@ static M6510_INTERFACE( c16_cpu_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;
|
||||
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++)
|
||||
{
|
||||
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 */
|
||||
if ((i == 1) && (device->machine().root_device().ioport("SPECIAL")->read() & 0x80))
|
||||
if ((i == 1) && (machine().root_device().ioport("SPECIAL")->read() & 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;
|
||||
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;
|
||||
else
|
||||
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)
|
||||
state->m_keyline[9] = value;
|
||||
if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
|
||||
m_keyline[9] = value;
|
||||
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;
|
||||
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;
|
||||
else
|
||||
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)
|
||||
state->m_keyline[8] = value;
|
||||
if (machine().root_device().ioport("SPECIAL")->read() & 0x40)
|
||||
m_keyline[8] = value;
|
||||
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 )
|
||||
@ -905,8 +903,8 @@ static MACHINE_CONFIG_START( ntsc, plus4_state )
|
||||
MCFG_CPU_ADD(MOS7501_TAG, M7501, XTAL_14_31818MHz/16)
|
||||
MCFG_CPU_PROGRAM_MAP(plus4_mem)
|
||||
MCFG_CPU_CONFIG(cpu_intf)
|
||||
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c16_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT(c16_raster_interrupt, TED7360_HRETRACERATE)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
// 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_PROGRAM_MAP(plus4_mem)
|
||||
MCFG_CPU_CONFIG(cpu_intf)
|
||||
MCFG_CPU_VBLANK_INT(SCREEN_TAG, c16_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT(c16_raster_interrupt, TED7360_HRETRACERATE)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
// video and sound hardware
|
||||
|
@ -169,7 +169,7 @@ static MACHINE_CONFIG_START( poly88, poly88_state )
|
||||
MCFG_CPU_ADD("maincpu",I8080, 1853000)
|
||||
MCFG_CPU_PROGRAM_MAP(poly88_mem)
|
||||
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 */
|
||||
|
@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( primoa32, primo_state )
|
||||
MCFG_CPU_ADD( "maincpu", Z80, 2500000 )
|
||||
MCFG_CPU_PROGRAM_MAP( primo32_mem)
|
||||
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 */
|
||||
|
@ -82,6 +82,7 @@ public:
|
||||
DECLARE_DRIVER_INIT(pyl601);
|
||||
virtual void machine_reset();
|
||||
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);
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( pyl601_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(pyl601_state::pyl601_interrupt)
|
||||
{
|
||||
pyl601_state *state = device->machine().driver_data<pyl601_state>();
|
||||
state->m_tick50_mark = 0x80;
|
||||
device->execute().set_input_line(0, HOLD_LINE);
|
||||
m_tick50_mark = 0x80;
|
||||
device.execute().set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
static LEGACY_FLOPPY_OPTIONS_START(pyldin)
|
||||
@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( pyl601, pyl601_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz)
|
||||
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 */
|
||||
|
@ -132,6 +132,7 @@ private:
|
||||
virtual void machine_reset();
|
||||
public:
|
||||
UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
};
|
||||
|
||||
void rainbow_state::machine_start()
|
||||
@ -316,9 +317,9 @@ READ8_MEMBER( rainbow_state::read_video_ram_r )
|
||||
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 )
|
||||
@ -463,7 +464,7 @@ static MACHINE_CONFIG_START( rainbow, rainbow_state )
|
||||
MCFG_CPU_ADD("maincpu",I8088, XTAL_24_0734MHz / 5)
|
||||
MCFG_CPU_PROGRAM_MAP(rainbow8088_map)
|
||||
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_PROGRAM_MAP(rainbowz80_mem)
|
||||
|
@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( rx78, rx78_state )
|
||||
MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider
|
||||
MCFG_CPU_PROGRAM_MAP(rx78_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -349,10 +349,10 @@ void samcoupe_irq(device_t *device, UINT8 src)
|
||||
state->m_status &= ~src;
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( samcoupe_frame_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(samcoupe_state::samcoupe_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_PROGRAM_MAP(samcoupe_mem)
|
||||
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 */
|
||||
|
@ -102,6 +102,7 @@ public:
|
||||
DECLARE_DRIVER_INIT(sgi_ip2);
|
||||
virtual void machine_start();
|
||||
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 */
|
||||
MCFG_CPU_ADD("maincpu", M68020, 16000000)
|
||||
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 */
|
||||
|
@ -42,6 +42,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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 );
|
||||
}
|
||||
|
||||
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_CONFIG( config )
|
||||
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 */
|
||||
|
@ -45,6 +45,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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)
|
||||
@ -92,11 +93,10 @@ UINT32 sm1800_state::screen_update_sm1800(screen_device &screen, bitmap_ind16 &b
|
||||
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>();
|
||||
device->machine().device("maincpu")->execute().set_input_line(0, state->m_irq_state ? HOLD_LINE : CLEAR_LINE);
|
||||
state->m_irq_state ^= 1;
|
||||
machine().device("maincpu")->execute().set_input_line(0, m_irq_state ? HOLD_LINE : CLEAR_LINE);
|
||||
m_irq_state ^= 1;
|
||||
}
|
||||
|
||||
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_PROGRAM_MAP(sm1800_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -87,6 +87,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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
|
||||
};
|
||||
|
||||
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)
|
||||
device->execute().set_input_line(0,HOLD_LINE);
|
||||
if(m_irq_mask)
|
||||
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_PROGRAM_MAP(smc777_mem)
|
||||
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 */
|
||||
|
@ -128,6 +128,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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;
|
||||
}
|
||||
|
||||
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->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(44), FUNC(clear_irq_cb));
|
||||
device.execute().set_input_line(0, ASSERT_LINE);
|
||||
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.
|
||||
state->m_vblankstate = 1;
|
||||
state->m_kbmcu_rscount = 0; // clear the mcu poke count
|
||||
m_vblankstate = 1;
|
||||
m_kbmcu_rscount = 0; // clear the mcu poke count
|
||||
}
|
||||
|
||||
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_IO_MAP(z80_io)
|
||||
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)
|
||||
|
||||
/* video hardware */
|
||||
|
@ -660,9 +660,9 @@ static GFXDECODE_START( spectrum )
|
||||
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 =
|
||||
@ -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_PROGRAM_MAP(spectrum_mem)
|
||||
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_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum )
|
||||
|
@ -201,6 +201,8 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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_END
|
||||
|
||||
static INTERRUPT_GEN( supracan_irq )
|
||||
INTERRUPT_GEN_MEMBER(supracan_state::supracan_irq)
|
||||
{
|
||||
#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
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
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_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_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)
|
||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
|
@ -414,13 +414,12 @@ UINT32 svision_state::screen_update_tvlink(screen_device &screen, bitmap_rgb32 &
|
||||
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 (state->BANK&1)
|
||||
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
if (BANK&1)
|
||||
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)
|
||||
@ -514,7 +513,7 @@ static MACHINE_CONFIG_START( svision, svision_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M65C02, 4000000) /* ? stz used! speed? */
|
||||
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 */
|
||||
|
@ -89,6 +89,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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);
|
||||
}
|
||||
|
||||
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(state->m_terminal);
|
||||
vdt911_keyboard(m_terminal);
|
||||
|
||||
ti990_line_interrupt(device->machine());
|
||||
ti990_line_interrupt(machine());
|
||||
}
|
||||
|
||||
#ifdef UNUSED_FUNCTION
|
||||
@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state )
|
||||
MCFG_CPU_CONFIG(reset_params)
|
||||
MCFG_CPU_PROGRAM_MAP(ti990_10_memmap)
|
||||
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 */
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
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
|
||||
vdt911_keyboard(state->m_terminal);
|
||||
vdt911_keyboard(m_terminal);
|
||||
#else
|
||||
asr733_keyboard(state->m_terminal);
|
||||
asr733_keyboard(m_terminal);
|
||||
#endif
|
||||
|
||||
ti990_line_interrupt(device->machine());
|
||||
ti990_line_interrupt(machine());
|
||||
}
|
||||
|
||||
#ifdef UNUSED_FUNCTION
|
||||
@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state )
|
||||
MCFG_CPU_ADD("maincpu", TMS9900L, 3000000)
|
||||
MCFG_CPU_PROGRAM_MAP(ti990_4_memmap)
|
||||
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 */
|
||||
|
@ -102,6 +102,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void palette_init();
|
||||
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));
|
||||
}
|
||||
|
||||
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, state->m_irq_state);
|
||||
state->m_irq_state = (state->m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE;
|
||||
device.execute().set_input_line(1, m_irq_state);
|
||||
m_irq_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_PROGRAM_MAP(ti99_2_memmap)
|
||||
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 */
|
||||
|
@ -56,7 +56,7 @@ static MACHINE_CONFIG_START( tim011,tim011_state )
|
||||
MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(tim011_mem)
|
||||
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 */
|
||||
|
@ -610,7 +610,7 @@ static MACHINE_CONFIG_DERIVED( model1, trs80 ) // model I, level II
|
||||
MCFG_CPU_MODIFY( "maincpu" )
|
||||
MCFG_CPU_PROGRAM_MAP( model1_map)
|
||||
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 */
|
||||
MCFG_CASSETTE_MODIFY( CASSETTE_TAG, trs80l2_cassette_interface )
|
||||
@ -625,7 +625,7 @@ static MACHINE_CONFIG_DERIVED( model3, model1 )
|
||||
MCFG_CPU_MODIFY( "maincpu" )
|
||||
MCFG_CPU_PROGRAM_MAP( model3_map)
|
||||
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 )
|
||||
|
||||
|
@ -1498,9 +1498,8 @@ static void tx0_keyboard(running_machine &machine)
|
||||
/*
|
||||
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 tsr_keys;
|
||||
|
||||
@ -1509,93 +1508,93 @@ static INTERRUPT_GEN( tx0_interrupt )
|
||||
|
||||
|
||||
/* read new state of control keys */
|
||||
control_keys = state->ioport("CSW")->read();
|
||||
control_keys = ioport("CSW")->read();
|
||||
|
||||
if (control_keys & tx0_control)
|
||||
{
|
||||
/* 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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
device->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_RUN, (UINT64)0);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0);
|
||||
}
|
||||
if (control_transitions & tx0_restart)
|
||||
{
|
||||
device->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_RUN, 1);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_RIM, (UINT64)0);
|
||||
}
|
||||
if (control_transitions & tx0_read_in)
|
||||
{ /* set cpu to read instructions from perforated tape */
|
||||
device->machine().device("maincpu")->state().set_state_int(TX0_RESET, (UINT64)0);
|
||||
device->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_RESET, (UINT64)0);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_RUN, (UINT64)0);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_RIM, 1);
|
||||
}
|
||||
if (control_transitions & tx0_toggle_dn)
|
||||
{
|
||||
state->m_tsr_index++;
|
||||
if (state->m_tsr_index == 18)
|
||||
state->m_tsr_index = 0;
|
||||
m_tsr_index++;
|
||||
if (m_tsr_index == 18)
|
||||
m_tsr_index = 0;
|
||||
}
|
||||
if (control_transitions & tx0_toggle_up)
|
||||
{
|
||||
state->m_tsr_index--;
|
||||
if (state->m_tsr_index == -1)
|
||||
state->m_tsr_index = 17;
|
||||
m_tsr_index--;
|
||||
if (m_tsr_index == -1)
|
||||
m_tsr_index = 17;
|
||||
}
|
||||
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);
|
||||
device->machine().device("maincpu")->state().set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (state->m_tsr_index - 2)));
|
||||
UINT32 cm_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_CM_SEL);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_CM_SEL, cm_sel ^ (1 << (m_tsr_index - 2)));
|
||||
}
|
||||
}
|
||||
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);
|
||||
device->machine().device("maincpu")->state().set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (state->m_tsr_index - 2))));
|
||||
UINT32 lr_sel = (UINT32) machine().device("maincpu")->state().state_int(TX0_LR_SEL);
|
||||
machine().device("maincpu")->state().set_state_int(TX0_LR_SEL, (lr_sel ^ (1 << (m_tsr_index - 2))));
|
||||
}
|
||||
}
|
||||
|
||||
/* remember new state of control keys */
|
||||
state->m_old_control_keys = control_keys;
|
||||
m_old_control_keys = control_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 */
|
||||
tsr_transitions = tsr_keys & (~ state->m_old_tsr_keys);
|
||||
tsr_transitions = tsr_keys & (~ m_old_tsr_keys);
|
||||
|
||||
/* update toggle switch register */
|
||||
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 */
|
||||
state->m_old_tsr_keys = tsr_keys;
|
||||
m_old_tsr_keys = tsr_keys;
|
||||
}
|
||||
else
|
||||
{
|
||||
state->m_old_control_keys = 0;
|
||||
state->m_old_tsr_keys = 0;
|
||||
m_old_control_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_PROGRAM_MAP(tx0_64kw_map)
|
||||
/* 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) */
|
||||
|
@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( vc4000, vc4000_state )
|
||||
MCFG_CPU_ADD("maincpu", S2650, 3546875/4)
|
||||
MCFG_CPU_PROGRAM_MAP(vc4000_mem)
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -163,7 +163,7 @@ static MACHINE_CONFIG_START( vector06, vector06_state )
|
||||
// MCFG_CPU_ADD("maincpu", Z80, 3000000)
|
||||
MCFG_CPU_PROGRAM_MAP(vector06_mem)
|
||||
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 */
|
||||
|
@ -202,9 +202,9 @@ INPUT_PORTS_END
|
||||
// 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 )
|
||||
@ -614,7 +614,7 @@ static MACHINE_CONFIG_START( vic10, vic10_state )
|
||||
MCFG_CPU_ADD(M6510_TAG, M6510, VIC6566_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(vic10_mem)
|
||||
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)
|
||||
|
||||
// video hardware
|
||||
|
@ -308,10 +308,9 @@ READ8_MEMBER( vic20_state::vic_videoram_r )
|
||||
// VIDEO
|
||||
//**************************************************************************
|
||||
|
||||
static INTERRUPT_GEN( vic20_raster_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(vic20_state::vic20_raster_interrupt)
|
||||
{
|
||||
vic20_state *state = device->machine().driver_data<vic20_state>();
|
||||
state->m_vic->raster_interrupt_gen();
|
||||
m_vic->raster_interrupt_gen();
|
||||
}
|
||||
|
||||
|
||||
@ -756,7 +755,7 @@ static MACHINE_CONFIG_DERIVED( ntsc, vic20 )
|
||||
// basic machine hardware
|
||||
MCFG_CPU_ADD(M6502_TAG, M6502, MOS6560_CLOCK)
|
||||
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
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -782,7 +781,7 @@ static MACHINE_CONFIG_DERIVED( pal, vic20 )
|
||||
// basic machine hardware
|
||||
MCFG_CPU_ADD(M6502_TAG, M6502, MOS6561_CLOCK)
|
||||
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
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -140,6 +140,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vii_vblank);
|
||||
};
|
||||
|
||||
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 = device->machine().rand() & 0x3ff;
|
||||
UINT32 y = device->machine().rand() & 0x3ff;
|
||||
UINT32 z = device->machine().rand() & 0x3ff;
|
||||
UINT32 x = machine().rand() & 0x3ff;
|
||||
UINT32 y = machine().rand() & 0x3ff;
|
||||
UINT32 z = machine().rand() & 0x3ff;
|
||||
|
||||
|
||||
state->m_controller_input[0] = state->ioport("P1")->read();
|
||||
state->m_controller_input[1] = (UINT8)x;
|
||||
state->m_controller_input[2] = (UINT8)y;
|
||||
state->m_controller_input[3] = (UINT8)z;
|
||||
state->m_controller_input[4] = 0;
|
||||
m_controller_input[0] = ioport("P1")->read();
|
||||
m_controller_input[1] = (UINT8)x;
|
||||
m_controller_input[2] = (UINT8)y;
|
||||
m_controller_input[3] = (UINT8)z;
|
||||
m_controller_input[4] = 0;
|
||||
x >>= 8;
|
||||
y >>= 8;
|
||||
z >>= 8;
|
||||
state->m_controller_input[5] = (z << 4) | (y << 2) | x;
|
||||
state->m_controller_input[6] = 0xff;
|
||||
state->m_controller_input[7] = 0;
|
||||
m_controller_input[5] = (z << 4) | (y << 2) | x;
|
||||
m_controller_input[6] = 0xff;
|
||||
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;
|
||||
if(state->VII_VIDEO_IRQ_STATUS)
|
||||
VII_VIDEO_IRQ_STATUS = VII_VIDEO_IRQ_ENABLE & 1;
|
||||
if(VII_VIDEO_IRQ_STATUS)
|
||||
{
|
||||
verboselog(device->machine(), 0, "Video IRQ\n");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "Video IRQ\n");
|
||||
machine().device("maincpu")->execute().set_input_line(UNSP_IRQ0_LINE, ASSERT_LINE);
|
||||
}
|
||||
|
||||
// {
|
||||
// verboselog(device->machine(), 0, "audio 1 IRQ\n");
|
||||
// device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ1_LINE, ASSERT_LINE);
|
||||
// verboselog(machine(), 0, "audio 1 IRQ\n");
|
||||
// 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");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ2_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "timerA, timer B IRQ\n");
|
||||
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
|
||||
if(state->VII_CTLR_IRQ_ENABLE)
|
||||
if(VII_CTLR_IRQ_ENABLE)
|
||||
{
|
||||
verboselog(device->machine(), 0, "UART, ADC IRQ\n");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "UART, ADC IRQ\n");
|
||||
machine().device("maincpu")->execute().set_input_line(UNSP_IRQ3_LINE, ASSERT_LINE);
|
||||
}
|
||||
// {
|
||||
// verboselog(device->machine(), 0, "audio 4 IRQ\n");
|
||||
// device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ4_LINE, ASSERT_LINE);
|
||||
// verboselog(machine(), 0, "audio 4 IRQ\n");
|
||||
// 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");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ5_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "External IRQ\n");
|
||||
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");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ6_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "1024Hz, 2048HZ, 4096HZ IRQ\n");
|
||||
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");
|
||||
device->machine().device("maincpu")->execute().set_input_line(UNSP_IRQ7_LINE, ASSERT_LINE);
|
||||
verboselog(machine(), 0, "TMB1, TMB2, 4Hz, key change IRQ\n");
|
||||
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_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 )
|
||||
@ -1116,7 +1116,7 @@ static MACHINE_CONFIG_START( vsmile, vii_state )
|
||||
|
||||
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
|
||||
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 )
|
||||
@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_START( batman, vii_state )
|
||||
|
||||
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
|
||||
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)
|
||||
|
@ -57,6 +57,7 @@ public:
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
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)
|
||||
};
|
||||
|
||||
static INTERRUPT_GEN( vt100_vertical_interrupt )
|
||||
INTERRUPT_GEN_MEMBER(vt100_state::vt100_vertical_interrupt)
|
||||
{
|
||||
vt100_state *state = device->machine().driver_data<vt100_state>();
|
||||
state->m_vertical_int = 1;
|
||||
device->execute().set_input_line(0, HOLD_LINE);
|
||||
m_vertical_int = 1;
|
||||
device.execute().set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
/* 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_PROGRAM_MAP(vt100_mem)
|
||||
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 */
|
||||
|
@ -47,6 +47,7 @@ public:
|
||||
required_shared_ptr<UINT8> m_video_ram;
|
||||
DECLARE_DRIVER_INIT(vt240);
|
||||
virtual void machine_reset();
|
||||
INTERRUPT_GEN_MEMBER(vt240_irq);
|
||||
};
|
||||
|
||||
/* TODO */
|
||||
@ -140,9 +141,9 @@ static UPD7220_INTERFACE( hgdc_intf )
|
||||
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 =
|
||||
@ -165,7 +166,7 @@ static MACHINE_CONFIG_START( vt240, vt240_state )
|
||||
MCFG_CPU_ADD("maincpu", I8085A, XTAL_16MHz / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(vt240_mem)
|
||||
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 */
|
||||
|
@ -398,9 +398,9 @@ void vtech2_state::palette_init()
|
||||
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 =
|
||||
@ -430,7 +430,7 @@ static MACHINE_CONFIG_START( laser350, vtech2_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 3694700) /* 3.694700 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(vtech2_mem)
|
||||
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))
|
||||
|
||||
|
||||
|
@ -1895,22 +1895,22 @@ static WRITE_LINE_DEVICE_HANDLER( mfp_irq_callback )
|
||||
drvstate->m_mfp_prev = state;
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( x68k_vsync_irq )
|
||||
INTERRUPT_GEN_MEMBER(x68k_state::x68k_vsync_irq)
|
||||
{
|
||||
#if 0
|
||||
x68k_state *state = machine.driver_data<x68k_state>();
|
||||
if(state->m_mfp.ierb & 0x40)
|
||||
if(m_mfp.ierb & 0x40)
|
||||
{
|
||||
state->m_mfp.isrb |= 0x40;
|
||||
state->m_current_vector[6] = (state->m_mfp.vr & 0xf0) | 0x06; // GPIP4 (V-DISP)
|
||||
state->m_current_irq_line = 6;
|
||||
m_mfp.isrb |= 0x40;
|
||||
m_current_vector[6] = (m_mfp.vr & 0xf0) | 0x06; // GPIP4 (V-DISP)
|
||||
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_trigger_irq(MFP_IRQ_GPIP4);
|
||||
}
|
||||
if(state->m_crtc.height == 256)
|
||||
machine.primary_screen->update_partial(256);//state->m_crtc.reg[4]/2);
|
||||
if(m_crtc.height == 256)
|
||||
machine.primary_screen->update_partial(256);//m_crtc.reg[4]/2);
|
||||
else
|
||||
machine.primary_screen->update_partial(512);//state->m_crtc.reg[4]);
|
||||
machine.primary_screen->update_partial(512);//m_crtc.reg[4]);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -2741,7 +2741,7 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */
|
||||
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_MACHINE_START_OVERRIDE(x68k_state, x68000 )
|
||||
|
@ -60,6 +60,7 @@ public:
|
||||
DECLARE_MACHINE_RESET(apple3);
|
||||
DECLARE_VIDEO_START(apple3);
|
||||
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_1_intf;
|
||||
|
||||
|
||||
INTERRUPT_GEN( apple3_interrupt );
|
||||
|
||||
/*----------- defined in video/apple3.c -----------*/
|
||||
|
||||
void apple3_write_charmem(running_machine &machine);
|
||||
|
@ -81,7 +81,6 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
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_ */
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(b2m_vblank_interrupt);
|
||||
};
|
||||
|
||||
/*----------- 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_3;
|
||||
|
||||
extern INTERRUPT_GEN( b2m_vblank_interrupt );
|
||||
|
||||
#endif
|
||||
|
@ -282,6 +282,9 @@ public:
|
||||
DECLARE_MACHINE_RESET(bbcbp);
|
||||
DECLARE_VIDEO_START(bbcbp);
|
||||
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 wd17xx_interface bbc_wd17xx_interface;
|
||||
|
||||
INTERRUPT_GEN( bbcb_keyscan );
|
||||
INTERRUPT_GEN( bbcm_keyscan );
|
||||
|
||||
/* disc support */
|
||||
|
||||
DEVICE_IMAGE_LOAD ( bbcb_cart );
|
||||
|
@ -220,13 +220,12 @@ public:
|
||||
DECLARE_DRIVER_INIT(c128d);
|
||||
DECLARE_DRIVER_INIT(c128);
|
||||
DECLARE_DRIVER_INIT(c128d81);
|
||||
INTERRUPT_GEN_MEMBER(c128_frame_interrupt);
|
||||
};
|
||||
|
||||
|
||||
/*----------- defined in machine/c128.c -----------*/
|
||||
|
||||
extern INTERRUPT_GEN( c128_frame_interrupt );
|
||||
|
||||
extern const mos6526_interface c128_cia1_intf, c128_cia2_intf;
|
||||
|
||||
#endif /* __C128_H__ */
|
||||
|
@ -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_rom(running_machine &machine, int offset);
|
||||
|
||||
extern INTERRUPT_GEN( c16_frame_interrupt );
|
||||
|
||||
MACHINE_CONFIG_EXTERN( c16_cartslot );
|
||||
|
||||
#endif /* __C16_H__ */
|
||||
|
@ -142,6 +142,7 @@ public:
|
||||
int m_cass_rd;
|
||||
int m_iec_srq;
|
||||
DECLARE_DRIVER_INIT(c64pal);
|
||||
INTERRUPT_GEN_MEMBER(c64_frame_interrupt);
|
||||
};
|
||||
|
||||
|
||||
|
@ -90,6 +90,7 @@ public:
|
||||
DECLARE_DRIVER_INIT( ultimax );
|
||||
DECLARE_DRIVER_INIT( c64gs );
|
||||
DECLARE_DRIVER_INIT( sx64 );
|
||||
INTERRUPT_GEN_MEMBER(c64_frame_interrupt);
|
||||
};
|
||||
|
||||
|
||||
@ -105,7 +106,6 @@ DECLARE_WRITE8_HANDLER ( c64_colorram_write );
|
||||
|
||||
MACHINE_START( c64 );
|
||||
MACHINE_RESET( c64 );
|
||||
INTERRUPT_GEN( c64_frame_interrupt );
|
||||
TIMER_CALLBACK( c64_tape_timer );
|
||||
|
||||
/* private area */
|
||||
|
@ -65,6 +65,8 @@ public:
|
||||
DECLARE_MACHINE_START(c65);
|
||||
DECLARE_PALETTE_INIT(c65);
|
||||
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_bankswitch_interface(running_machine &machine, int value);
|
||||
|
||||
|
||||
INTERRUPT_GEN( c65_frame_interrupt );
|
||||
|
||||
extern const mos6526_interface c65_cia0;
|
||||
extern const mos6526_interface c65_cia1;
|
||||
|
||||
|
@ -71,6 +71,8 @@ public:
|
||||
DECLARE_PALETTE_INIT(cgenie);
|
||||
DECLARE_PALETTE_INIT(cgenienz);
|
||||
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 );
|
||||
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_track_r );
|
||||
DECLARE_READ8_HANDLER ( cgenie_sector_r );
|
||||
|
@ -187,6 +187,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void palette_init();
|
||||
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 upd765_interface compis_fdc_interface;
|
||||
|
||||
INTERRUPT_GEN(compis_vblank_int);
|
||||
|
||||
#endif /* COMPIS_H_ */
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
virtual void machine_start();
|
||||
virtual void video_start();
|
||||
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 wd17xx_interface concept_wd17xx_interface;
|
||||
|
||||
INTERRUPT_GEN( concept_interrupt );
|
||||
|
||||
|
||||
#endif /* CONCEPT_H_ */
|
||||
|
@ -274,6 +274,8 @@ class towns_state : public driver_device
|
||||
void poll_keyboard();
|
||||
void mouse_timeout();
|
||||
void wait_end();
|
||||
public:
|
||||
INTERRUPT_GEN_MEMBER(towns_vsync_irq);
|
||||
};
|
||||
|
||||
class marty_state : public towns_state
|
||||
@ -286,8 +288,4 @@ class marty_state : public towns_state
|
||||
virtual void driver_start();
|
||||
};
|
||||
|
||||
INTERRUPT_GEN( towns_vsync_irq );
|
||||
//VIDEO_START( towns );
|
||||
//SCREEN_UPDATE_RGB32( towns );
|
||||
|
||||
#endif /*FMTOWNS_H_*/
|
||||
|
@ -32,11 +32,11 @@ public:
|
||||
DECLARE_MACHINE_RESET(galaxy);
|
||||
DECLARE_MACHINE_RESET(galaxyp);
|
||||
UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(galaxy_interrupt);
|
||||
};
|
||||
|
||||
|
||||
/*----------- defined in machine/galaxy.c -----------*/
|
||||
INTERRUPT_GEN( galaxy_interrupt );
|
||||
SNAPSHOT_LOAD( galaxy );
|
||||
|
||||
/*----------- defined in video/galaxy.c -----------*/
|
||||
|
@ -243,6 +243,7 @@ public:
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
INTERRUPT_GEN_MEMBER(gamecom_interrupt);
|
||||
};
|
||||
|
||||
|
||||
|
@ -245,6 +245,7 @@ public:
|
||||
DECLARE_PALETTE_INIT(gbc);
|
||||
DECLARE_MACHINE_START(gb_video);
|
||||
DECLARE_MACHINE_START(gbc_video);
|
||||
INTERRUPT_GEN_MEMBER(gb_scanline_interrupt);
|
||||
};
|
||||
|
||||
|
||||
@ -252,7 +253,6 @@ public:
|
||||
|
||||
DEVICE_START(gb_cart);
|
||||
DEVICE_IMAGE_LOAD(gb_cart);
|
||||
INTERRUPT_GEN( gb_scanline_interrupt );
|
||||
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
Loading…
Reference in New Issue
Block a user