trunk/src/mess/machine/pc9801_kbd.c
| r19820 | r19821 | |
| 190 | 190 | |
| 191 | 191 | PORT_START("KEYE") // 0x70 - 0x77 |
| 192 | 192 | 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) |
| 195 | 195 | 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) |
| 196 | 196 | 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) |
| 197 | 197 | PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(" un 6-6") PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_kbd_device, key_stroke, 0x75) |
| r19820 | r19821 | |
| 249 | 249 | |
| 250 | 250 | m_keyb_tx = 0xff; |
| 251 | 251 | m_keyb_rx = 0; |
| 252 | m_caps_lock_state = ioport("KEYE")->read() & (1 << 1); |
| 253 | m_kana_lock_state = ioport("KEYE")->read() & (1 << 2); |
| 252 | 254 | } |
| 253 | 255 | |
| 254 | 256 | //------------------------------------------------- |
| r19820 | r19821 | |
| 281 | 283 | { |
| 282 | 284 | int i; |
| 283 | 285 | |
| 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 | |
| 284 | 304 | /* key up */ |
| 285 | 305 | for(i=0;i<0x80;i++) |
| 286 | 306 | { |