summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/kay_kbd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/kay_kbd.cpp')
-rw-r--r--src/mame/machine/kay_kbd.cpp39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/mame/machine/kay_kbd.cpp b/src/mame/machine/kay_kbd.cpp
index 736d39d5fd8..617d7636365 100644
--- a/src/mame/machine/kay_kbd.cpp
+++ b/src/mame/machine/kay_kbd.cpp
@@ -181,8 +181,6 @@ INPUT_PORTS_START( kay_kbd )
PORT_BIT(0xf0, 0x00, IPT_UNUSED)
INPUT_PORTS_END
-static void kay_kbd_in( running_machine &machine, UINT8 data );
-
static const UINT8 keyboard[8][10][8] = {
{ /* normal */
{ 27,'1','2','3','4','5','6','7'},
@@ -376,11 +374,11 @@ INTERRUPT_GEN_MEMBER(kaypro_state::kay_kbd_interrupt)
if( kbd->key ) /* normal key */
{
kbd->repeater = 30;
- kay_kbd_in(machine(), kbd->key);
+ kay_kbd_in(kbd->key);
}
else
if( (row == 0) && (chg == 0x04) ) /* Ctrl-@ (NUL) */
- kay_kbd_in(machine(), 0);
+ kay_kbd_in(0);
keyrows[row] |= newval;
}
else
@@ -391,7 +389,7 @@ INTERRUPT_GEN_MEMBER(kaypro_state::kay_kbd_interrupt)
}
else if ( kbd->key && (keyrows[kbd->lastrow] & kbd->mask) && kbd->repeat == 0 )
{
- kay_kbd_in(machine(), kbd->key);
+ kay_kbd_in(kbd->key);
}
}
@@ -415,10 +413,9 @@ static WRITE8_HANDLER ( kaypro2_const_w )
* releases CPU if it was waiting for a key
* sounds bell if buffer would overflow
******************************************************/
-static void kay_kbd_in( running_machine &machine, UINT8 data )
+void kaypro_state::kay_kbd_in(UINT8 data )
{
- kaypro_state *state = machine.driver_data<kaypro_state>();
- kay_kbd_t *kbd = state->m_kbd;
+ kay_kbd_t *kbd = m_kbd;
UINT8 kbd_head_old;
kbd_head_old = kbd->head;
@@ -428,21 +425,20 @@ static void kay_kbd_in( running_machine &machine, UINT8 data )
if (kbd->head == kbd->tail)
{
kbd->head = kbd_head_old;
- kay_kbd_d_w(machine, 4);
+ kay_kbd_d_w(4);
}
else
- kay_kbd_d_w(machine, 1);
+ kay_kbd_d_w(1);
}
-UINT8 kay_kbd_c_r( running_machine &machine )
+UINT8 kaypro_state::kay_kbd_c_r()
{
/* d4 transmit buffer empty - 1=ok to send
d2 appears to be receive buffer empty - 1=ok to receive
d0 keyboard buffer empty - 1=key waiting to be used */
- kaypro_state *state = machine.driver_data<kaypro_state>();
- kay_kbd_t *kbd = state->m_kbd;
+ kay_kbd_t *kbd = m_kbd;
UINT8 data = kbd->control_status;
if( kbd->head != kbd->tail )
@@ -451,12 +447,11 @@ UINT8 kay_kbd_c_r( running_machine &machine )
return data;
}
-UINT8 kay_kbd_d_r( running_machine &machine )
+UINT8 kaypro_state::kay_kbd_d_r()
{
/* return next key in buffer */
- kaypro_state *state = machine.driver_data<kaypro_state>();
- kay_kbd_t *kbd = state->m_kbd;
+ kay_kbd_t *kbd = m_kbd;
UINT8 data = 0;
if (kbd->tail != kbd->head)
@@ -468,15 +463,14 @@ UINT8 kay_kbd_d_r( running_machine &machine )
return data;
}
-static TIMER_CALLBACK( kay_kbd_beepoff )
+TIMER_CALLBACK_MEMBER( kaypro_state::kay_kbd_beepoff )
{
- kaypro_state *state = machine.driver_data<kaypro_state>();
- kay_kbd_t *kbd = state->m_kbd;
+ kay_kbd_t *kbd = m_kbd;
kbd->beeper->set_state(0);
kbd->control_status |= 4;
}
-void kay_kbd_d_w( running_machine &machine, UINT8 data )
+void kaypro_state::kay_kbd_d_w( UINT8 data )
{
/* Beeper control - lengths need verifying
01 - keyclick
@@ -485,8 +479,7 @@ void kay_kbd_d_w( running_machine &machine, UINT8 data )
08 - mute
16 - unmute */
- kaypro_state *state = machine.driver_data<kaypro_state>();
- kay_kbd_t *kbd = state->m_kbd;
+ kay_kbd_t *kbd = m_kbd;
UINT16 length = 0;
if (data & 0x10)
@@ -509,7 +502,7 @@ void kay_kbd_d_w( running_machine &machine, UINT8 data )
if (length)
{
kbd->control_status &= 0xfb;
- machine.scheduler().timer_set(attotime::from_msec(length), FUNC(kay_kbd_beepoff));
+ machine().scheduler().timer_set(attotime::from_msec(length), timer_expired_delegate(FUNC(kaypro_state::kay_kbd_beepoff),this));
kbd->beeper->set_state(1);
}
}