summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/pk8000.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/pk8000.c')
-rw-r--r--src/mess/drivers/pk8000.c46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c
index d0ff985aacc..6122e21e1a2 100644
--- a/src/mess/drivers/pk8000.c
+++ b/src/mess/drivers/pk8000.c
@@ -31,6 +31,12 @@ public:
virtual void video_start();
UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(pk8000_interrupt);
+ DECLARE_WRITE8_MEMBER(pk8000_80_porta_w);
+ DECLARE_READ8_MEMBER(pk8000_80_portb_r);
+ DECLARE_WRITE8_MEMBER(pk8000_80_portc_w);
+ DECLARE_READ8_MEMBER(pk8000_84_porta_r);
+ DECLARE_WRITE8_MEMBER(pk8000_84_porta_w);
+ DECLARE_WRITE8_MEMBER(pk8000_84_portc_w);
};
@@ -100,66 +106,64 @@ static void pk8000_set_bank(running_machine &machine,UINT8 data)
break;
}
}
-static WRITE8_DEVICE_HANDLER(pk8000_80_porta_w)
+WRITE8_MEMBER(pk8000_state::pk8000_80_porta_w)
{
- pk8000_set_bank(space.machine(),data);
+ pk8000_set_bank(machine(),data);
}
-static READ8_DEVICE_HANDLER(pk8000_80_portb_r)
+READ8_MEMBER(pk8000_state::pk8000_80_portb_r)
{
- pk8000_state *state = space.machine().driver_data<pk8000_state>();
static const char *const keynames[] = { "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9" };
- if(state->m_keyboard_line>9) {
+ if(m_keyboard_line>9) {
return 0xff;
}
- return space.machine().root_device().ioport(keynames[state->m_keyboard_line])->read();
+ return machine().root_device().ioport(keynames[m_keyboard_line])->read();
}
-static WRITE8_DEVICE_HANDLER(pk8000_80_portc_w)
+WRITE8_MEMBER(pk8000_state::pk8000_80_portc_w)
{
- pk8000_state *state = space.machine().driver_data<pk8000_state>();
- state->m_keyboard_line = data & 0x0f;
+ m_keyboard_line = data & 0x0f;
- speaker_level_w(space.machine().device(SPEAKER_TAG), BIT(data,7));
+ speaker_level_w(machine().device(SPEAKER_TAG), BIT(data,7));
- cassette_device_image(space.machine())->change_state(
+ cassette_device_image(machine())->change_state(
(BIT(data,4)) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED,
CASSETTE_MASK_MOTOR);
- cassette_device_image(space.machine())->output((BIT(data,6)) ? +1.0 : 0.0);
+ cassette_device_image(machine())->output((BIT(data,6)) ? +1.0 : 0.0);
}
static I8255_INTERFACE( pk8000_ppi8255_interface_1 )
{
DEVCB_NULL,
- DEVCB_HANDLER(pk8000_80_porta_w),
- DEVCB_HANDLER(pk8000_80_portb_r),
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_80_porta_w),
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_80_portb_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(pk8000_80_portc_w)
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_80_portc_w)
};
-static READ8_DEVICE_HANDLER(pk8000_84_porta_r)
+READ8_MEMBER(pk8000_state::pk8000_84_porta_r)
{
return pk8000_video_mode;
}
-static WRITE8_DEVICE_HANDLER(pk8000_84_porta_w)
+WRITE8_MEMBER(pk8000_state::pk8000_84_porta_w)
{
pk8000_video_mode = data;
}
-static WRITE8_DEVICE_HANDLER(pk8000_84_portc_w)
+WRITE8_MEMBER(pk8000_state::pk8000_84_portc_w)
{
pk8000_video_enable = BIT(data,4);
}
static I8255_INTERFACE( pk8000_ppi8255_interface_2 )
{
- DEVCB_HANDLER(pk8000_84_porta_r),
- DEVCB_HANDLER(pk8000_84_porta_w),
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_porta_r),
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_porta_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(pk8000_84_portc_w)
+ DEVCB_DRIVER_MEMBER(pk8000_state,pk8000_84_portc_w)
};
READ8_MEMBER(pk8000_state::pk8000_joy_1_r)