OK. I'll write it up on my website, but in brief:
- Switches 1-6 control bits 5-0 of the first keyboard ID byte (bits 7-6 are always 1,0). So in their default position where they're all open, the first ID byte is 10111111 (0xBF). If you close one or more, the corresponding bit goes to 0. Close switch 1 and you get an ID of 0x9F 0xBF, and so on.
- Similarly, Switches 7 and 8 control bits 5 and 4 of the second keyboard ID byte.
- And therefore I'd guess that, with 12 sets of pins and 8 switches, the remaining four sets of pins are used to set the low 4 bits of the second ID byte.
I've now checked my 1390876 as well. The B2-B7 headers correspond to the low 6 bits of the second ID byte in the same way, and I'm sure if my board had headers on A2-A7 they'd affect the first byte too.
I had to leave abruptly last night, hence my previous silence.
Thank you so much, I've been wondering about this for some time. So it should therefore be possible to set the "normal" ID of 0xAB 0x83 [10101011 10000011] with the following settings:
KBD ID A 2 - NO JUMPER [SW 1 OFF]
KBD ID A 3 - JUMPER [SW 2 ON ]
KBD ID A 4 - NO JUMPER [SW 3 OFF]
KBD ID A 5 - JUMPER [SW 4 ON ]
KBD ID A 6 - NO JUMPER [SW 5 OFF]
KBD ID A 7 - NO JUMPER [SW 6 OFF]
KBD ID B 2 - JUMPER [SW 7 ON ]
KBD ID B 3 - JUMPER [SW 8 ON ]
KBD ID B 4 - JUMPER
KBD ID B 5 - JUMPER
KBD ID B 6 - NO JUMPER
KBD ID B 7 - NO JUMPER
I will test various behaviours of the 1389260 and the 1387033 (any regulars with good memory and eagle eyes, yes it is
that one) with this configuration versus without (I will have to borrow the cable from my AT as John E. did).
Note also that that area of the PCB looks identical on the 84-key Model F, down to the "KBDID A" and "KBDID B" markings, and the extra pair of pins beyond them. But on that model, the schematic at kbdbabel.org shows that pins B5, B6 and B7 are now used to drive the LED panel.
This is an interesting detail, I do recall seeing that on the PCB of my 6450225 but never considered this comparison. I will have a play with that too since I will have to open the case.
~~~
For the record, I don't have low-level Windows programming experience.
~~~
Regarding 1386887 usage on a PS/2 56SX:
Code 301 on POST (keyboard not responding or stuck key)
I would consider blaming the 301 on the keyboard ID the 1386887 reports, particularly if both it and the Model 56 are otherwise working well. See above...
Then, I swapped out the keyboard for the terminal board, and proceeded to type "This sentence is being typed on a 1986 1386887."
The problem was that the sentence came out looking something similar to "#R@#$T$^^*&^%*$&^&^%::::"'';;;';,..,,<>$#%", at which point it crashed (see blurry attachment).
This suggests to me that PS/2s might not support set 3 at all (perhaps designed not to), and that we just happen to be lucky that modern equipment does by some odd fluke.
I'm not sure that that's a logical conclusion. From the evidence I don't see how we can tell for sure whether the gibberish is a hardware or software problem, never mind exactly what is failing, complaining or just plain going mad. A comparison using a basic DOS boot disk with added EDIT.COM might help. This said, I'm not sure I would recommend hotplugging the keyboard on a real PS/2.
There is also the history which suggests otherwise. As we have been discussing, set 3 was already in use in terminal products prior to the PS/2 launch in '87; according to the "IBM 7531/7532 Industrial Computer Technical Reference System Unit", first edition July 1985, set 3 was supported by their 101 and 102 key 'boards, the design of which was then used on the 5170 AT proper, and then became the standard for the PS/2. Not to say that there were definitely no changes; at some point the additional mode providing XT support was dropped from the 101/102s, whether this was with the introduction of the '401 or later is unclear.
That sounds really weird to me, because my understanding is that the first PS/2 computers actually came with keyboards that only handled Scan Code Set 3, and it was only later that IBM made 101-key keyboards that were compatible with their older computers like the AT after intense popular demand.
John Savard, wow, is that really you?
That's particularly interesting, I've never seen anything to suggest this with IBM 'boards. I do however recall speaking someone in possession of two apparently non-working Compaq Enhanced II 'boards, which I believe were for the second generation of Compaq Deskpros; this may well have been the first machines to clone the PS/2 keyboard/mouse interface on-board (though they use the ISA bus and Compaq proprietary memory expansion). If I remember correctly, when connected to a modern PC (possibly via USB) the LEDs would light but they would not function at all: that they used only scan code set 3 was my suggested explanation. Unfortunately, I never did get my hands on one to test with my Deskpro 386s...
~~~
Reading through the above mentioned 7531/7532 tech ref's keyboard information, I have noticed something that may be significant: using the system-end command Select Alternate Scan Codes [0xF0] it is apparently "not possible to switch to set 3 from another set". It may be possible for this event to occur when the 1386887 is hotplugged (as it likely supports only set 3) if set 2 was previously in use.