All second- and third-generation Amstrad XTs (from the PPC512 to the PC3086) use a 102-key keyboard. An 8049 microcontroller is used rather than an 8048, with the extra memory being used to support the multi-byte scancodes that the keyboard can send.
On the PPC and PC200, the microcontroller is part no. 40112; on the PC2086 and PC3086, it is part no. 40178. The only difference between the two is that part 40178 includes support for the PC2086/3086 keylock.
The keyboard socket on the PC2086 and PC3086 (seen from outside) has this pinout:
On the PPC and PC200, the keyboard and PC are in one case, and the keyboard microcontroller is on the motherboard.
These are the keycaps for the UK layout. Other layouts are similar; the keyboard membrane supports both 101-key and 102-key variations.
The scancodes returned are as follows, corresponding to Set 1 on a PS/2 keyboard:
The PC1512's joystick connector has been dropped (doubtless to provide space in the key matrix for the extra keys), but mouse buttons are still handled as keys:
Support for the mouse buttons is still present in the PPC512 keyboard microcontroller, despite the fact that the PPC512 has no mouse.
The wire protocol used by the keyboard appears to be the same as the one used by the PC1512 keyboard. Since it is possible (with a simple cable adaptor) to connect a PC1512 keyboard to a PC2086, the reverse is probably true as well. The PC1512/1640 BIOS has no support for the extended scancodes (those commencing E0), so those keys will be treated like their non-extended versions (keypad Enter will behave like main Return, and so on).
In theory an external keyboard could be fitted to the PC or PC200 by removing, or otherwise rendering inoperative, its keyboard controller, and then connecting a socket to appropriate points on the PCB. In practice this sounds like a very bad idea.
John Elliott 28 August 2010