summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/vii.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/vii.c')
-rw-r--r--src/mess/drivers/vii.c82
1 files changed, 41 insertions, 41 deletions
diff --git a/src/mess/drivers/vii.c b/src/mess/drivers/vii.c
index 6929501abbd..bd465f58bb7 100644
--- a/src/mess/drivers/vii.c
+++ b/src/mess/drivers/vii.c
@@ -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)