http://bitsavers.org/pdf/att/610/55K420ADA_kbd/ this kbd works with the 610, 630 and 730 communicates 4800 baud 8 bits no parity, msb set on keydown, off on keyup the host sends two status bytes periodically with state and kb volume, one of the bits is used for keyclick which is only sent when a keyclick is to happen. It does NOT appear in the periodic status update. default bytes sent are (00)(84) period varies between implementations, the 610 sends both bytes every second, the 630 sends one byte every second kbd sends an id (01) twice 10ms apart on power up but it seems to be ignored host queries id with (8C) beep generated with (40) (or 41, 44 or 45 if the kbd LEDs are on) it is a triangle wave sent in variable width bursts with fewer triangle waves per burst for .8 seconds a scope trace is in beep.wfm key click is 4 square wave pulses 60uS active 330 uS between pulses state bits byte 1 msb 0 beep click 0 0 scroll lock LED (1 = ON) 0 caps lock LED (1 = ON) byte 2 msb 1 0 0 0 kb inquiry kb returns (01) (01) inquiry also sends kb volume bits vol msb vol vol lsb default volume is 4, scroll lock, click and caps lock off examples (all with keyclick on) capslock pressed 20 01 sent next keydown 21 sent capslock pressed 21 00 sent next keydown 20 scr lock pressed 20 04 sent next keydown 24 it is actually sending two commands when keyclick is on, the first ALSO sends the LED state if we have the sequence scroll lock, shift lock, shift lock, scroll lock you see kb host F1 01 SCROLL LK ON 71 A7 05 SCROLL LK AND SHIFT LK ON 27 A7 01 SCROLL LK ON 27 F1 00 BOTH OFF 71 No host bytes are sent if any other key is pressed -- kbd ID is jumperable on the pcb jumpering the next pad down changes the ID from 1 to 3