Nagamitsu 102-Key Keyboard
The Nagamitsu keyboard is a 102-key add-on keyboard for the PC1512. Its FCC ID is GY73N4HSK-5339.
The hardware is unexceptional, except for one point: the microcontroller in this keyboard has an external 4k ROM, rather than a built-in one.
In layout, the keyboard is a completely standard 102-key PS/2 keyboard:
It returns the following scancodes:
- Keys shaded orange return different scancodes from the ones a genuine PS/2 keyboard in set 1 would. Keypad enter returns 74 (as the PC1512 is expecting) rather than E01C, and the keys producing scancodes 29, 2B and 56 are in positions more like those you'd find on an XT keyboard.
- A number of 'extended' keys (shaded blue) send both 'down' and 'up' scancodes on press (and when repeating) and nothing on release. For example, the keypad / sends E035 E0B5 when pressed, nothing when released.
- Print Screen / SysRQ (shaded green) also behaves like this. If either ALT key is down it sends scancodes 54 D4 when pressed and nothing when released; otherwise E02A E037 E0B7 E0AA (Fake shift, PrintScreen, PrintScreen up, Fake shift up).
- Pause (shaded yellow) sends 1D 45 9D C5 (Ctrl down, Numlock down, Ctrl up, Numlock up) on press and nothing on release. If Ctrl is held, it sends E046 E0C6 (Scroll Lock down, Scroll Lock up) on press and nothing on release. Unlike the other shaded keys, it does not repeat.
- No key sends scancode 70 (DEL->)
- There is no joystick socket, and hence the joystick scancodes are never returned.
In theory, since the keyboard has to connect to the PC1512, it uses the same wire protocol as the PC1512's normal keyboard. There are, however, some important differences.
A real PC1512 keyboard sends a signal like this (this is for scancode 0x25, 'K':
where the clock and data lines both go high between each bit. Each low pulse on the clock or data line lasts for about 10 microseconds, and they are 50 microseconds apart.
The signal from the Nagamitsu keyboard looks more like this:
where each clock pulse (high or low) lasts for 50 microseconds, and the data line does not return to high between the clock pulses.
John Elliott 31 August 2010