Previous 199869 Revisions Next

r19821 Wednesday 26th December, 2012 at 02:51:53 UTC by Angelo Salese
(Re-)Added Caps Lock / Kana Lock
[src/mess/machine]pc9801_kbd.c pc9801_kbd.h

trunk/src/mess/machine/pc9801_kbd.c
r19820r19821
190190
191191   PORT_START("KEYE") // 0x70 - 0x77
192192   PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x70)
193   PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CAPS LOCK") //PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE  PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x71)
194   PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("\xe3\x81\x8b\xe3\x81\xaa / KANA LOCK") //PORT_TOGGLE  PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x72)
193   PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE // PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x71)
194   PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("\xe3\x81\x8b\xe3\x81\xaa / KANA LOCK") PORT_TOGGLE  //PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x72)
195195   PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x73)
196196   PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x74)
197197   PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(" un 6-6")  PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x75)
r19820r19821
249249
250250   m_keyb_tx = 0xff;
251251   m_keyb_rx = 0;
252   m_caps_lock_state = ioport("KEYE")->read() & (1 << 1);
253   m_kana_lock_state = ioport("KEYE")->read() & (1 << 2);
252254}
253255
254256//-------------------------------------------------
r19820r19821
281283   {
282284      int i;
283285
286      /* special handling for caps lock / kana lock */
287      if((ioport("KEYE")->read() & (1 << 1)) != m_caps_lock_state)
288      {
289         m_caps_lock_state = ioport("KEYE")->read() & (1 << 1);
290         m_keyb_tx = 0x71;
291         m_irq_func(ASSERT_LINE);
292         return;
293      }
294
295      if((ioport("KEYE")->read() & (1 << 2)) != m_kana_lock_state)
296      {
297         m_kana_lock_state = ioport("KEYE")->read() & (1 << 2);
298         m_keyb_tx = 0x72;
299         m_irq_func(ASSERT_LINE);
300         return;
301      }
302
303
284304      /* key up */
285305      for(i=0;i<0x80;i++)
286306      {
trunk/src/mess/machine/pc9801_kbd.h
r19820r19821
6464   UINT8             m_rx_buf[0x80];
6565   UINT8            m_keyb_tx;
6666   UINT8            m_keyb_rx;
67   UINT8            m_caps_lock_state;
68   UINT8            m_kana_lock_state;
6769};
6870
6971

Previous 199869 Revisions Next


© 1997-2024 The MAME Team