Author Topic: Can anyone identify this keyboard?  (Read 8018 times)

0 Members and 1 Guest are viewing this topic.

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Can anyone identify this keyboard?
« on: Mon, 29 November 2021, 13:34:08 »
Hi all,

I came across this curious board, which – lacking much of any identifiable information – has proven to be a bit of a (perhaps short-lived) mystery. All I can discern is that the logo (if that is indeed what it is) appears to be three slightly diagonal bars (in the section for the lock lights), and a serial number which might be KC7106829.

It also has a quite interesting layout with a cross-nav, and an oddly-shaped enter (neither big-ass, nor ISO or the thinner ANSI, but more of a fusion between a big-ass enter and the ISO enter – or perhaps all three – if that makes sense)

Since the board has not appeared in physical form, it has proven a challenge to identify it from simply looking at pictures.

Any input would be appreciated.  ^-^


Offline sefixmm

  • Posts: 132
Re: Can anyone identify this keyboard?
« Reply #1 on: Tue, 30 November 2021, 12:28:23 »
No idea but at your place i try on deskthority.net, the board is more specialized in vintage boards ;)

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #2 on: Wed, 01 December 2021, 12:51:53 »
Yeap – I thought of that as well. I've done that now, let's see if it sheds any more light on this board which apparently prefers to remain anonymous. 
Thanks for the input.  :thumb:

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #3 on: Sun, 12 December 2021, 10:01:08 »
Well, I had no luck getting members on Deskthority to identify this. I even bought the keyboard, thinking it would be easier to see what type it was after dismantling it, but to no avail.

All I can say for certain is that the board has Alps SKCL Cream switches, and that the only adapter which works with it is @hasu's TMK adapter. :) My Soarers only produced error codes, and my passive AT-to-PS/2 and mouse+keyboard combo adapters did nothing.

The board also has a DIP-switch bank with eight switches underneath the PCB (CTS 206-8 T826) which allows protocol changes, et al.

I did a number of tests (>20+) with @hasu's adapter and got it to work when all switches were set off and a number of other settings (none of which worked with the AT adapters, even though it is registered as AT84). When (presumably) set to XT, the adapter only registers error codes.

It almost appears as if support for this, or a very similar model, was specifically added to support it. @hasu: is it possible to determine the type based on this (the id is reported as 0000 when it is detected as AT84, so perhaps not...)

279813-0

The serial number appears to indicate a model which is “KC71”

279815-1

Close-up of logo, which is three parallel bars with a shade-effect:

279817-2

The only other indication is a PCB number which is 2051526-01

279819-3

The microcontroller it uses is a National Semiconductor INS8039N-11 (https://www.cpu-world.com/CPUs/8039/National%20Semiconductor-INS8039N-11%20-%20P8039L.html)

279821-4

Picture of full board

279823-5

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #4 on: Sun, 12 December 2021, 19:44:09 »
I did a number of tests (>20+) with @hasu's adapter and got it to work when all switches were set off and a number of other settings (none of which worked with the AT adapters, even though it is registered as AT84). When (presumably) set to XT, the adapter only registers error codes.

It almost appears as if support for this, or a very similar model, was specifically added to support it. @hasu: is it possible to determine the type based on this (the id is reported as 0000 when it is detected as AT84, so perhaps not...)

Posting debug logs of Soarer's and TMK converter would be helpful to know your situation.


Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #5 on: Sun, 12 December 2021, 20:11:22 »
Thanks for replying @hasu. I performed quite a number of tests with the keyboard being detected as AT84 (working) and XT (not working) by changing the dip switch settings around.

btw.– This might be irrelevant, but I followed the Northgate Omnikey documentation (https://deskthority.net/wiki/File:Northgate_OmniKey_Users_Guide_Apr92.pdf), as that was the only other board I currently found with a similar DIP-switch.

However, this board appears to deviate slightly, since the board does not work in XT mode with DIP switch 1 set to “on”. Your adapter also works with the other low-numbered switches being set in the on position as well (although this should, if correct, change the protocol to ATT6300, Amiga, Tandy, etc). At least it worked with DIP switch 2 set to “on” and switch 3 (Tandy 1000SX and 1OOOTX) set to “on” as well (detects as AT84). It matches the documentation if all switches are set to “off” for AT-mode though – although only your adapter detects the board properly (same as the other modes). :)

Including the debug output below (again, based on multiple tests). The Soarer is consistently repeating keys, even though these are not being pressed when the TMK works fine in the same mode.

* unknown-kybd.txt (99.97 kB - downloaded 78 times.)

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #6 on: Sun, 12 December 2021, 21:38:14 »
Which DIP switch setting does TMK works better with? All swites off?

The keyboard doesn't reply its keyboard ID. But TMK conveter seems to work well in AT84 mode, with some of DIP switch settings at least.
Is there any problem with TMK converter AT84 mode?

The keyboard seems to support XT protocol but both converters tend to miss its signal, signal timing may be unusual.
This part indicates that the keyboard works in XT protocol.
Quote
1593 Waiting for new device:..............
1594 Listening:
1595 TMK:111e8c/LUFA:d6a7df
1596 USB configured.
1597 Loop start.
1598 I711
1599 803 ERR:20 ISR:0140 A3712 wFF
1600 3715 ERR:12 ISR:0000 X4216
1601 5089 PRT:21 ISR:00A0 r00 W5089 wF2 R R R R R R R R R R R6071
1602 ID:FFFF(XT)
1603 6072 ERR:11 ISR:0000 S6072 L6072
1604 12922 ERR:20 ISR:2D40 E12922 I12923 r96
1605 13015 PRT:21 ISR:96A0 r16 r96
1606 13392 ERR:20 ISR:5A80 A15924 wFF
1607 15927 ERR:12 ISR:0000 X16428 r00 W17301 r17 W17532
1608 17639 ERR:20 ISR:2F40 wF2 R18035
1609 ID:FFFF(XT)

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #7 on: Tue, 14 December 2021, 15:24:07 »
Interesting observation about the XT-mode. My main concern was of course to try to identify the board in case there were some AT-specific models you added in order to provide support.

After some fiddling with the switches, I do get some output with the Soarer. It is not stable though, consistently freezing whenever the Pause-key – which is located next to backspace on this board – is pressed (your adapter toggles NumLock when it is pressed, in a variety of DIP-switch settings, and is stable/behaves consistently.)
So definitely no issues with your adapter when running the board in AT-mode (apart from some keys, such as PrintSrn, not correctly registering as such)

I had time to double-check and to perform some further tests, and the board is detected by the TMK adapter (as AT84) with DIP switch #2 set to on (AT&T 6300), as well as #3 (Tandy 1000SX) on and #1 and #3 on (Amiga 2000 & 2500). So I doubt the Northgate documentation applies for this board. But it was the only reference I had.

At some point in the tests hid_listen got “unknown id, report to TMK”–not sure if the output would help in any way.

I have not seen any of my boards report an id with the adapters though, which would uniquely identify them.

Code: [Select]
Listening:

TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I696 A3698 wFF rFA
3700 PRT:10 ISR:FE90 rAA W3701 r16 W3760 r66 W3767 wF2 rFA r0D r0E R3782
Unknown ID: Report to TMK wF0 rFA w02 rFA
ID:0D0E(AT) S3788 wED rFA w00 rFA L3793 r70 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 r
F0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r7
7 rF0 r14 r14 r77 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA
 w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r14 r77 wED rFA w02 rFA rF0 r77 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 rF0 r16 rF0 r0D r14 r77 wED rFA w02 rFA rF0 r70 r14 r77 rF0 rF0 !CS2_F0! F0
E6180 I6181
6186 ERR:20 ISR:E000 A9182 wFF
9187 ERR:16 ISR:0000 X9688
Device disconnected.

btw.–the NorthGate OmniKey documentation is the following: (adding it here even though it doesn't apply for this “unknown” board...)

279891-0

Rest of the tests where the board is detected as AT–

Code: [Select]
Listening:

TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I707 A3709 wFF rFA
3711 PRT:10 ISR:FE90 rAA W3712 wF2 rFA R4715
ID:0000(AT_AT84) S4715 wED rFA w00 rFA L4720 r66 rF0 r66 r66 rF0 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 rF0 r66 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77
rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r
7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r1
2 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7D rF0 r7D r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r12 r7A rF0
 r7A r12 rF0 r12 r12 r7A rF0 r7A r12 rF0 r12 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r59 rF0 r59 r59 rF0 r59 r58 wED rFA w04 rFA rF0 r58 r3C r43 rF0 r3C rF0 r43 r3C r43 rF0 r3C r3C
rF0 r43 r43 rF0 r3C rF0 r43 r58 rF0 r58 wED rFA w00 rFA r66 r66 r66 r66 rF0 r66 r66 rF0 r66 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r4A r
F0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r7B rF0 r7B r7B rF0 r7B r7B rF0 r7B r7B rF0 r7B r7B rF0 r7B r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r1
2 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12
Device disconnected.
Waiting for new device:........................................................
Listening:

Keyboard ID: 0000
Code Set: 2 (extended)
Mode: AT/PS2

rFA +00 wED rFA w00 W204wED W109wED W104rFA rAA
r44 +12 d12 o
rF0 r44 -12 u12
ir43 +0C d0C
rF0 r43 -0C u0C
ir43 +0C d0C
rF0 r43 -0C u0C
ir43 +0C d0C
rF0 r43 -0C u0C
ur3C +18 d18
rF0 r3C -18 u18
yr35 +1C d1C
rF0 r35 -1C u1C
yr35 +1C d1C
rF0 r35 -1C u1C
ur3C +18 d18
rF0 r3C -18 u18
r58 +39 d39 wED W104wED W109wED W104rFA

Device disconnected.
Waiting for new device:...
Listening:
wEE rEE wF2 rFA

remaining: FFFC


Keyboard ID: 0000
Code Set: 2
Mode: AT/PS2
wED W104wED W109wED W104rFA +00 rAA
r3C +18 d18
rF0 r3C -18 u18
r3C +18 d18
rF0 r3C -18 u18
r43 +0C d0C
rF0 r43 -0C u0C
r43 +0C d0C
rF0 r43 -0C u0C
r35 +1C d1C
rF0 r35 -1C u1C
r3C +18 d18
rF0 r3C -18 u18
r43 +0C d0C
rF0 r43 -0C u0C
r44 +12 d12
rF0 r44 -12 u12
r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A

Not sure if this helps in any way, just including it for completeness. Seems to be quite non-trivial to identify this strange piece of hardware. ;)

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #8 on: Thu, 16 December 2021, 18:35:18 »
Interesting observation about the XT-mode. My main concern was of course to try to identify the board in case there were some AT-specific models you added in order to provide support.

After some fiddling with the switches, I do get some output with the Soarer. It is not stable though, consistently freezing whenever the Pause-key – which is located next to backspace on this board – is pressed (your adapter toggles NumLock when it is pressed, in a variety of DIP-switch settings, and is stable/behaves consistently.)
What happens when you press CapsLock? CapsLock key doesn't freeze Soarer's?


Quote
So definitely no issues with your adapter when running the board in AT-mode (apart from some keys, such as PrintSrn, not correctly registering as such)
What are the "some keys" exactly? I like to know their scan code.




Quote
I had time to double-check and to perform some further tests, and the board is detected by the TMK adapter (as AT84) with DIP switch #2 set to on (AT&T 6300), as well as #3 (Tandy 1000SX) on and #1 and #3 on (Amiga 2000 & 2500). So I doubt the Northgate documentation applies for this board. But it was the only reference I had.

According to Wikipedia Tandy 1000SX keyboard is not compatible to AT, it says "TRS-80 compatible; non-XT compatible". The DIP SW setting doesn't mean Tandy 1000SX mode if Wikipedia description is correct.
https://en.wikipedia.org/wiki/Tandy_1000#System_specifications
Also Amiga keyboard is not compatible to AT and the converter doesn't support it at all.
https://github.com/tkoecker/amigakb/blob/master/amigakb.ino

So your keyboard DIPSW doesn't match with Northgate manual. I guess DIPSW just changes scan code of some key, perhaps?
It would be useful for future reference to look into key by key and make scan codes diagrams for each DIPSW setting like this. 
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#at---scan-code-set-2


Quote
At some point in the tests hid_listen got “unknown id, report to TMK”–not sure if the output would help in any way.

I have not seen any of my boards report an id with the adapters though, which would uniquely identify them.
I think some keys were pressed radomly while the converter tried to read ID, in this case Tab(0D) and Esc(0E).
Agree. The keyobard doesn't seems to report any ID.

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #9 on: Mon, 20 December 2021, 13:26:32 »
Interesting observation about the XT-mode. My main concern was of course to try to identify the board in case there were some AT-specific models you added in order to provide support.

After some fiddling with the switches, I do get some output with the Soarer. It is not stable though, consistently freezing whenever the Pause-key – which is located next to backspace on this board – is pressed (your adapter toggles NumLock when it is pressed, in a variety of DIP-switch settings, and is stable/behaves consistently.)
What happens when you press CapsLock? CapsLock key doesn't freeze Soarer's?

I guess you mean NumLock? Not instantly. But the Soarer behaviour is not consistent (more on that below)

So definitely no issues with your adapter when running the board in AT-mode (apart from some keys, such as PrintSrn, not correctly registering as such)

What are the "some keys" exactly? I like to know their scan code.

One key is "*", to the right of NumLock. This key produces "§" and "¶" with Shift. NumLock behaves correctly, both with your adapter and the Soarer.

Code: [Select]
TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I760 A3761 wFF rFA
3763 PRT:10 ISR:FE90 rAA W3764 wF2 rFA R4768
ID:0000(AT_AT84) S4768 wED rFA w00 rFA L4773 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 r58 r58 r58 r58 r58 r58 r58 r58 rF0 r58 wED rFA w00 rFA r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 rF0 r58 wED rFA w00 rFA r11 rF0 r11 r11 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r11

Another key is PrintScrn (which outputs "*" when pressed)–

Code: [Select]
r7C rF0 r7C r7C rF0 r7C r7C rF0 r7C

The behaviour of PrintScrn is consistent, regardless of which DIP-settings are used. The "*" key (which is switched between "/" on newer boards) varies somewhat depending on the DIP settings. It does not however output "*" with any settings I've tried so far. Main testing is based on all switches set to “off”, btw., as I thought that would be the cleanest approach, until (if we ever) know what type of keyboard this is ;), and what the actual DIP settings do.

Scancodes when pressing the “Pause”-key with your adapter:

Code: [Select]
r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14

The Soarer is behaving so weirdly that it doesn't seem to be providing much useful output. When testing a number of times with it again, it crashes after the fourth or fifth NumLock press (which also toggles the LED). The Pause-key doesn't, unlike your adapter.

Output below is from two separate tests with the same DIP settings (switches 1 through 3 are on). On first attempt, the board is detected as AT/PS2, and when reconnecting it, it detects as XT.

Code: [Select]
Keyboard ID: 0000
Code Set: 2 (extended)
Mode: AT/PS2

rFA +00 wED W104wED W109wED W104rFA rAA
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 W204wED W109wED rFA w00 W204rFA
r77 +53 d53 wED rFA w02 W204wED W109wED W104rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 W204wED W109wED rFA w00 W204rFA
r77 +53 d53 wED W104wED W109wED W109r77
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED rFA w02 W204wED W109wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W104rFA rAA
r77 +53 d53 wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 W204wED W109wED rFA w00 W204rFA
r77 +53 d53 wED W104wED W109wED rFA w02 W204rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED rFA w00 rFA
r77 +53 d53 wED W104wED W109wED W109r77
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W104rFA


^[[1;2Q^[[1;2Q





Device disconnected.
Waiting for new device:.....
Listening:
wEE

remaining: FFFC


Keyboard ID: 0000
Code Set: 1
Mode: PC/XT

rFF R05
R06 R06 rD0
R06 R06 R06 R06 R06 r9F R06 R06 R06 R05
R06 rA5
R06 R06 R06 R06 R06 rDF R05
R06 R06 R06 R05 R06 rBB R06 R06 R06 R06 R06 rDF R06 R05 R06 R06 R06 R06 R06 r1F +16 R06 d16 R05
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Device disconnected.

The behaviour with the "s" printing occurs quite regularly when the Soarer crashes, and in the instance above it is after pressing the “Pause”-key.

The same test was performed with your adapter (DIP switches unchanged), and it behaves correctly (I pressed the NumLock and Pause-keys a number of times). Only difference is that the "*" key to the right of NumLock now outputs "(" and "/" outputs "-". So the DIP setting is apparently having an impact on those.

Code: [Select]
Listening:

TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I1209 A4210 wFF rFA
4212 PRT:10 ISR:FE90 rAA W4213 wF2 rFA R5217
ID:0000(AT_AT84) S5217 wED rFA w00 rFA L5222 r0E rF0 r0E r0E rF0 r0E r0E rF0 r0E r0E rF0 r0E r0E rF0 r0E r0E rF0 r0E r0E rF0 r0E r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r12 r3E rF0 r3E r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r7B rF0 r7B r7B rF0 r7B r79 rF0 r79 r79 rF0 r79 r41 rF0 r41 r41 rF0 r41 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r4A rF0 r4A r12 rF0 r12 r45 r46 rF0 r46 rF0 r45 r4E r46 rF0 r4E rF0 r46 r4E r46 rF0 r4E r45 r4E rF0 r46 rF0 r45 rF0 r4E r36 r3D r3E rF0 r36 rF0 r3D r36 rF0 r3E r3D r3E rF0 r36 r36 rF0 r3E rF0 r3D rF0 r36 r16 rF0 r16 r16 rF0 r16 r16 rF0 r16 r1E rF0 r1E r1E rF0 r1E
Device disconnected.

Test below when Soarer immediately crashes when pressing “Pause”, although pressing NumLock works.
Code: [Select]
Keyboard ID: 0000
Code Set: 2
Mode: AT/PS2

wED W104wED W109wED W104rFA +00 rAA
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r12 +E1 dE1
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
r0E +35 d35
rF0 r0E -35 u35
rF0 r12 -E1 uE1
r12 +E1 dE1 r0E +35 d35 rF0 r0E -35 u35 r12 rF0 r12 -E1 uE1
r12 +E1 dE1 r0E +35 d35 rF0 r0E -35 u35 r12 rF0 r12 -E1 uE1
r12 +E1 dE1 r3D +24 d24 rF0 r3D -24 u24 r12 rF0 r12 -E1 uE1
r12 +E1 dE1 r3D +24 d24 rF0 r3D -24 u24 r12 rF0 r12 -E1 uE1
r12 +E1 dE1 r3D +24 d24 rF0 r3D -24 u24 r12 rF0 r12 -E1 uE1
r7B +56 d56
rF0 r7B -56 u56
r7B +56 d56
rF0 r7B -56 u56
r7B +56 d56
rF0 r7B -56 u56
r79 +57 d57
r79 +57 d57
rF0 r79 -57 u57
r79 +57 d57
rF0 r79 -57 u57
r79 +57 d57
rF0 r79 -57 u57
r41 +36 d36
rF0 r41 -36 u36
r41 +36 d36
rF0 r41 -36 u36
r41 +36 d36
rF0 r41 -36 u36
r69 +59 d59
rF0 r69 -59 u59
r69 +59 d59
rF0 r69 -59 u59
r72 +5A d5A
rF0 r72 -5A u5A
r7A +5B d5B
rF0 r7A -5B u5B
r77 +53 d53 wED rFA w02 rFA
rF0 r77 -53 u53
r69 +59 d59
rF0 r69 -59 u59
r72 +5A d5A
rF0 r72 -5A u5A
r7A +5B d5B
rF0 r7A -5B u5B
r6B +5C d5C
rF0 r6B -5C u5C
r73 +5D d5D
rF0 r73 -5D u5D
r74 +5E d5E
rF0 r74 -5E u5E
r6C +5F d5F rF0 r6C -5F u5F
r6B +5C d5C
rF0 r6B -5C u5C
r73 +5D d5D
rF0 r73 -5D u5D
r74 +5E d5E
rF0 r74 -5E u5E
r6C +5F d5F
rF0 r6C -5F u5F
r75 +60 d60
rF0 r75 -60 u60
r7D +61 d61
rF0 r7D -61 u61
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W104rFA rAA
r77 +53 d53 wED W104wED W109wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 rFA
r77 +53 d53 wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED rFA w02 W204wED W109wED W104rFA rAA r77
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED W104wED W109wED rFA w02 W204rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 W204wED W109wED rFA w00 W204rFA
r77 +53 d53 wED W104wED W109wED W109r77
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED rFA w02 W204wED W109wED W104rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W109
r77 +53 d53 wED rFA w02 rFA
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED rFA w00 W204wED W109wED rFA w00 rFA
r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12 rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C rF0 r44 -12 u12
r66 +2A d2A
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
r66
rF0 r66 -2A u2A
r66 +2A d2A
rF0 r66 -2A u2A
r43 +0C d0C
rF0 r43 -0C u0C
r44 +12 d12
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12 rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C
rF0 r44 -12 u12 r43 +0C d0C
r44 +12 d12
rF0 r43 -0C u0C rF0 r44 -12 u12
r14 +E0 dE0 r77 +53 d53 wED W104wED W109wED W104rFA

Device disconnected.

I had time to double-check and to perform some further tests, and the board is detected by the TMK adapter (as AT84) with DIP switch #2 set to on (AT&T 6300), as well as #3 (Tandy 1000SX) on and #1 and #3 on (Amiga 2000 & 2500). So I doubt the Northgate documentation applies for this board. But it was the only reference I had.

According to Wikipedia Tandy 1000SX keyboard is not compatible to AT, it says "TRS-80 compatible; non-XT compatible". The DIP SW setting doesn't mean Tandy 1000SX mode if Wikipedia description is correct.
https://en.wikipedia.org/wiki/Tandy_1000#System_specifications
Also Amiga keyboard is not compatible to AT and the converter doesn't support it at all.
https://github.com/tkoecker/amigakb/blob/master/amigakb.ino


So your keyboard DIPSW doesn't match with Northgate manual. I guess DIPSW just changes scan code of some key, perhaps?
It would be useful for future reference to look into key by key and make scan codes diagrams for each DIPSW setting like this. 
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#at---scan-code-set-2
Yes, I wasn't trying to suggest that your adapter should support Tandy 1000 (or Amiga 1000, for that matter). ;) I mentioned it as a reason the documentation for the NorthGate OmniKey did not apply to this keyboard, as the behaviour would then be quite different. (But it was the only doc for a keyboard with a similar 8-DIP switch)

At some point in the tests hid_listen got “unknown id, report to TMK”–not sure if the output would help in any way.

I have not seen any of my boards report an id with the adapters though, which would uniquely identify them.

I think some keys were pressed radomly while the converter tried to read ID, in this case Tab(0D) and Esc(0E).
Agree. The keyobard doesn't seems to report any ID.

That is probably the case. The reason is that the DIP-switch is at the bottom, and flipping the keyboard back and forth strains the cable connection. I've done that however now with the latest tests, so it should not be an issue.

(sorry for the late reply btw. – I've been restoring the keyboard, including the keyboard PCB cable)

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #10 on: Mon, 20 December 2021, 21:55:11 »

What are the "some keys" exactly? I like to know their scan code.

One key is "*", to the right of NumLock. This key produces "§" and "¶" with Shift. NumLock behaves correctly, both with your adapter and the Soarer.

Code: [Select]
TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I760 A3761 wFF rFA
3763 PRT:10 ISR:FE90 rAA W3764 wF2 rFA R4768
ID:0000(AT_AT84) S4768 wED rFA w00 rFA L4773 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 r58 r58 r58 r58 r58 r58 r58 r58 rF0 r58 wED rFA w00 rFA r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 rF0 r58 wED rFA w00 rFA r11 rF0 r11 r11 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r11

The key spits out scan code 0E for some reason, whih should be used for '§' key on your layout or `(grave) on US.
What scan code does '§' key to the left of '1' spit out then?




Quote
Another key is PrintScrn (which outputs "*" when pressed)–

Code: [Select]
r7C rF0 r7C r7C rF0 r7C r7C rF0 r7C

The behaviour of PrintScrn is consistent, regardless of which DIP-settings are used. The "*" key (which is switched between "/" on newer boards) varies somewhat depending on the DIP settings. It does not however output "*" with any settings I've tried so far. Main testing is based on all switches set to “off”, btw., as I thought that would be the cleanest approach, until (if we ever) know what type of keyboard this is ;), and what the actual DIP settings do.

PrintScrn should use 'E0 7C'(or 84) instead of just 7C, which means Keypad*.



Quote
Scancodes when pressing the “Pause”-key with your adapter:

Code: [Select]
r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14

Pause keys should speak 'E1 14 77 E1 F0 14 F0 77' in PS/2 protocol. But the keyboard spits out '14 77 F0 77 F0 14', this means Ctrl+NumLock.
Ctrl+NumLock is interpreted as Pause function on PC/AT according to technical reference.



It seem that the keyboard was used with kind of old PC/AT clone and these keys should have worked there. But they don't work with PS/2 computers and converters probably.

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #11 on: Tue, 21 December 2021, 01:13:46 »
Interesting observation about the XT-mode. My main concern was of course to try to identify the board in case there were some AT-specific models you added in order to provide support.

After some fiddling with the switches, I do get some output with the Soarer. It is not stable though, consistently freezing whenever the Pause-key – which is located next to backspace on this board – is pressed (your adapter toggles NumLock when it is pressed, in a variety of DIP-switch settings, and is stable/behaves consistently.)
What happens when you press CapsLock? CapsLock key doesn't freeze Soarer's?

I guess you mean NumLock? Not instantly. But the Soarer behaviour is not consistent (more on that below)

Pause key includes 77, which is scan code for NumLock and I thought Soarer's can misinterpret Pause as NumLock.
And I guessded that Soarer's converter fails when it tries to control keyboard LED. If so it will fail also when CapsLock is pressed.



Quote
The Soarer is behaving so weirdly that it doesn't seem to be providing much useful output. When testing a number of times with it again, it crashes after the fourth or fifth NumLock press (which also toggles the LED). The Pause-key doesn't, unlike your adapter.

Output below is from two separate tests with the same DIP settings (switches 1 through 3 are on). On first attempt, the board is detected as AT/PS2, and when reconnecting it, it detects as XT.

Code: [Select]
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED rFA w00 rFA
r77 +53 d53 wED W104wED W109wED W109r77
rF0 r77 -53 u53
r77 +53 d53
rF0 r77 -53 u53 wED W104wED W109wED W104rFA

Code: [Select]
R06 R06 R06 R06 R06 rDF R05
R06 R06 R06 R05 R06 rBB R06 R06 R06 R06 R06 rDF R06 R05 R06 R06 R06 R06 R06 r1F +16 R06 d16 R05
sssssssss

'W' and 'R' menas error code in Soarer's converter log.
https://github.com/tmk/tmk_keyboard/wiki/Soarer's-Converter#diagnostic-output

As I guessed Soarer's fails and retries when it controls LED and freezes in the end.
After that it can't read keyboard signals correctly at all.




Quote
Test below when Soarer immediately crashes when pressing “Pause”, although pressing NumLock works.
Code: [Select]
r14 +E0 dE0 r77 +53 d53 wED W104wED W109wED W104rFA

Device disconnected.

It interprets Pause(14 77) as Cntrol(14) and NumLock(77), then it failes to change LED indicator and freezes.

I don't know why Soarer's fails easily with Puase comparing to NumLock.
But timing of singnal of the keyboard may be peculiar and out of what Soarer's expects.

I'm curious about signal wave form of the keyboard.
Can you try attached firmware when you have time?
It outputs timing data of the signal on hid_listen. Just press several keys to get data.

* sctrace_32u4.hex (5.96 kB - downloaded 53 times.)


Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #12 on: Wed, 22 December 2021, 10:27:34 »

What are the "some keys" exactly? I like to know their scan code.

One key is "*", to the right of NumLock. This key produces "§" and "¶" with Shift. NumLock behaves correctly, both with your adapter and the Soarer.

Code: [Select]
TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I760 A3761 wFF rFA
3763 PRT:10 ISR:FE90 rAA W3764 wF2 rFA R4768
ID:0000(AT_AT84) S4768 wED rFA w00 rFA L4773 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 r58 r58 r58 r58 r58 r58 r58 r58 rF0 r58 wED rFA w00 rFA r58 wED rFA w04 rFA r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r58 r58 rF0 r58 wED rFA w00 rFA r11 rF0 r11 r11 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 r12 r0E rF0 r0E r12 rF0 r12 rF0 r11

The key spits out scan code 0E for some reason, whih should be used for '§' key on your layout or `(grave) on US.
What scan code does '§' key to the left of '1' spit out then?

The | key spits out
Code: [Select]
r0E rF0 r0E – which is correct for the layout and keycap. § is produced with shift+| (same as for newer keyboards):

Code: [Select]
r59 r0E rF0


Another key is PrintScrn (which outputs "*" when pressed)–

Code: [Select]
r7C rF0 r7C r7C rF0 r7C r7C rF0 r7C

The behaviour of PrintScrn is consistent, regardless of which DIP-settings are used. The "*" key (which is switched between "/" on newer boards) varies somewhat depending on the DIP settings. It does not however output "*" with any settings I've tried so far. Main testing is based on all switches set to “off”, btw., as I thought that would be the cleanest approach, until (if we ever) know what type of keyboard this is ;), and what the actual DIP settings do.

PrintScrn should use 'E0 7C'(or 84) instead of just 7C, which means Keypad*.

Well, the actual print-screen scancode is handled via
Code: [Select]
SysRq with your adapter, as well as the Soarer, for my Copam board also (i.e, the PrintScrn key registers the same way as this "unknown" keyboard). Problem is, it doesn't have a dedicated SysRq key.


Scancodes when pressing the “Pause”-key with your adapter:

Code: [Select]
r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14


Pause keys should speak 'E1 14 77 E1 F0 14 F0 77' in PS/2 protocol. But the keyboard spits out '14 77 F0 77 F0 14', this means Ctrl+NumLock.
Ctrl+NumLock is interpreted as Pause function on PC/AT according to technical reference.

Sounds like Ctrl+Numlock is "correct" then, as it sends the pause function.

It seem that the keyboard was used with kind of old PC/AT clone and these keys should have worked there. But they don't work with PS/2 computers and converters probably.

It has been used with something quite peculiar for sure. If it is indeed a clone-keyboard it sure is built quite sturdy for a clone (which has some kind of logo on it no-one seems familiar with;) – coming at exactly 2.5 kg (with the semi-bulletproof metal backplate weighing in at exactly 1 kilogram as well) (not mentioning the Alps SKCL Cream switches and brass screwsockets, etc.)

You are correct that the Soarer gets confused with the NumLock + CapsLock LEDs. It works 3-4 times, then the LED briefly registers, and then nothing (although my 2nd keyboard switches LED state, so it is registered afterwards, before the Soarer freezes a little while later)

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #13 on: Wed, 22 December 2021, 10:44:54 »
Pause key includes 77, which is scan code for NumLock and I thought Soarer's can misinterpret Pause as NumLock.
And I guessded that Soarer's converter fails when it tries to control keyboard LED. If so it will fail also when CapsLock is pressed.

Yes, that is an accurate observation.

'W' and 'R' menas error code in Soarer's converter log.
https://github.com/tmk/tmk_keyboard/wiki/Soarer's-Converter#diagnostic-output

As I guessed Soarer's fails and retries when it controls LED and freezes in the end.
After that it can't read keyboard signals correctly at all.

That is also correct – after a couple of times it freezes, in the meantime the 2nd keyboard registers a change in the LED (although the LED on this keyboard doesn't toggle)



(14 77) as Cntrol(14) and NumLock(77), then it failes to change LED indicator and freezes.

I don't know why Soarer's fails easily with Puase comparing to NumLock.
But timing of singnal of the keyboard may be peculiar and out of what Soarer's expects.

I'm curious about signal wave form of the keyboard.
Can you try attached firmware when you have time?
It outputs timing data of the signal on hid_listen. Just press several keys to get data.

This proved a little tricky – as the Soarer firmware in the hex file did not work correctly with the keyboard set with all DIP switches to "off". I changed these around a couple of times, and the setting which works is when setting DIP #8 to “on” (this, incidentally, is what the keyboard was set to when I received it). However, your adapter then didn't work with it at all, and the Soarer only registered error-codes.

I left the first attempts in the debug output as-is, although only the last one registered keypresses.

I tried a few alphanumeric keys, then switched to NumLock + CapsLock and then Pause, before going back to alphanumeric. It did not appear to crash the fw/adapter this time.

Code: [Select]
Waiting for new device:...
Listening:
sctrace v1.01
000AFF1 0009FF1 CFE7FF0 0009FF1 0742FF0 0A3AFF0 0A63FF0 0AA4FF0 0B83FF0 15F4FF0
2FDFFF0 0009FF1 000AFF1 98E6FF0 D74FFF0 F4C8FF0 F6A9FF0 FCFAFF0 000AFF1 0901FF0
10D3FF0 2C75FF0 A220FF0 A78FFF0 0009FF1 4C9CFF0 5771FF0 7033FF0 000AFF1 000AFF1

Device disconnected.
Waiting for new device:......
Listening:
sctrace v1.01
000AFF1 0009FF1
Device disconnected.
Waiting for new device:........................
Listening:
sctrace v1.01
000AFF1 0009FF1
Device disconnected.
Waiting for new device:.................
Listening:
sctrace v1.01
000AFF1 0009FF1
Device disconnected.
Waiting for new device:................
Listening:
sctrace v1.01
000AFF1 0009FF1 C936FE0 CC2DFC0 CC7EFD0 DBCEFF0 E43DFD0 E52DFC0 ED9EFE0 F685FC0
FFE6FE0 0009FE1 08CDFC0 122EFE0 1B15FC0 2475FE0 2D5DFC0 36BEFE0 3FA5FC0 4906FE0
51ECFC0 5B4DFE0 6434FC0 6D96FE0 767DFC0 7F3EFE0 000AFE1 0009FE1 00D3FC0 0125FD0
1075FF0 18E4FD0 21F4FF0 2ADBFD0 2BCBFC0 343BFE0 3D22FC0 4683FE0 4F6CFC0 505BFD0
587BFF0 6164FD0 6253FC0 6AC3FE0 73AAFC0 749BFD0 7CBCFF0 85A2FD0 8692FC0 8F03FE0
97EAFC0 A14AFE0 AA32FC0 B2F3FE0 0009FE1 0009FE1 F748FC0 F799FD0 0009FD1 06E8FF0
0F56FD0 186AFF0 214EFD0 223FFC0 2AAFFE0 3396FC0 3CF7FE0 45DEFC0 46D0FD0 4EEFFF0
57D7FD0 58C6FC0 6138FE0 6A1EFC0 6B11FD0 732EFF0 7C16FD0 7D06FC0 8576FE0 8E5DFC0
8F4EFD0 976FFF0 A056FD0 A0F5FC0 A916FE0 0009FE1 000AFE1 C537FC0 C588FD0 D4D8FF0
DD47FD0 E658FF0 EF40FD0 F030FC0 F8A1FE0 0009FE1 0187FC0 0AE8FE0 13CEFC0 14C1FD0
1CDFFF0 25C7FD0 26B7FC0 2F28FE0 380EFC0 3900FD0 4120FF0 4A06FD0 4AF6FC0 5367FE0
5C4EFC0 65AFFE0 6E96FC0 7756FE0 0009FE1 000AFE1 BC3CFC0 BC8CFD0 CBDDFF0 D44CFD0
DD5CFF0 E643FD0 E733FC0 EFA5FE0 F88BFC0 000AFC1 01EDFE0 0AD3FC0 0BC5FD0 13E5FF0
1CCBFD0 1DBBFC0 262BFE0 2F13FC0 3004FD0 3825FF0 410BFD0 41FEFC0 4A6CFE0 5352FC0
5444FD0 5C63FF0 654AFD0 65EAFC0 6E0CFE0 0009FE1 0009FE1 A798FC0 A7E9FD0 B73AFF0
BFA8FD0 C098FC0 C909FE0 D1F0FC0 D2E1FD0 DB02FF0 E3E7FD0 E4D8FC0 ED48FE0 F62FFC0
FF90FE0 000AFE1 0877FC0 11D8FE0 1AC0FC0 2420FE0 2D07FC0 3668FE0 3F50FC0 48AFFE0
5198FC0 5A57FE0 0009FE1 0009FE1 D7AFFC0 D800FD0 E750FF0 EFC0FD0 F0AFFC0 F921FE0
0009FE1 0208FC0 02F8FD0 0B1BFF0 13FFFD0 14EFFC0 1D61FE0 2648FC0 2FA8FE0 3890FC0
41EFFE0 4AD7FC0 5437FE0 5D20FC0 667FFE0 6F66FC0 7057FD0 7877FF0 815EFD0 81FEFC0
8A1FFE0 0009FE1 000AFE1 8806FC0 8857FD0 97A6FF0 A015FD0 A106FC0 A978FE0 B25CFC0
B34EFD0 BB6DFF0 C454FD0 C545FC0 CDB6FE0 D69CFC0 DFFEFE0 E8E4FC0 F245FE0 FB2CFC0
0009FC1 048CFE0 0D73FC0 16D5FE0 1FBBFC0 291DFE0 3203FC0 3AC5FE0 0009FE1 0009FE1
9B9DFC0 9BECFD0 AB3CFF0 B3AAFD0 B49AFC0 BD0BFE0 C5F2FC0 C6E3FD0 CF04FF0 D7EAFD0
D8DAFC0 E14BFE0 EA32FC0 F392FE0 FC79FC0 000BFC1 05DAFE0 0EC1FC0 1822FE0 210AFC0
2A6AFE0 3352FC0 3442FD0 3C63FF0 4549FD0 45EAFC0 4E0DFE0 0009FE1 0009FE1 0A9FFC0
0AF0FD0 1A3FFF0 22AFFD0 2BBFFF0 34A6FD0 3DB7FF0 469EFD0 478EFC0 5000FE0 58E6FC0
6247FE0 6B2FFC0 748FFE0 7D78FC0 86D7FE0 8FBFFC0 9920FE0 A206FC0 AB66FE0 B44EFC0
BD0EFE0 0009FE1 0009FE1 1E75FC0 1EC7FD0 2E16FF0 3685FD0 3F96FF0 487DFD0 518DFF0
5A78FD0 5B65FC0 63D5FE0 6CBEFC0 761DFE0 7F05FC0 8865FE0 914CFC0 9AAEFE0 A394FC0
ACF5FE0 B5DCFC0 B6CDFD0 BEEDFF0 C7D4FD0 C874FC0 D094FE0 000AFE1 0009FE1 4387FC0
43D8FD0 5327FF0 5B96FD0 64A7FF0 6D8FFD0 76A0FF0 7F87FD0 8076FC0 88E7FE0 91CEFC0
9B2EFE0 A415FC0 AD77FE0 B65DFC0 BFBFFE0 C8A5FC0 D207FE0 DAEDFC0 E44FFE0 ED35FC0
F5F6FE0 0009FE1 0009FE1 01D7FC0 0229FD0 1178FF0 19E7FD0 22F7FF0 2BDEFD0 34EFFF0
3DD7FD0 3EC6FC0 4737FE0 501EFC0 5980FE0 6267FC0 6BC8FE0 74AEFC0 7E0FFE0 86F6FC0
9059FE0 993FFC0 9A2FFD0 A24EFF0 AB36FD0 ABD6FC0 B3F6FE0 0009FE1 0009FE1 25B1FC0
2603FD0 3552FF0 3DC4FD0 3EB1FC0 4722FE0 500BFC0 596AFE0 6251FC0 6343FD0 6B62FF0
7449FD0 7539FC0 7DA9FE0 8690FC0 8FF1FE0 98D8FC0 A239FE0 AB20FC0 B481FE0 BD68FC0
C6CAFE0 CFB0FC0 D871FE0 000BFE1 0009FE1 39D9FC0 3A29FD0 4979FF0 51E8FD0 52D7FC0
5B48FE0 642FFC0 6D90FE0 7677FC0 7769FD0 7F8AFF0 886FFD0 895FFC0 91D0FE0 9AB9FC0
A417FE0 ACFFFC0 B65FFE0 BF47FC0 C8A8FE0 D18EFC0 D27FFD0 DA9FFF0 E386FD0 E426FC0
EC48FE0 0009FE1 0009FE1 152EFC0 157FFD0 24CEFF0 2D3DFD0 2E2EFC0 36A1FE0 3F85FC0
48E6FE0 51CDFC0 52BEFD0 5ADEFF0 63C5FD0 64B5FC0 6D27FE0 760DFC0 7F6EFE0 8855FC0
91B5FE0 9A9DFC0 A3FDFE0 ACE4FC0 B647FE0 BF2DFC0 C7EDFE0 000AFE1 0009FE1 B74CFC0
B79DFD0 C6EDFF0 CF5CFD0 D04CFC0 D8BEFE0 E1A4FC0 EB06FE0 F3EDFC0 F4DEFD0 FCFDFF0
0009FF1 05E5FD0 06D4FC0 0F45FE0 182DFC0 218CFE0 2A73FC0 33D5FE0 3CBBFC0 461CFE0
4F04FC0 4FF4FD0 5814FF0 60FCFD0 619CFC0 69BCFE0 0009FE1 0009FE1 A61EFC0 A66FFD0
B5BEFF0 BE2EFD0 C73EFF0 D026FD0 D115FC0 D986FE0 E26EFC0 E35EFD0 EB7DFF0 F465FD0
F555FC0 FDC6FE0 0009FE1 06ACFC0 100DFE0 18F5FC0 2255FE0 2B3CFC0 349DFE0 3D84FC0
46E5FE0 4FCCFC0 588CFE0 0009FE1 0009FE1 80F1FC0 8142FD0 9090FF0 98FFFD0 A210FF0
AAF7FD0 ABE7FC0 B459FE0 BD3FFC0 BE30FD0 C651FF0 CF37FD0 D028FC0 D898FE0 E180FC0
EAE1FE0 F3C7FC0 FD27FE0 0009FE1 060FFC0 0F70FE0 1856FC0 1947FD0 2167FF0 2A4FFD0
2AEEFC0 330FFE0 000AFE1 0009FE1 4064FC0 40B5FD0 5007FF0 5873FD0 5964FC0 61D4FE0
6ABBFC0 6BACFD0 73CDFF0 7CB3FD0 85C5FF0 8EADFD0 8F9BFC0 980CFE0 A0F4FC0 AA54FE0
B33BFC0 BC9CFE0 C584FC0 CEE4FE0 D7CAFC0 E12BFE0 EA12FC0 F2D5FE0 0009FE1 0009FE1
702CFC0 707DFD0 7FCCFF0 883CFD0 892DFC0 919CFE0 9A84FC0 9B75FD0 A394FF0 AC7CFD0
B58CFF0 BE73FD0 BF63FC0 C7D3FE0 D0BBFC0 DA1BFE0 E302FC0 EC63FE0 F54BFC0 FEACFE0
0009FE1 0792FC0 0883FD0 10A3FF0 198AFD0 1A2AFC0 224AFE0 0009FE1 0009FE1 49FAFC0
4A4BFD0 599BFF0 620AFD0 62FAFC0 6B6BFE0 7452FC0 7544FD0 7D63FF0 864BFD0 8F5CFF0
9842FD0 9932FC0 A1A2FE0 AA8AFC0 B3EBFE0 BCD1FC0 C632FE0 CF19FC0 D87AFE0 E161FC0
EAC3FE0 F3A9FC0 FC6AFE0 000AFE1 000AFE1 9644FC0 9695FD0 A5E4FF0 AE54FD0 AF43FC0
B7B4FE0 C09CFC0 C18CFD0 C9ADFF0 D295FD0 DBA4FF0 E48CFD0 E57BFC0 EDECFE0 F6D4FC0
0009FC1 0033FE0 091BFC0 127CFE0 1B62FC0 24C3FE0 2DAAFC0 2E9BFD0 36BBFF0 3FA2FD0
4042FC0 4863FE0 000AFE1 000AFE1 6623FC0 6674FD0 75C3FF0 7E31FD0 7F23FC0 8793FE0
9079FC0 99DAFE0 A2C1FC0 AC22FE0 B509FC0 B5FAFD0 BE1AFF0 C701FD0 C7F3FC0 D062FE0
D949FC0 E2AAFE0 EB91FC0 F4F2FE0 FDD8FC0 0009FC1 073BFE0 1021FC0 18E2FE0 0009FE1
0009FE1 5D36FC0 5D87FD0 6CD6FF0 7545FD0 7635FC0 7EA6FE0 878DFC0 90EEFE0 99D5FC0
A336FE0 AC1DFC0 AD0FFD0 B52EFF0 BE17FD0 BF06FC0 C775FE0 D05CFC0 D9BDFE0 E2A4FC0
EC07FE0 F4EDFC0 F5DDFD0 FDFEFF0 0009FF1 06E5FD0 0784FC0 0FA6FE0 0009FE1 000AFE1
B651FC0 B6A2FD0 C5F2FF0 CE61FD0 CF51FC0 D7C2FE0 E0AAFC0 EA0BFE0 F2F1FC0 FC52FE0
000AFE1 0539FC0 062BFD0 0E4AFF0 1732FD0 1822FC0 2091FE0 297BFC0 32D9FE0 3BC1FC0
4521FE0 4E08FC0 576BFE0 6051FC0 6911FE0 0009FE1 0009FE1 E669FC0 E6BBFD0 F60BFF0
FE7CFD0 FF69FC0 0009FC1 07D9FE0 10C1FC0 1A22FE0 2308FC0 2C69FE0 3550FC0 3641FD0
3E62FF0 4748FD0 4838FC0 50A9FE0 5991FC0 62F2FE0 6BD9FC0 7538FE0 7E20FC0 7F11FD0
8730FF0 9017FD0 90B8FC0 98D8FE0 0009FE1 0009FE1 813DFC0 818EFD0 90DFFF0 994DFD0
A25EFF0 AB46FD0 AC36FC0 B4A8FE0 BD8DFC0 C6EDFE0 CFD5FC0 D0C6FD0 D8E5FF0 E1CDFD0
E2BDFC0 EB2DFE0 F414FC0 FD76FE0 000AFE1 065CFC0 0FBEFE0 18A4FC0 2206FE0 2AECFC0
33ADFE0 0009FE1 0009FE1 EA08FC0 EA5AFD0 F9A9FF0 000AFF1 0218FD0 0B2AFF0 1411FD0
1500FC0 1D71FE0 2658FC0 2FB9FE0 38A1FC0 3991FD0 41B0FF0 4A97FD0 4B88FC0 53F8FE0
5CE0FC0 6641FE0 6F28FC0 7888FE0 8170FC0 8261FD0 8A81FF0 9367FD0 9408FC0 9C28FE0
0009FE1 000AFE1 2EF2FC0 2F44FD0 3E93FF0 4703FD0 47F3FC0 5063FE0 594BFC0 5A3CFD0
625CFF0 6B43FD0 6C32FC0 74A3FE0 7D8BFC0 7E7BFD0 869AFF0 8F81FD0 9074FC0 98E2FE0
A1C9FC0 AB2AFE0 B411FC0 BD72FE0 C65AFC0 CFBBFE0 D8A2FC0 E162FE0 0009FE1 0009FE1
7B3CFC0 7B8DFD0 8ADCFF0 934BFD0 943CFC0 9CADFE0 A593FC0 A684FD0 AEA4FF0 B78CFD0
B87CFC0 C0ECFE0 C9D4FC0 CAC4FD0 D2E3FF0 DBCCFD0 DCBCFC0 E52BFE0 EE12FC0 F774FE0
0009FE1 005AFC0 09BCFE0 12A2FC0 1393FD0 1BB3FF0 249BFD0 253AFC0 2D5CFE0 000AFE1
000AFE1 A9D6FC0 AA28FD0 B976FF0 C1E6FD0 CAF7FF0 D3DEFD0 DCEEFF0 E5D5FD0 E6C6FC0
EF36FE0 F81DFC0 F90EFD0 0009FD1 012EFF0 0A16FD0 0B05FC0 1377FE0 1C5EFC0 25BDFE0
2EA6FC0 3805FE0 40ECFC0 4A4DFE0 5334FC0 5BF5FE0 0009FE1 0009FE1 1251FC0 12A2FD0
21F1FF0 2A61FD0 3372FF0 3C59FD0 4569FF0 4E50FD0 4F40FC0 57B1FE0 6098FC0 618AFD0
69AAFF0 7290FD0 7380FC0 7BF2FE0 84D9FC0 8E3BFE0 9721FC0 A080FE0 A969FC0 AA58FD0
B278FF0 BB5FFD0 BC00FC0 C420FE0 0009FE1 0009FE1 772BFC0 777CFD0 86CDFF0 8F3CFD0
902BFC0 989CFE0 A184FC0 AAE4FE0 B3CBFC0 B4BCFD0 BCDCFF0 C5C3FD0 CED4FF0 D7BCFD0
D8ACFC0 E11CFE0 EA02FC0 F363FE0 FC4AFC0 0009FC1 05ABFE0 0E92FC0 17F3FE0 20DBFC0
299BFE0 000AFE1 0009FE1 516DFC0 51BEFD0 610EFF0 697EFD0 6A6DFC0 72DEFE0 7BC6FC0
8525FE0 8E0DFC0 8EFFFD0 971DFF0 A004FD0 A916FF0 B1FCFD0 B2EDFC0 BB5EFE0 C444FC0
CDA5FE0 D68CFC0 DFEDFE0 E8D5FC0 E9C5FD0 F1E7FF0 FACDFD0 FB6DFC0 0009FC1 038CFE0
0009FE1 0009FE1 1F45FC0 1F96FD0 2EE6FF0 3755FD0 4066FF0 494EFD0 4A3DFC0 52ADFE0
5B95FC0 5C86FD0 64A6FF0 6D8CFD0 769DFF0 7F85FD0 8074FC0 88E8FE0 91CCFC0 9B2EFE0
A415FC0 AD75FE0 B65CFC0 BFBDFE0 C8A4FC0 D165FE0 0009FE1 0009FE1 6B3FFC0 6B90FD0
7ADFFF0 834EFD0 8C61FF0 9546FD0 9636FC0 9EA7FE0 A78EFC0 A87FFD0 B09FFF0 B986FD0
C297FF0 CB7DFD0 CC6DFC0 D4DEFE0 DDC6FC0 E726FE0 F00DFC0 F96EFE0 0009FE1 0255FC0
0346FD0 0B66FF0 144DFD0 14EDFC0 1D0DFE0 0009FE1 000AFE1 2E16FC0 2E66FD0 3DB6FF0
4625FD0 4716FC0 4F86FE0 586DFC0 595EFD0 617EFF0 6A65FD0 6B55FC0 73C5FE0 7CADFC0
7D9EFD0 85BDFF0 8EA4FD0 97B5FF0 A09CFD0 A9ADFF0 B294FD0 B385FC0 BBF5FE0 C4DCFC0
CE40FE0 D724FC0 DFE5FE0 0009FE1 0009FE1 BECCFC0 BF1DFD0 CE6BFF0 D6DCFD0 D7CBFC0
E03BFE0 E922FC0 EA13FD0 F233FF0 FB1DFD0 FC0AFC0 0009FC1 047CFE0 0D62FC0 0E53FD0
1674FF0 1F5BFD0 286BFF0 3152FD0 3A63FF0 434BFD0 443BFC0 4CAAFE0 5592FC0 5682FD0
5EA2FF0 6789FD0 682AFC0 704AFE0 0009FE1 000BFE1 7F79FC0 7FCBFD0 8F1AFF0 9789FD0
987AFC0 A0EBFE0 A9D2FC0 AAC2FD0 B2E1FF0 BBCAFD0 BCB9FC0 C529FE0 CE10FC0 CF02FD0
D721FF0 E008FD0 E919FF0 F201FD0 FB11FF0 0009FF1 03F8FD0 04E8FC0 0D59FE0 1640FC0
1FA2FE0 2888FC0 3148FE0 0009FE1 000AFE1 714BFC0 719CFD0 80ECFF0 895BFD0 8A4CFC0
92BBFE0 9BA4FC0 9C96FD0 A4B3FF0 AD9AFD0 AE8CFC0 B6FCFE0 BFE2FC0 C0D3FD0 C8F3FF0
D1DAFD0 DAECFF0 E3D2FD0 ECE3FF0 F5CBFD0 F6BAFC0 FF2CFE0 0009FE1 0812FC0 0904FD0
1122FF0 1A0AFD0 1AABFC0 22CAFE0 000AFE1 0009FE1 71ACFC0 71FDFD0 814DFF0 89BCFD0
8AACFC0 931EFE0 9C04FC0 9CF5FD0 A515FF0 ADFCFD0 AEECFC0 B75CFE0 C044FC0 C134FD0
C957FF0 D23CFD0 DB4CFF0 E433FD0 ED44FF0 F62BFD0 F71BFC0 FF8CFE0 000AFE1 0876FC0
11D4FE0 1ABBFC0 237BFE0 0009FE1 000CFE1 8399FC0 83EAFD0 9339FF0 9BA8FD0 9C98FC0
A508FE0 ADEFFC0 AEE1FD0 B700FF0 BFE8FD0 C0D8FC0 C948FE0 D22FFC0 D321FD0 DB43FF0
E427FD0 ED38FF0 F620FD0 FF2FFF0 000CFF1 0817FD0 0907FC0 1177FE0 1A5EFC0 1B50FD0
236FFF0 2C56FD0 2CF6FC0 3517FE0 0009FE1 0009FE1 5AFFFC0 5B50FD0 6A9EFF0 730FFD0
73FEFC0 7C6FFE0 8555FC0 8646FD0 8E67FF0 974DFD0 9840FC0 A0AFFE0 A997FC0 AA86FD0
B2A6FF0 BB8EFD0 C49EFF0 CD85FD0 D699FF0 DF7EFD0 E06DFC0 E8DDFE0 F1C6FC0 FB25FE0
000BFE1 040DFC0 0CCEFE0 0009FE1 000AFE1 2CB6FC0 2D07FD0 3C56FF0 44C6FD0 45B7FC0
4E26FE0 570DFC0 57FEFD0 601EFF0 6906FD0 69F6FC0 7267FE0 7B4DFC0 7C3EFD0 845EFF0
8D46FD0 9656FF0 9F3DFD0 A84FFF0 B135FD0 B225FC0 BA95FE0 C37DFC0 C46DFD0 CC8DFF0
D575FD0 D615FC0 DE35FE0 0009FE1 0009FE1 E106FC0 E156FD0 F0A6FF0 F915FD0 FA06FC0
0009FC1 0276FE0 0B5DFC0 0C4EFD0 146EFF0 1D55FD0 1E45FC0 26B6FE0 2F9EFC0 308FFD0
38AEFF0 4196FD0 4AA5FF0 538DFD0 5C9DFF0 6584FD0 6676FC0 6EE6FE0 77CCFC0 812DFE0
8A15FC0 92D5FE0 0009FE1 000AFE1 B1EFFC0 B240FD0 C18FFF0 C9FEFD0 CAEFFC0 D360FE0
DC48FC0 DD38FD0 E557FF0 EE3EFD0 EF2FFC0 F7A0FE0 000AFE1 0087FC0 0177FD0 0999FF0
127FFD0 1B8FFF0 2477FD0 2D88FF0 366EFD0 375EFC0 3FCEFE0 48B8FC0 49A7FD0 51C7FF0
5AADFD0 5B4EFC0 6370FE0 0009FE1 0009FE1 29CBFC0 2A1AFD0 396BFF0 41D9FD0 42C9FC0
4B3BFE0 5422FC0 5512FD0 5D32FF0 6619FD0 670AFC0 6F7BFE0 7862FC0 7952FD0 8172FF0
8A59FD0 9369FF0 9C51FD0 A561FF0 AE4AFD0 AF39FC0 B7A9FE0 C091FC0 C9F1FE0 D2DAFC0
DB99FE0 000AFE1 000AFE1 3AE8FC0 3B37FD0 4A88FF0 52F6FD0 53E7FC0 5C57FE0 653EFC0
662FFD0 6E4FFF0 7737FD0 7826FC0 8097FE0 897FFC0 8A6FFD0 9290FF0 9B76FD0 A487FF0
AD6EFD0 B67FFF0 BF65FD0 C056FC0 C8C7FE0 D1ADFC0 D29EFD0 DABFFF0 E3A5FD0 E446FC0
EC67FE0 000AFE1 000AFE1 843AFC0 848BFD0 93DCFF0 9C4CFD0 A55BFF0 AE43FD0 AF33FC0
B7A3FE0 C08AFC0 C17BFD0 C99BFF0 D283FD0 D372FC0 DBE3FE0 E4C9FC0 EE2AFE0 F712FC0
0009FC1 0073FE0 0959FC0 0A4AFD0 126AFF0 1B53FD0 1C42FC0 24B2FE0 2D99FC0 365AFE0
000AFE1 000AFE1 B718FC0 B769FD0 C6B8FF0 CF27FD0 D837FF0 E11FFD0 E20FFC0 EA7FFE0
F366FC0 F457FD0 FC77FF0 000AFF1 055EFD0 064EFC0 0EBFFE0 17A6FC0 2109FE0 29EEFC0
3350FE0 3C36FC0 3D28FD0 4547FF0 4E2EFD0 573EFF0 6025FD0 60C8FC0 68E6FE0 000AFE1
0009FE1 8D4EFC0 8D9FFD0 9CEFFF0 A55DFD0 AE6EFF0 B755FD0 B846FC0 C0B5FE0 C99EFC0
CA8FFD0 D2ADFF0 DB95FD0 DC85FC0 E4F6FE0 EDDCFC0 F73DFE0 000AFE1 0024FC0 0986FE0
126CFC0 135DFD0 1B7DFF0 2465FD0 2555FC0 2DC5FE0 36ADFC0 3F6CFE0 0009FE1 0009FE1
1DA7FC0 1DF9FD0 2D48FF0 35B7FD0 3EC9FF0 47AFFD0 489FFC0 5110FE0 59F7FC0 5AE8FD0
6309FF0 6BEFFD0 6CE0FC0 7550FE0 7E36FC0 8798FE0 907EFC0 99E0FE0 A2C8FC0 A3B8FD0
ABD8FF0 B4BEFD0 BDCFFF0 C6B6FD0 C756FC0 CF77FE0 0009FE1 0009FE1 FDD0FC0 FE20FD0
0009FD1 0D6FFF0 15DFFD0 1EEFFF0 27D6FD0 28C7FC0 3137FE0 3A1EFC0 3B0FFD0 432FFF0
4C17FD0 4D06FC0 5577FE0 5E5EFC0 67BFFE0 70A6FC0 7A07FE0 82EEFC0 83DFFD0 8BFFFF0
94E6FD0 95D7FC0 9E49FE0 A72DFC0 AFEEFE0 0009FE1 0009FE1 B404FC0 B455FD0 C3A5FF0
CC15FD0 D525FF0 DE0CFD0 DEFDFC0 E76CFE0 F053FC0 F144FD0 F964FF0 0009FF1 024BFD0
033BFC0 0BACFE0 1495FC0 1DF4FE0 26DBFC0 303DFE0 3923FC0 3A15FD0 4234FF0 4B1BFD0
542CFF0 5D14FD0 5DB3FC0 65D3FE0 0009FE1 0009FE1 6ACAFC0 6B1BFD0 7A6AFF0 82D9FD0
8BEAFF0 94D1FD0 95C1FC0 9E31FE0 A718FC0 A80AFD0 B029FF0 B910FD0 BA00FC0 C272FE0
CB58FC0 D4B9FE0 DDA0FC0 E701FE0 EFE8FC0 F0D9FD0 F8F9FF0 0009FF1 01E0FD0 02D3FC0
0B40FE0 1428FC0 1CE8FE0 000AFE1 000AFE1 3977FC0 39C8FD0 4917FF0 5188FD0 5A97FF0
637FFD0 6470FC0 6CE0FE0 75C7FC0 76B7FD0 7ED7FF0 87BFFD0 88AFFC0 911FFE0 9A09FC0
A367FE0 AC4EFC0 B5B0FE0 BE96FC0 BF88FD0 C7A7FF0 D08DFD0 D99EFF0 E285FD0 E326FC0
EB46FE0 000AFE1 000AFE1 0EDEFC0 0F2FFD0 1E81FF0 26EEFD0 2FFEFF0 38E6FD0 39D6FC0
4246FE0 4B2DFC0 4C1EFD0 543EFF0 5D26FD0 5E15FC0 6686FE0 6F6EFC0 78CFFE0 81B5FC0
8B16FE0 93FDFC0 94EEFD0 9D0EFF0 A5F6FD0 A6E5FC0 AF56FE0 B83CFC0 C0FDFE0 000AFE1
0009FE1 BE62FC0 BEB4FD0 CE02FF0 D673FD0 DF82FF0 E869FD0 E95AFC0 F1CAFE0 FAB1FC0
FBA2FD0 0009FD1 03C2FF0 0CA9FD0 0D99FC0 160AFE0 1EF2FC0 2853FE0 313AFC0 3A9AFE0
4381FC0 4472FD0 4C92FF0 5578FD0 5E89FF0 6770FD0 6810FC0 7031FE0 000AFE1 000AFE1
AA18FC0 AA69FD0 B9BAFF0 C228FD0 CB39FF0 D421FD0 D510FC0 DD82FE0 E669FC0 E759FD0
EF7BFF0 F860FD0 F951FC0 0009FC1 01C2FE0 0AA8FC0 1409FE0 1CF0FC0 2651FE0 2F37FC0
3029FD0 3848FF0 412FFD0 421FFC0 4A91FE0 5377FC0 5C39FE0 0009FE1 000BFE1 78C6FC0
7918FD0 8867FF0 90D7FD0 99E7FF0 A2CFFD0 A3C0FC0 AC30FE0 B516FC0 B607FD0 BE29FF0
C70EFD0 C7FEFC0 D06EFE0 D956FC0 E2B7FE0 EB9DFC0 F4FEFE0 FDE5FC0 FED7FD0 000CFD1
06F6FF0 0FDDFD0 18EEFF0 21D6FD0 2276FC0 2A96FE0 0009FE1 0009FE1 7F34FC0 7F85FD0
8ED5FF0 9744FD0 A054FF0 A93BFD0 AA2BFC0 B29CFE0 BB83FC0 BC74FD0 C494FF0 CD7BFD0
D68DFF0 DF73FD0 E885FF0 F16BFD0 F25BFC0 FACCFE0 000AFE1 03B2FC0 0D13FE0 15FBFC0
1F5CFE0 2842FC0 3105FE0 B352FC0 B3A3FD0 C2F2FF0 CB62FD0 D472FF0 DD59FD0 DE4AFC0
E6B9FE0 EFA1FC0 F091FD0 F8B2FF0 0009FF1 0199FD0 028CFC0 0AFAFE0 13E0FC0 1D42FE0
2629FC0 2F89FE0 3870FC0 3961FD0 4181FF0 4A68FD0 4B58FC0 53CAFE0 5CB1FC0 6571FE0
E71FFC0 E770FD0 F6BFFF0 FF2EFD0 000BFD1 0840FF0 1126FD0 1218FC0 1A87FE0 236FFC0
245FFD0 2C7FFF0 3567FD0 3657FC0 3EC8FE0 47AEFC0 510EFE0 59F6FC0 6357FE0 6C3DFC0
6D2EFD0 754EFF0 7E35FD0 8746FF0 902EFD0 90CDFC0 98EEFE0 0009FE1 1AC6FC0 1B15FD0
2A65FF0 32D5FD0 3BE5FF0 44CCFD0 45BCFC0 4E2CFE0 5716FC0 5805FD0 6024FF0 690BFD0
721CFF0 7B04FD0 8414FF0 8CFBFD0 8DEBFC0 965EFE0 9F44FC0 A8A4FE0 B18CFC0 B27CFD0
BA9BFF0 C383FD0 C423FC0 CC43FE0 0009FE1 0009FE1 0250FC0 02A0FD0 11EFFF0 1A5EFD0
236FFF0 2C56FD0 2D47FC0 35B7FE0 3E9EFC0 3F8FFD0 47AFFF0 5096FD0 59A7FF0 628FFD0
6B9FFF0 7486FD0 7576FC0 7DE6FE0 86CEFC0 902EFE0 9915FC0 A276FE0 AB5EFC0 B41EFE0
0009FE1 366DFC0 36BDFD0 460DFF0 4E7CFD0 578DFF0 6074FD0 6165FC0 69D6FE0 72BDFC0
73ADFD0 7BCDFF0 84B4FD0 85A4FC0 8E15FE0 96FBFC0 A05CFE0 A943FC0 B2A5FE0 BB8CFC0
BC7CFD0 C49DFF0 CD83FD0 CE73FC0 D6E5FE0 DFCBFC0 E88CFE0 0009FE1 6A3AFC0 6A8BFD0
79DAFF0 824AFD0 8B5AFF0 9443FD0 9532FC0 9DA2FE0 A689FC0 A77AFD0 AF9AFF0 B881FD0
B972FC0 C1E2FE0 CAC9FC0 D42AFE0 DD11FC0 E672FE0 EF59FC0 F04BFD0 F869FF0 0009FF1
0151FD0 0A61FF0 1348FD0 13E8FC0 1C09FE0 9DDFFC0 9E31FD0 AD82FF0 B5EFFD0 BF00FF0
C7E8FD0 C8D7FC0 D148FE0 DA30FC0 DB20FD0 E33FFF0 EC26FD0 F537FF0 FE1FFD0 0009FD1
072FFF0 1016FD0 1106FC0 1977FE0 225EFC0 2BBFFE0 34A7FC0 3597FD0 3DB7FF0 469EFD0
473EFC0 4F5EFE0 0009FE1 000AFE1 4653FC0 46A3FD0 55F2FF0 5E62FD0 6772FF0 7059FD0
714BFC0 79BAFE0 82A1FC0 8392FD0 8BB2FF0 949AFD0 9DAAFF0 A691FD0 AFA3FF0 B889FD0
B979FC0 C1EAFE0 CAD3FC0 D431FE0 DD19FC0 E67CFE0 EF60FC0 F821FE0 0009FE1 7A72FC0
7AC1FD0 8A11FF0 9280FD0 9B91FF0 A478FD0 A567FC0 ADD9FE0 B6BFFC0 B7B1FD0 BFD0FF0
C8B7FD0 C9A7FC0 D218FE0 DAFEFC0 E45FFE0 ED46FC0 F6A8FE0 FF8EFC0 000AFC1 007FFD0
08A0FF0 1186FD0 1277FC0 1AE7FE0 23CEFC0 2C8FFE0 AE3DFC0 AE8EFD0 BDDDFF0 C64DFD0
CF5DFF0 D845FD0 D935FC0 E1A5FE0 EA8CFC0 EB7DFD0 F39EFF0 FC85FD0 FD75FC0 0009FC1
05E6FE0 0ECCFC0 182DFE0 2115FC0 2A75FE0 335CFC0 344DFD0 3C6CFF0 4554FD0 4E66FF0
574BFD0 57EEFC0 600CFE0 E1E2FC0 E233FD0 F185FF0 F9F3FD0 000AFD1 0303FF0 0BEAFD0
0CDCFC0 154BFE0 1E32FC0 1F24FD0 2742FF0 302CFD0 393BFF0 4221FD0 4B32FF0 5419FD0
5509FC0 5D7AFE0 6662FC0 6FC3FE0 78AAFC0 799AFD0 81BAFF0 8AA1FD0 8B41FC0 9362FE0
000AFE1 000AFE1 60F5FC0 6144FD0 7094FF0 7903FD0 8214FF0 8AFCFD0 8BEBFC0 945BFE0
9D43FC0 9E34FD0 A653FF0 AF3BFD0 B84BFF0 C134FD0 CA43FF0 D32AFD0 D41BFC0 DC8CFE0
E572FC0 EED4FE0 F7BAFC0 0009FC1 011AFE0 0A02FC0 12C2FE0 9510FC0 9562FD0 A4B2FF0
AD20FD0 B632FF0 BF19FD0 C008FC0 C879FE0 D160FC0 D252FD0 DA74FF0 E358FD0 E448FC0
ECB9FE0 F5A1FC0 FF00FE0 000AFE1 07E9FC0 1148FE0 1A30FC0 1B20FD0 2340FF0 2C27FD0
2D17FC0 3588FE0 3E6FFC0 4730FE0 C8DEFC0 C92FFD0 D87FFF0 E0EFFD0 E9FFFF0 F2E7FD0
F3D6FC0 FC46FE0 0009FE1 052EFC0 061EFD0 0E3EFF0 1725FD0 1815FC0 2086FE0 296EFC0
32CFFE0 3BB6FC0 4516FE0 4DFDFC0 4EF1FD0 570EFF0 5FF5FD0 6905FF0 71EDFD0 728DFC0
7AADFE0 FC84FC0 FCD5FD0 0009FD1 0C24FF0 1493FD0 1DA4FF0 268BFD0 277BFC0 2FECFE0
38D3FC0 39C4FD0 41E4FF0 4ACBFD0 53DDFF0 5CC3FD0 65D3FF0 6EBBFD0 6FACFC0 781CFE0
8102FC0 8A64FE0 934AFC0 943BFD0 9C5BFF0 A542FD0 A5E2FC0 AE04FE0 0009FE1 0009FE1
480FFC0 4861FD0 57B0FF0 601FFD0 692FFF0 7218FD0 7307FC0 7B78FE0 845EFC0 854FFD0
8D70FF0 9656FD0 9F68FF0 A84FFD0 B15FFF0 BA47FD0 BB36FC0 C3A7FE0 CC8FFC0 D5EFFE0
DED6FC0 E836FE0 F11EFC0 F9DFFE0 0009FE1 7C2CFC0 7C7EFD0 8BCDFF0 943DFD0 9D4FFF0
A635FD0 A724FC0 AF95FE0 B87FFC0 B96DFD0 C18DFF0 CA74FD0 CB66FC0 D3D5FE0 DCBDFC0
E61CFE0 EF03FC0 F864FE0 000AFE1 014BFC0 023CFD0 0A5CFF0 1345FD0 1434FC0 1CA4FE0
258CFC0 2E4CFE0 AFFAFC0 B04BFD0 BF9BFF0 C80AFD0 D11AFF0 DA03FD0 DAF3FC0 E364FE0
EC4AFC0 ED3DFD0 F55BFF0 FE41FD0 FF31FC0 0009FC1 07A2FE0 1089FC0 19EAFE0 22D1FC0
2C35FE0 351CFC0 360AFD0 3E2AFF0 4711FD0 5024FF0 590AFD0 59AAFC0 61C9FE0 E39FFC0
E3F0FD0 F340FF0 FBAFFD0 0009FD1 04C0FF0 0DA7FD0 0E97FC0 1708FE0 1FF0FC0 20E0FD0
2900FF0 31E8FD0 3AF7FF0 43DFFD0 4CEFFF0 55D6FD0 56C7FC0 5F37FE0 681EFC0 717FFE0
7A66FC0 7B57FD0 8378FF0 8C5FFD0 8CFEFC0 951FFE0 000AFE1 000AFE1 2A4DFC0 2A9EFD0
39EEFF0 425DFD0 4B6EFF0 5455FD0 5546FC0 5DB6FE0 669DFC0 678FFD0 6FADFF0 7896FD0
81A6FF0 8A8CFD0 939EFF0 9C84FD0 9D74FC0 A5E5FE0 AECCFC0 B82EFE0 C117FC0 CA75FE0
D35DFC0 DC1EFE0 0009FE1 5E6BFC0 5EBCFD0 6E0CFF0 767CFD0 7F8BFF0 8872FD0 8963FC0
91D5FE0 9ABBFC0 9BABFD0 A3CCFF0 ACB2FD0 ADA2FC0 B613FE0 BEFAFC0 C85BFE0 D143FC0
DAA2FE0 E38BFC0 E47CFD0 EC9AFF0 F581FD0 F672FC0 FEE2FE0 000AFE1 07C9FC0 108AFE0
9239FC0 9289FD0 A1D9FF0 AA4BFD0 B35AFF0 BC40FD0 BD30FC0 C5A1FE0 CE88FC0 CF79FD0
D798FF0 E07FFD0 E170FC0 E9E2FE0 F2C8FC0 FC29FE0 0009FE1 050FFC0 0E71FE0 1757FC0
1849FD0 2069FF0 294FFD0 3260FF0 3B47FD0 3BE8FC0 4407FE0 C5DFFC0 C62FFD0 D57EFF0
DDEEFD0 E6FEFF0 EFE5FD0 F0D6FC0 F947FE0 0009FE1 022DFC0 031EFD0 0B3EFF0 1425FD0
1D37FF0 261DFD0 2F2EFF0 3815FD0 3905FC0 4175FE0 4A5EFC0 53BDFE0 5CA6FC0 5D95FD0
65B5FF0 6E9CFD0 6F3CFC0 775DFE0 0009FE1 0009FE1 C99BFC0 C9ECFD0 D93BFF0 E1ABFD0
EABBFF0 F3A2FD0 F494FC0 FD03FE0 000AFE1 05EAFC0 06DCFD0 0EFCFF0 17E2FD0 20F3FF0
29DAFD0 32EBFF0 3BD2FD0 3CC3FC0 4533FE0 4E1AFC0 577BFE0 6062FC0 69C2FE0 72AAFC0
7B6AFE0 FDB8FC0 FE09FD0 0009FD1 0D59FF0 15C9FD0 1ED9FF0 27C0FD0 28B0FC0 3122FE0
3A09FC0 3AF9FD0 4318FF0 4C01FD0 4CF0FC0 5561FE0 5E48FC0 67A8FE0 708FFC0 79F0FE0
82D7FC0 83C9FD0 8BE8FF0 94CFFD0 95C0FC0 9E30FE0 A718FC0 AFD8FE0 000AFE1 3186FC0
31D7FD0 4126FF0 4996FD0 52A6FF0 5B8FFD0 5C7FFC0 64EEFE0 6DD5FC0 6EC6FD0 76E6FF0
7FCEFD0 80BDFC0 892FFE0 9216FC0 9B76FE0 A45EFC0 ADBFFE0 B6A5FC0 B796FD0 BFB5FF0
C89DFD0 D1ADFF0 DA95FD0 DB34FC0 E355FE0 000BFE1 652BFC0 657DFD0 74CDFF0 7D3BFD0
864CFF0 8F33FD0 9024FC0 9895FE0 A17CFC0 A26DFD0 AA8BFF0 B373FD0 BC83FF0 C56AFD0
CE7BFF0 D762FD0 D852FC0 E0C4FE0 E9AAFC0 F30BFE0 FBF2FC0 FCE4FD0 000AFD1 0504FF0
0DEAFD0 0E8AFC0 16ABFE0 0009FE1 000AFE1 EFCEFC0 F020FD0 FF6FFF0 0009FF1 07DFFD0
10EFFF0 19D7FD0 1AC6FC0 2337FE0 2C1EFC0 2D0FFD0 3531FF0 3E16FD0 4727FF0 500EFD0
5920FF0 6205FD0 62F7FC0 6B66FE0 744EFC0 7DAEFE0 8695FC0 8FF6FE0 98DEFC0 A19EFE0
0009FE1 23EFFC0 243EFD0 338DFF0 3BFDFD0 450CFF0 4DF6FD0 4EE5FC0 5754FE0 603BFC0
612CFD0 694CFF0 7235FD0 7324FC0 7B94FE0 847CFC0 8DDDFE0 96C3FC0 A024FE0 A90BFC0
A9FCFD0 B21CFF0 BB03FD0 BBF3FC0 C463FE0 CD4BFC0 D60BFE0 000AFE1 57B9FC0 580BFD0
675AFF0 6FC9FD0 78DBFF0 81C1FD0 82B2FC0 8B23FE0 940AFC0 94FAFD0 9D1AFF0 A601FD0
A6F2FC0 AF61FE0 B84AFC0 C1A9FE0 CA91FC0 D3F2FE0 DCDBFC0 DDC9FD0 E5EAFF0 EED0FD0
F7E1FF0 000AFF1 00C8FD0 0168FC0 098CFE0 8B61FC0 8BB1FD0 9B01FF0 A36FFD0 AC7FFF0
B567FD0 B657FC0 BEC8FE0 C7AEFC0 C8A0FD0 D0C0FF0 D9A7FD0 E2B7FF0 EB9EFD0 F4AFFF0
FD97FD0 FE87FC0 000AFC1 06F7FE0 0FDEFC0 193FFE0 2227FC0 2317FD0 2B36FF0 341FFD0
34BFFC0 3CDFFE0 000AFE1 0009FE1 F5C4FC0 F613FD0 000AFD1 0562FF0 0DD1FD0 16E3FF0
1FC9FD0 20B9FC0 292BFE0 3211FC0 3302FD0 3B22FF0 4409FD0 4D19FF0 5600FD0 5F12FF0
67F9FD0 68E8FC0 7159FE0 7A40FC0 83A1FE0 8C88FC0 95E9FE0 9ED1FC0 A791FE0 0009FE1
29E0FC0 2A31FD0 397FFF0 41EEFD0 4AFFFF0 53E6FD0 54D7FC0 5D47FE0 662EFC0 6720FD0
6F3FFF0 7826FD0 7916FC0 8188FE0 8A6EFC0 93CFFE0 9CB7FC0 A616FE0 AEFFFC0 AFEFFD0
B80EFF0 C0F5FD0 C1E6FC0 CA56FE0 D33DFC0 DBFEFE0 0009FE1 5DACFC0 5DFEFD0 6D4EFF0
75BCFD0 7ECDFF0 87B6FD0 88A4FC0 9115FE0 99FCFC0 9AEDFD0 A30DFF0 ABF5FD0 ACE4FC0
B555FE0 BE3BFC0 C79DFE0 D083FC0 D9E5FE0 E2CBFC0 E3BDFD0 EBDCFF0 F4C3FD0 FDD4FF0
000AFF1 06BBFD0 075BFC0 0F7DFE0 9152FC0 91A3FD0 A0F2FF0 A963FD0 B272FF0 BB59FD0
BC49FC0 C4BAFE0 CDA2FC0 CE92FD0 D6B2FF0 DF99FD0 E8ABFF0 F191FD0 FAA3FF0 0009FF1
038AFD0 0479FC0 0CE9FE0 15D1FC0 1F31FE0 2819FC0 2909FD0 3129FF0 3A11FD0 3AB0FC0
42D2FE0 0009FE1 0009FE1 5F83FC0 5FD4FD0 6F23FF0 7792FD0 80A4FF0 898BFD0 8A7AFC0
92EBFE0 9BD2FC0 9CC3FD0 A4E4FF0 ADCBFD0 B6DBFF0 BFC2FD0 C8D4FF0 D1BAFD0 D2AAFC0
DB1BFE0 E402FC0 ED62FE0 F64AFC0 FFAAFE0 0009FE1 0893FC0 1152FE0 93A0FC0 93F1FD0
A341FF0 ABB1FD0 B4C2FF0 BDA9FD0 BE98FC0 C709FE0 CFF0FC0 D0E2FD0 D900FF0 E1E9FD0
E2D9FC0 EB48FE0 F42FFC0 FD91FE0 000CFE1 0677FC0 0FD8FE0 18BFFC0 19B1FD0 21D0FF0
2AB8FD0 2BA7FC0 3418FE0 3CFFFC0 45BFFE0 C76FFC0 C7BFFD0 D70EFF0 DF7DFD0 E88EFF0
F175FD0 F267FC0 FAD6FE0 0009FE1 03BEFC0 04AEFD0 0CCFFF0 15B5FD0 16A5FC0 1F17FE0
27FDFC0 315EFE0 3A47FC0 43A5FE0 4C8CFC0 4D7DFD0 559EFF0 5E84FD0 6795FF0 707DFD0
711CFC0 793EFE0 FB13FC0 FB65FD0 0009FD1 0AB4FF0 1323FD0 1C34FF0 251BFD0 260BFC0
2E7BFE0 3763FC0 3853FD0 4074FF0 495BFD0 526BFF0 5B52FD0 6463FF0 6D4BFD0 6E3AFC0
76ABFE0 7F92FC0 88F3FE0 91DAFC0 92CBFD0 9AEBFF0 A3D4FD0 A472FC0 AC93FE0 0009FE1
0009FE1 1D66FC0 1DB8FD0 2D07FF0 3576FD0 3666FC0 3ED7FE0 47BEFC0 48B0FD0 50CFFF0
59B7FD0 5AA7FC0 6317FE0 6BFEFC0 6CEFFD0 750EFF0 7DF5FD0 8706FF0 8FEDFD0 98FFFF0
A1E5FD0 A2D5FC0 AB47FE0 B42DFC0 BD8EFE0 C675FC0 CF36FE0 000AFE1 000AFE1 6DE9FC0
6E3AFD0 7D8AFF0 85F8FD0 86E8FC0 8F59FE0 9840FC0 9931FD0 A151FF0 AA37FD0 AB28FC0
B398FE0 BC7FFC0 BD70FD0 C590FF0 CE77FD0 D78AFF0 E070FD0 E980FF0 F269FD0 F358FC0
FBC8FE0 0009FE1 04B0FC0 05A0FD0 0DBFFF0 16A7FD0 1747FC0 1F67FE0 0009FE1 0009FE1
704FFC0 70A0FD0 7FEFFF0 885FFD0 894FFC0 91BFFE0 9AA7FC0 9B97FD0 A3B7FF0 AC9EFD0
AD8EFC0 B5FFFE0 BEE7FC0 BFD7FD0 C7F7FF0 D0DEFD0 D9EFFF0 E2D6FD0 EBE7FF0 F4CEFD0
F5BEFC0 FE2EFE0 0009FE1 0716FC0 1076FE0 195EFC0 221EFE0 0009FE1 0009FE1 4138FC0
418AFD0 50D9FF0 5948FD0 5A38FC0 62A8FE0 6B91FC0 6C82FD0 74A1FF0 7D87FD0 7E78FC0
86E9FE0 8FD2FC0 90C0FD0 98E0FF0 A1C7FD0 AAD8FF0 B3BFFD0 BCD0FF0 C5B9FD0 C6A7FC0
CF19FE0 D7FFFC0 D8F1FD0 E10FFF0 E9F7FD0 EA97FC0 F2B7FE0 000AFE1 0009FE1 0E46FC0
0E97FD0 1DE7FF0 2656FD0 2746FC0 2FB7FE0 389DFC0 398EFD0 41AEFF0 4A95FD0 4B85FC0
53F7FE0 5CDDFC0 5DCEFD0 65EDFF0 6ED5FD0 77E8FF0 80CCFD0 89DDFF0 92C5FD0 93B5FC0
9C25FE0 A50CFC0 AE6DFE0 B755FC0 C016FE0 000BFE1 0009FE1 3F7FFC0 3FCEFD0 4F1EFF0
578CFD0 587CFC0 60EDFE0 69D4FC0 6AC4FD0 72E4FF0 7BCBFD0 7CBDFC0 852CFE0 8E13FC0
8F04FD0 9724FF0 A00BFD0 A91CFF0 B204FD0 BB14FF0 C3FBFD0 C4EBFC0 CD5BFE0 D643FC0
D734FD0 DF53FF0 E83BFD0 E8DBFC0 F0FBFE0 0009FE1 0009FE1 16E2FC0 1732FD0 2685FF0
2EF1FD0 2FE1FC0 3852FE0 4139FC0 422BFD0 4A4AFF0 5331FD0 5422FC0 5C92FE0 6579FC0
666AFD0 6E8CFF0 7772FD0 8082FF0 8969FD0 9279FF0 9B61FD0 9C51FC0 A4C2FE0 ADA8FC0
B70AFE0 BFF1FC0 C8B2FE0 000BFE1 0009FE1 C7B1FC0 C802FD0 D751FF0 DFC1FD0 E0B1FC0
E922FE0 F208FC0 F2F9FD0 FB19FF0 0009FF1 0400FD0 04F0FC0 0D61FE0 164AFC0 1739FD0
1F59FF0 2840FD0 3152FF0 3A38FD0 434AFF0 4C30FD0 4D21FC0 5590FE0 5E78FC0 5F68FD0
6788FF0 7071FD0 7110FC0 7930FE0 0009FE1 0009FE1 94BFFC0 950FFD0 A460FF0 ACCEFD0
ADBEFC0 B62FFE0 BF16FC0 C007FD0 C828FF0 D10EFD0 D1FFFC0 DA6FFE0 E356FC0 E447FD0
EC67FF0 F54EFD0 FE5EFF0 0009FF1 0745FD0 1057FF0 193DFD0 1A2DFC0 229EFE0 2B87FC0
34E6FE0 3DCDFC0 468EFE0 0009FE1 0009FE1 C5F6FC0 C647FD0 D597FF0 DE05FD0 DEF5FC0
E766FE0 F04DFC0 F13DFD0 F95EFF0 000CFF1 0244FD0 0334FC0 0BA7FE0 148CFC0 157DFD0
1D9FFF0 2685FD0 2F95FF0 387CFD0 418DFF0 4A74FD0 4B64FC0 53D4FE0 5CBBFC0 5DADFD0
65CCFF0 6EB3FD0 6F53FC0 7774FE0 0009FE1 000AFE1 1337FC0 1387FD0 22D9FF0 2B46FD0
2C37FC0 34A6FE0 3D8EFC0 3E7FFD0 469EFF0 4F85FD0 5077FC0 58E6FE0 61CDFC0 62BFFD0
6ADEFF0 73C6FD0 7CD6FF0 85BDFD0 8ED1FF0 97B5FD0 98A5FC0 A117FE0 A9FDFC0 B35EFE0
BC46FC0 C505FE0 000BFE1 000BFE1 6486FC0 64D7FD0 7427FF0 7C96FD0 7D86FC0 85F7FE0
8EE1FC0 8FCFFD0 97EFFF0 A0D6FD0 A1C7FC0 AA39FE0 B31FFC0 B40FFD0 BC2EFF0 C517FD0
CE27FF0 D70DFD0 E01EFF0 E905FD0 E9F6FC0 F266FE0 FB4DFC0 FC3FFD0 0009FD1 045EFF0
0D45FD0 0DE5FC0 1606FE0 0009FE1 0009FE1 3A07FC0 3A56FD0 49A5FF0 5214FD0 5B25FF0
640DFD0 64FDFC0 6D6EFE0 7655FC0 7746FD0 7F66FF0 884DFD0 893CFC0 91AEFE0 9A95FC0
A3F6FE0 ACDCFC0 B63CFE0 BF24FC0 C015FD0 C834FF0 D11CFD0 D20CFC0 DA7CFE0 E366FC0
EC25FE0 0009FE1 000AFE1 E988FC0 E9D9FD0 F929FF0 0009FF1 0198FD0 0AA9FF0 1390FD0
1481FC0 1CF1FE0 25D8FC0 26CAFD0 2EEAFF0 37D0FD0 38C1FC0 4130FE0 4A18FC0 5379FE0
5C5FFC0 65C0FE0 6EA7FC0 6F98FD0 77B8FF0 809FFD0 89B0FF0 9297FD0 9337FC0 9B58FE0
000AFE1 0009FE1 2B42FC0 2B93FD0 3AE3FF0 4352FD0 4C63FF0 5549FD0 5639FC0 5EAAFE0
6793FC0 6883FD0 70A1FF0 798AFD0 7A79FC0 82E9FE0 8BD1FC0 9532FE0 9E18FC0 A779FE0
B060FC0 B151FD0 B972FF0 C258FD0 C348FC0 CBB9FE0 D4A2FC0 DD62FE0 000CFE1 0009FE1
BB9CFC0 BBECFD0 CB3DFF0 D3ABFD0 DCBCFF0 E5A4FD0 E694FC0 EF05FE0 F7ECFC0 F8DDFD0
0009FD1 00FCFF0 09E3FD0 0AD3FC0 1343FE0 1C2AFC0 258BFE0 2E73FC0 37D3FE0 40BAFC0
41ABFD0 49CBFF0 52B4FD0 5BC3FF0 64AAFD0 654AFC0 6D6CFE0 000AFE1 0009FE1 9CF9FC0
9D4AFD0 AC9AFF0 B50AFD0 BE1BFF0 C701FD0 C7F1FC0 D062FE0 D949FC0 DA3BFD0 E25BFF0
EB41FD0 EC32FC0 F4A3FE0 FD89FC0 0009FC1 06EAFE0 0FD1FC0 1932FE0 2218FC0 230BFD0
2B29FF0 3413FD0 3500FC0 3D71FE0 4659FC0 4F19FE0 0009FE1 000CFE1 6BA8FC0 6BF8FD0
7B49FF0 83B7FD0 8CC8FF0 95B0FD0 969FFC0 9F0FFE0 A7F8FC0 A8E8FD0 B107FF0 B9EEFD0
BAE0FC0 C34FFE0 CC37FC0 D597FE0 DE7EFC0 E7DFFE0 F0C6FC0 F1B8FD0 F9D7FF0 0009FF1
02BFFD0 0BCFFF0 14B6FD0 1556FC0 1D76FE0 000BFE1 0009FE1 779EFC0 77EFFD0 873FFF0
8FAEFD0 98BFFF0 A1A6FD0 A296FC0 AB07FE0 B3EEFC0 B4DFFD0 BCFEFF0 C5E7FD0 C6D6FC0
CF46FE0 D82DFC0 E18EFE0 EA75FC0 F3D7FE0 FCBDFC0 FDAFFD0 0009FD1 05CEFF0 0EB6FD0
0FA5FC0 1816FE0 20FDFC0 29BEFE0 0009FE1 0009FE1 E8CFFC0 E920FD0 F86FFF0 0009FF1
00DEFD0 09EFFF0 12D7FD0 13C6FC0 1C37FE0 251FFC0 260FFD0 2E2FFF0 3716FD0 3806FC0
4076FE0 495EFC0 52BFFE0 5BA6FC0 6506FE0 6DEEFC0 6EDEFD0 76FEFF0 7FE6FD0 88F6FF0
91DDFD0 927EFC0 9AA0FE0 000AFE1 000AFE1 C966FC0 C9B7FD0 D907FF0 E176FD0 EA88FF0
F36FFD0 F45EFC0 FCCFFE0 000CFE1 05B6FC0 0F16FE0 17FDFC0 18EFFD0 210FFF0 29F5FD0
2AE5FC0 3356FE0 3C3DFC0 3D2EFD0 454EFF0 4E35FD0 4F25FC0 5797FE0 607DFC0 69DEFE0
72C6FC0 7B86FE0 000AFE1 0009FE1 6AE5FC0 6B36FD0 7A86FF0 82F5FD0 8C05FF0 94ECFD0
95DDFC0 9E4DFE0 A734FC0 B095FE0 B97CFC0 BA6EFD0 C28DFF0 CB74FD0 CC64FC0 D4D4FE0
DDBDFC0 DEADFD0 E6CCFF0 EFB3FD0 F0A5FC0 F916FE0 000AFE1 01FCFC0 02ECFD0 0B0CFF0
13F4FD0 1493FC0 1CB4FE0 000AFE1 0009FE1 B04EFC0 B09FFD0 BFEEFF0 C85EFD0 D16FFF0
DA57FD0 DB46FC0 E3B6FE0 EC9DFC0 F5FFFE0 FEE6FC0 FFD7FD0 0009FD1 07F5FF0 10DEFD0
11CEFC0 1A3EFE0 2324FC0 2415FD0 2C38FF0 351CFD0 360CFC0 3E7EFE0 4764FC0 50C5FE0
59ADFC0 626DFE0 000AFE1 000AFE1 C343FC0 C394FD0 D2E3FF0 DB52FD0 E463FF0 ED4DFD0
EE3AFC0 F6ACFE0 FF92FC0 0009FC1 08F4FE0 11DBFC0 12CBFD0 1AEBFF0 23D2FD0 24C3FC0
2D32FE0 361CFC0 370AFD0 3F2AFF0 4811FD0 4902FC0 5173FE0 5A59FC0 5B4BFD0 636AFF0
6C51FD0 6CF2FC0 7512FE0 0009FE1 0009FE1 7E1FFC0 7E70FD0 8DC0FF0 962FFD0 971FFC0
9F8FFE0 A877FC0 A968FD0 B187FF0 BA6FFD0 BB5FFC0 C3D0FE0 CCB7FC0 D617FE0 DEFEFC0
E85FFE0 F147FC0 FAA7FE0 000AFE1 038FFC0 0CEFFE0 15D6FC0 1F37FE0 281FFC0 30DFFE0
0009FE1 0009FE1 1FADFC0 1FFFFD0 2F4DFF0 37BCFD0 38AEFC0 411DFE0 4A04FC0 4AF5FD0
5316FF0 5BFDFD0 5CEDFC0 655DFE0 6E45FC0 77A6FE0 808DFC0 89EDFE0 92D4FC0 9C35FE0
A51DFC0 AE7CFE0 B763FC0 B854FD0 C076FF0 C95CFD0 C9FBFC0 D21CFE0 0009FE1 000AFE1
4FCDFC0 501FFD0 5F6EFF0 67DDFD0 70EEFF0 79D5FD0 82E5FF0 8BCDFD0 8CBDFC0 952DFE0
9E15FC0 A775FE0 B05CFC0 B9BDFE0 C2A4FC0 CC05FE0 D4ECFC0 DE4EFE0 E735FC0 F096FE0
F97DFC0 0009FC1 023CFE0 0009FE1 000AFE1 4722FC0 4773FD0 56C2FF0 5F32FD0 6843FF0
7129FD0 7A3AFF0 8321FD0 8411FC0 8C81FE0 9568FC0 9ECAFE0 A7B0FC0 B111FE0 B9F9FC0
C359FE0 CC41FC0 D5A1FE0 DE88FC0 DF7AFD0 E799FF0 F080FD0 F120FC0 F940FE0 0009FE1
0009FE1
Device disconnected.
Waiting for new device:........

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #14 on: Thu, 23 December 2021, 05:25:34 »
PrintScrn should use 'E0 7C'(or 84) instead of just 7C, which means Keypad*.

Well, the actual print-screen scancode is handled via
Code: [Select]
SysRq with your adapter, as well as the Soarer, for my Copam board also (i.e, the PrintScrn key registers the same way as this "unknown" keyboard). Problem is, it doesn't have a dedicated SysRq key.

I'm confused. Can you rephrase?
What is exactly "the actual print-screen scancode" in this case?
And what does "is handled via SysRq" mean actually?







Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #15 on: Thu, 23 December 2021, 06:32:38 »
Thank you for the test.

This proved a little tricky – as the Soarer firmware in the hex file did not work correctly with the keyboard set with all DIP switches to "off". I changed these around a couple of times, and the setting which works is when setting DIP #8 to “on” (this, incidentally, is what the keyboard was set to when I received it). However, your adapter then didn't work with it at all, and the Soarer only registered error-codes.

WIth that DIPSW setting keyboard works in XT mode apparently.

The firmware(sctrace_32u4.hex) only reads signal without any interaction with the keyboard.
The keyboard seems to require command(from the converter) to start in AT mode, while command was not needed in XT mode probably.
I'll look into the firmware to fix to see AT signal.


This is signal of NumLock 0x45 in XT mode, for example.
It indicates very very very slow clock pulses.(3 times long) :o Both converters will get timeout error with the slow clock pulses apparently.



Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #16 on: Thu, 23 December 2021, 06:45:01 »
This is signal of NumLock 0x45 in XT mode, for example.
It indicates very very very slow clock pulses.(3 times long) :o Both converters will get timeout error with the slow clock pulses apparently.
Show Image


I changed timeout detection value.
Can you try attached TMK IBMPC converter firmware with the XT mode?

* ibmpc_usb_atmega32u4.hex (72.83 kB - downloaded 60 times.)

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #17 on: Thu, 23 December 2021, 08:30:01 »
PrintScrn should use 'E0 7C'(or 84) instead of just 7C, which means Keypad*.

Well, the actual print-screen scancode is handled via
Code: [Select]
SysRq with your adapter, as well as the Soarer, for my Copam board also (i.e, the PrintScrn key registers the same way as this "unknown" keyboard). Problem is, it doesn't have a dedicated SysRq key.

I'm confused. Can you rephrase?
What is exactly "the actual print-screen scancode" in this case?
And what does "is handled via SysRq" mean actually?

Sorry, I should have been more clear. What I meant is that the key which actually does PrintScrn is SysRq on the Copam (in AT mode), although there is a separate PrintScrn key as well on the NumPad.

The keycode (which is interpreted by the OS as PrintScrn) is:
Code: [Select]
r84 rF0 r84
This does the exact same thing as hitting PrintScrn on a newer keyboard (any USB-type I've tried), on the same host and with the same keymap.

The keycode for the actual PrintScrn key (again, from the Copam) is:

Code: [Select]
r7C rF0 r7C
This isn't unique to your adapter. Both the Soarer, and the generic PS/2 adapters do the same. However, since it was the same on the “unknown” keyboard (which doesn't have a way to send an actual PrintScrn, at least for now), I mentioned it. I don't have a way to see if the functionality is the same on this board though, due to the incompatibility with the Soarer and the other adapters.

So bottom line, I am not sure why PrintScrn on older keyboards (in AT mode) works different than on newer keyboards (where it does a screen capture, which is what the default behavior is)
« Last Edit: Thu, 23 December 2021, 08:34:37 by Drag0nFly »

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #18 on: Thu, 23 December 2021, 08:34:09 »
Thank you for the test.

This proved a little tricky – as the Soarer firmware in the hex file did not work correctly with the keyboard set with all DIP switches to "off". I changed these around a couple of times, and the setting which works is when setting DIP #8 to “on” (this, incidentally, is what the keyboard was set to when I received it). However, your adapter then didn't work with it at all, and the Soarer only registered error-codes.

WIth that DIPSW setting keyboard works in XT mode apparently.

The firmware(sctrace_32u4.hex) only reads signal without any interaction with the keyboard.
The keyboard seems to require command(from the converter) to start in AT mode, while command was not needed in XT mode probably.
I'll look into the firmware to fix to see AT signal.


This is signal of NumLock 0x45 in XT mode, for example.
It indicates very very very slow clock pulses.(3 times long) :o Both converters will get timeout error with the slow clock pulses apparently.
Show Image


That is very interesting to know for sure, glad that the #8 DIP switch set to “on” actually indicated XT mode. It might take a little while to verify your updated fw, as we are starting the silly holiday season here, but I'll test that as soon as I can.  :thumb:

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #19 on: Thu, 23 December 2021, 23:07:53 »
Sorry, I should have been more clear. What I meant is that the key which actually does PrintScrn is SysRq on the Copam (in AT mode), although there is a separate PrintScrn key as well on the NumPad.

The keycode (which is interpreted by the OS as PrintScrn) is:
Code: [Select]
r84 rF0 r84
This does the exact same thing as hitting PrintScrn on a newer keyboard (any USB-type I've tried), on the same host and with the same keymap.

The keycode for the actual PrintScrn key (again, from the Copam) is:

Code: [Select]
r7C rF0 r7C
This isn't unique to your adapter. Both the Soarer, and the generic PS/2 adapters do the same. However, since it was the same on the “unknown” keyboard (which doesn't have a way to send an actual PrintScrn, at least for now), I mentioned it. I don't have a way to see if the functionality is the same on this board though, due to the incompatibility with the Soarer and the other adapters.

So bottom line, I am not sure why PrintScrn on older keyboards (in AT mode) works different than on newer keyboards (where it does a screen capture, which is what the default behavior is)

It is historical reason of IBM PC and its keyboard. You need to know how the keys were handled on IBM PC/AT(5170), not modern PC.

IBM AT 84-key keyboard doesn't have dedicated key for 'Print Screen' function and you need to press Shift and 'PrtSc *' key to get 'Print Screen' function on IBM PC/AT(5170). This is reason that the key is marked 'PrtSc *' on IBM AT 84-key keyboard and old AT clones including Copam K-430.
Note that the 'PrtSc *' key registers Keypad* by default and 'Print Screen' is its sub function. The key should be referred as Keypad* key as we don't refer 1 key as ! usually. So AT(PS-2)-USB converters translate the key into Keypad*.

See this for IBM AT 84-key keyboard.
https://www.seasip.info/VintagePC/ibm_6450225.html

Later, when IBM designed Enhanced 101-key keyboard for PS/2 computer SysRq key was removed and PrintScreen key was introduced.  SysRq key's function was integrated to the PrintScreen key, you need to Alt+PrintScreen to get SysRq function.

See this for IBM Enhanced 101(102)-key keyboard. This is base of ubiquitous PS/2 keyboards.
https://www.seasip.info/VintagePC/ibm_1391406.html

IBM had to make the keyboard compatible to PC/AT(5170) computer too. This requirement made the keybaord scan codes complicated.

PrintScreen key on the Enhanced keyboard(and PS/2 keyboards) spits out scan code sequence 'E0 12  E0 7C' for the backward compatibility. Where 12 means Left Shift and 7C means Keypad*. PC/AT(5170) doesn't know E0, just ignores it and recongizes as Shift+Keypad* in the result, while modern PS/2 computer know the scan code sequence as PrintScreen key.

PrintScreen key on IBM Enhanced or PS/2 keyboard spits out scan code like below.
Quote

PrintScreen:   
     modifiers | make         | break                                                                               
     ----------+--------------+-----------------------------------                                                   
     Other     | E0 12  E0 7C | E0 F0 7C  E0 F0 12                                                                   
     Shift'd   |        E0 7C | E0 F0 7C                                                                             
     Control'd |        E0 7C | E0 F0 7C                                                                             
     Alt'd     |           84 | F0 84                                                                               


PrintScreen key on this unidentified keyboard emulates Shift+Keypad* with '12 7C'. This scan code sequence works as 'Print Screen' function on IBM PC/AT(5170) but not on modern computers including Windows probably.

I guess this 'unidentified keyboard' was designed before IBM Enhanaced 101-key keyboard was introduced, or its designer had to emulates IBM 84-key keyboard intentionally for some reason.

But I won't be surprised if this keyboard has DIPSW setting for PS/2 mode in addtion to AT and XT mode.

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #20 on: Thu, 06 January 2022, 19:13:42 »
This is signal of NumLock 0x45 in XT mode, for example.
It indicates very very very slow clock pulses.(3 times long) :o Both converters will get timeout error with the slow clock pulses apparently.
Show Image


I changed timeout detection value.
Can you try attached TMK IBMPC converter firmware with the XT mode?

(Attachment Link)

This took quite a bit longer before I was able to properly test – my apologies @hasu. I've performed a test now, and yes, your increased timeout value now allows the board to be detected as XT.(!) There were some instances of keys repeating (and continuing before another key was pressed to break out of it), seems to mostly be impacting keys on the NumPad side (*, /, etc.)

Another – extremely weird and consistent behaviour – is that the Insert key (fourth key from the right on the top row on this board) produces

Code: [Select]
r2A r52 r84 rF0 r84rD2 rAA
directly to the console when NumLock is active (not hid_listen). With NumLock disabled, it produces "0" (and the key next to it "1" followed by "," and nothing (scroll lock)–seemingly indicating that this is being interpreted as a NumPad row or something.

Including debug output below of the first test:

Code: [Select]
TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I584 I584
803 PRT:21 ISR:00A0 r00 A3585 wFF R R R R R R R R R R A4303 wFF R R R R R R R R R R
5022 ERR:11 ISR:AAA0
5023 ERR:11 ISR:0000 X5524 X5524 r00 W6397 wF2 R R R R R R R R R R R7616
ID:FFFF(XT)
7617 ERR:11 ISR:00A0 S7617 L7618 rAA r1E r9E r1F r9F r20 rA0 r21 rA1 r21 rA1 r21 rA1 r22 rA2 r22 rA2 r22 rA2 r23 rA3 r14 r94 r14 r94 r15 r95 r15 r95 r16 r96 r16 r96 r17 r97 r17 r97 r17 r97 r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r8E r0E r0E r0E r0E r0E r0E r0E r0E r8E r0E r8E r0E r8E r29 rA9 r29 rA9 r29 rA9 r29 rA9 r29 rA9 r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r36 r29 rA9 r29 rA9 r29 rA9 r29 rA9 rB6 r0E r8E r0E r8E r0E r8E r0E r8E r45 rC5 r45 rC5 r45 rC5 r45 rC5 r2A r29 rAA rAA r2A r29 rAA rAA r45 rC5 r45 rC5 r45 rC5 r45 rC5 r2A r29 rAA rAA r45 rC5 r45 rC5 r45 rC5 r45 rC5 r19 r99 r19 r99 r19 r99 r19 r99 r1D r1E r9E r26 rA6 r27 rA7 r26 rA6 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r1D r27 rA7 r27 rA7 r27 rA7 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r8E r0E r8E r1D r1D r26 rA6 r26 rA6 r25 rA5 r25 rA5 r25 rA5 r9D r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r48 rC8 r48 rC8 r48 rC8 r48 rC8 r50 rD0 r50 rD0 r50 rD0 r48 rC8 r48 rC8 r4B rCB r4B rCB r4D rCD r4D rCD r4D rCD r48 rC8 r47 rC7 r47 rC7 r47 rC7 r45 rC5 r2A r48 rC8 rAA r2A r48 rC8 rAA r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r1D r1E r9E r25 rA5 r9D r2A r48 rC8 rAA r2A r50 rD0 rAA r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r45 rC5 r2A r29 rAA rAA r2A r29 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r19 r99 r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r24 rA4 r24 rA4 r25 rA5 r0A r8A r0A r8A r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r4A rCA r4A rCA r4A rCA r46 rC6 r46 rC6 r46 rC6 r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r53 rD3 r53 rD3 r53 rD3 r53 rD3 r53 rD3 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r49 rC9 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 r37 rB7 r37 rB7 r49 rC9 r49 rC9 r45 rC5 r37 rB7 r37 rB7 r37 rB7 r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r49 rC9 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAAr2A r52 r84 rF0 r84rD2 rAA


r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r53 rD3 rAA r2A r53 rD3 rAA r2A r4F rCF rAA r2A r4F rCF rAA r46 rC6 r46 rC6 r46 rC6


r2A r5r84 rF0 r842 rD2 rAA r2A r29 rAA rAA r2A r29 rAA rAA r45 rC5 r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r16 r17 r96 r16 r97 r17 r96 r2A r08 rAA rAA r97 r2A r08 rAA rAA r2A r08 rAA rAA r16 r96 r15 r95
Device disconnected.
Waiting for new device:......

« Last Edit: Thu, 06 January 2022, 19:15:58 by Drag0nFly »

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #21 on: Sun, 09 January 2022, 10:21:34 »
It is historical reason of IBM PC and its keyboard. You need to know how the keys were handled on IBM PC/AT(5170), not modern PC.

IBM AT 84-key keyboard doesn't have dedicated key for 'Print Screen' function and you need to press Shift and 'PrtSc *' key to get 'Print Screen' function on IBM PC/AT(5170). This is reason that the key is marked 'PrtSc *' on IBM AT 84-key keyboard and old AT clones including Copam K-430.
Note that the 'PrtSc *' key registers Keypad* by default and 'Print Screen' is its sub function. The key should be referred as Keypad* key as we don't refer 1 key as ! usually. So AT(PS-2)-USB converters translate the key into Keypad*.

See this for IBM AT 84-key keyboard.
https://www.seasip.info/VintagePC/ibm_6450225.html

Later, when IBM designed Enhanced 101-key keyboard for PS/2 computer SysRq key was removed and PrintScreen key was introduced.  SysRq key's function was integrated to the PrintScreen key, you need to Alt+PrintScreen to get SysRq function.

See this for IBM Enhanced 101(102)-key keyboard. This is base of ubiquitous PS/2 keyboards.
https://www.seasip.info/VintagePC/ibm_1391406.html

IBM had to make the keyboard compatible to PC/AT(5170) computer too. This requirement made the keybaord scan codes complicated.

PrintScreen key on the Enhanced keyboard(and PS/2 keyboards) spits out scan code sequence 'E0 12  E0 7C' for the backward compatibility. Where 12 means Left Shift and 7C means Keypad*. PC/AT(5170) doesn't know E0, just ignores it and recongizes as Shift+Keypad* in the result, while modern PS/2 computer know the scan code sequence as PrintScreen key.

PrintScreen key on IBM Enhanced or PS/2 keyboard spits out scan code like below.
Quote

PrintScreen:   
     modifiers | make         | break                                                                               
     ----------+--------------+-----------------------------------                                                   
     Other     | E0 12  E0 7C | E0 F0 7C  E0 F0 12                                                                   
     Shift'd   |        E0 7C | E0 F0 7C                                                                             
     Control'd |        E0 7C | E0 F0 7C                                                                             
     Alt'd     |           84 | F0 84                                                                               

PrintScreen key on this unidentified keyboard emulates Shift+Keypad* with '12 7C'. This scan code sequence works as 'Print Screen' function on IBM PC/AT(5170) but not on modern computers including Windows probably.

I guess this 'unidentified keyboard' was designed before IBM Enhanaced 101-key keyboard was introduced, or its designer had to emulates IBM 84-key keyboard intentionally for some reason.

But I won't be surprised if this keyboard has DIPSW setting for PS/2 mode in addtion to AT and XT mode.

That is very useful info – thanks. Yes, the reason I asked was obviously since this unknown keyboard now is the only one for which one cannot (natively) produce a PrintScrn.

It could possibly a DIP-switch setting – too bad I haven't identified the keyboard so I know which setting to use. I have tried quite a few, though. Regarding a possible PS/2 mode–wouldn't the keyboard be too old to support this?

From what is printed on the keycaps, this unknown keyboard is similar to the NTC, where PrintScrn registers correctly under both AT+XT modes. It appears likely that this unknown board perhaps was made to support/emulate an IBM 84 keyboard in some fashion like you mentioned earlier. Not sure if such functionality is still needed, being that these boards will be used on modern systems.

The reason I find PrintScrn useful is for grabbing screenshots, where this key (correctly or not) is assigned the 'Print Screen' event under Linux. I did some tests with my other boards to see if L_Shift + PrintScrn did anything similar, but it does not. So apparently the sub-function was promoted to by its main function under modern OSes.

There were some strange behaviour with the other special keys in the NumPad and nav-cluster section though which possibly indicates that other special tweaks might have been done to the board to emulate other functionality (see my previous message)

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #22 on: Mon, 10 January 2022, 01:41:46 »
This is signal of NumLock 0x45 in XT mode, for example.
It indicates very very very slow clock pulses.(3 times long) :o Both converters will get timeout error with the slow clock pulses apparently.
Show Image


I changed timeout detection value.
Can you try attached TMK IBMPC converter firmware with the XT mode?

(Attachment Link)

This took quite a bit longer before I was able to properly test – my apologies @hasu. I've performed a test now, and yes, your increased timeout value now allows the board to be detected as XT.(!) There were some instances of keys repeating (and continuing before another key was pressed to break out of it), seems to mostly be impacting keys on the NumPad side (*, /, etc.)

Another – extremely weird and consistent behaviour – is that the Insert key (fourth key from the right on the top row on this board) produces

Code: [Select]
r2A r52 r84 rF0 r84rD2 rAA
directly to the console when NumLock is active (not hid_listen). With NumLock disabled, it produces "0" (and the key next to it "1" followed by "," and nothing (scroll lock)–seemingly indicating that this is being interpreted as a NumPad row or something.

Including debug output below of the first test:

Code: [Select]
TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I584 I584
803 PRT:21 ISR:00A0 r00 A3585 wFF R R R R R R R R R R A4303 wFF R R R R R R R R R R
5022 ERR:11 ISR:AAA0
5023 ERR:11 ISR:0000 X5524 X5524 r00 W6397 wF2 R R R R R R R R R R R7616
ID:FFFF(XT)
7617 ERR:11 ISR:00A0 S7617 L7618 rAA r1E r9E r1F r9F r20 rA0 r21 rA1 r21 rA1 r21 rA1 r22 rA2 r22 rA2 r22 rA2 r23 rA3 r14 r94 r14 r94 r15 r95 r15 r95 r16 r96 r16 r96 r17 r97 r17 r97 r17 r97 r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r8E r0E r0E r0E r0E r0E r0E r0E r0E r8E r0E r8E r0E r8E r29 rA9 r29 rA9 r29 rA9 r29 rA9 r29 rA9 r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r36 r29 rA9 r29 rA9 r29 rA9 r29 rA9 rB6 r0E r8E r0E r8E r0E r8E r0E r8E r45 rC5 r45 rC5 r45 rC5 r45 rC5 r2A r29 rAA rAA r2A r29 rAA rAA r45 rC5 r45 rC5 r45 rC5 r45 rC5 r2A r29 rAA rAA r45 rC5 r45 rC5 r45 rC5 r45 rC5 r19 r99 r19 r99 r19 r99 r19 r99 r1D r1E r9E r26 rA6 r27 rA7 r26 rA6 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r1D r27 rA7 r27 rA7 r27 rA7 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r8E r0E r8E r1D r1D r26 rA6 r26 rA6 r25 rA5 r25 rA5 r25 rA5 r9D r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r1C r9C r48 rC8 r48 rC8 r48 rC8 r48 rC8 r50 rD0 r50 rD0 r50 rD0 r48 rC8 r48 rC8 r4B rCB r4B rCB r4D rCD r4D rCD r4D rCD r48 rC8 r47 rC7 r47 rC7 r47 rC7 r45 rC5 r2A r48 rC8 rAA r2A r48 rC8 rAA r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r1D r1E r9E r25 rA5 r9D r2A r48 rC8 rAA r2A r50 rD0 rAA r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r0E r8E r45 rC5 r2A r29 rAA rAA r2A r29 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r19 r99 r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r24 rA4 r24 rA4 r25 rA5 r0A r8A r0A r8A r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r4A rCA r4A rCA r4A rCA r46 rC6 r46 rC6 r46 rC6 r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r4F rCF r53 rD3 r53 rD3 r53 rD3 r53 rD3 r53 rD3 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r52 rD2 r49 rC9 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 r37 rB7 r37 rB7 r49 rC9 r49 rC9 r45 rC5 r37 rB7 r37 rB7 r37 rB7 r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r49 rC9 rAA r2A r49 rC9 rAA r2A r51 rD1 rAA r2A r51 rD1 rAA r2A r49 rC9 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAAr2A r52 r84 rF0 r84rD2 rAA


r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r52 rD2 rAA r2A r53 rD3 rAA r2A r53 rD3 rAA r2A r4F rCF rAA r2A r4F rCF rAA r46 rC6 r46 rC6 r46 rC6


r2A r5r84 rF0 r842 rD2 rAA r2A r29 rAA rAA r2A r29 rAA rAA r45 rC5 r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r2A r08 rAA rAA r16 r17 r96 r16 r97 r17 r96 r2A r08 rAA rAA r97 r2A r08 rAA rAA r2A r08 rAA rAA r16 r96 r15 r95
Device disconnected.
Waiting for new device:......



'r84 rF0 r84' is AT scan code for SysRq and completely illegal when the keyboard works in XT mode.
Scan code 0x52 and 0xD2 indicates press and relase of Keypad0, 0x2A and 0xAA indicates Shift key action.
The "Insert" key emulates to press Shift + Keypad0('r2A r52 rD2 rAA') as you can see, I guess it was interpreted as 'paste' on old XT computer.

I think the text('r84 rF0 r84') was copied accidentally and pasted into debug console with the key.  Shift+Keypad0 key combo seems to do 'paste' feature even on modern Windows. I didn't know this feature, but it is fun to know this :D

Try Shift+Keypad0 on Windows cmd console with USB keyboard with keypad, its behaviour is changed depending on NumLock state. The behaviour is different a bit on Linux too.

« Last Edit: Mon, 10 January 2022, 01:45:32 by hasu »

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #23 on: Mon, 10 January 2022, 13:06:02 »

'r84 rF0 r84' is AT scan code for SysRq and completely illegal when the keyboard works in XT mode.
Scan code 0x52 and 0xD2 indicates press and relase of Keypad0, 0x2A and 0xAA indicates Shift key action.
The "Insert" key emulates to press Shift + Keypad0('r2A r52 rD2 rAA') as you can see, I guess it was interpreted as 'paste' on old XT computer.

Yep, as usual you are absolutely correct. :) I have the habit of selecting text (by double-clicking in the terminal), and in this instance I also wanted to do a comparison of the PrintScrn/SysRq keycodes between my Copam (which works in both AT+XT with PrintScrn/SysRq sending a PrintScreen event), the NTC (which also works, but curiously not with the Soarer in XT-mode to produce a PrintScreen event, only with the TMK)


I think the text('r84 rF0 r84') was copied accidentally and pasted into debug console with the key.  Shift+Keypad0 key combo seems to do 'paste' feature even on modern Windows. I didn't know this feature, but it is fun to know this :D
I am certainly glad that I could 'introduce' this new feature. :D TBH, I did not know of it myself either. Turns out that my most recent keyboard also supports this keycombo, at least under Linux, as it happily pastes text using both L_Shift + 0 on the NumPad in addition to L_Shift + Insert in the Nav-cluster.

Verified the same with the Unknown™ keyboard, and the behaviour is the same – see attached hid_listen output. Tried with both L_Shift + Numpad_0 & L_Shift + Insert in the Nav-Cluster.

Try Shift+Keypad0 on Windows cmd console with USB keyboard with keypad, its behaviour is changed depending on NumLock state. The behaviour is different a bit on Linux too.

This worked well; I've included the debug output from hid_listen below.

I also pressed the PrintScreen (& Shift+PrintScrn) a few times. It produces
Code: [Select]
r37 rB7 – which is similar to the NTC where the key actually registers as PrintScreen in the OS. Is there a way to get this to work with this Unknown™ keyboard?

Output from hid_listen (I selected the text that appears in the debug output on purpose, just to differentiate it from the standard keycodes):

Code: [Select]
Waiting for device:...........
Listening:

TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I600 I601
802 PRT:21 ISR:00A0 r00 A3602 wFF R R R R R R R R R R A4320 wFF R R R R R R R R R R
5039 ERR:11 ISR:0000
5040 ERR:11 ISR:0000 X5541 X5541 r00 W6413 wF2 R R R R R R R R R R R7633
ID:FFFF(XT)
7634 ERR:11 ISR:00A0 S7634 L7635 rAA r2A r52 I just copied this textrD2 r52 I just copied this textrD2 rAA r2A r52 rD2 r52 rD2 r52 rD2 rAA

r52 ^[[2~rD2 r52 rD2 r52 rD2 r52 rD2 r1D r45 rC5 r9D r1D r45 rC5 r9D


r37 *rB7 r37 *rB7 r2A r2A r37 ⋅rB7 r37 ⋅rB7 r37 ⋅rB7 rAA r2A r2A r2A r52 rD2 rAA r2A r52 TMK:ef29dc/LUFA:d6a7dfrD2 rAA r2A r2A r2A r2A r52 rD2 r52 rD2 r52 rD2 rAA r2A r52 rD2 r52 rD2 rAA r2A r52 And with Shift+InsertrD2 r52 And with Shift+InsertrD2 rAA r2A r49 rC9 r51 rD1 r49 rC9 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 rAA


r37 rB7 r37 rB7 r37 rB7 r37 rB7 r1D r37 rB7 r37 rB7 r37 rB7 r9D r2A r37 rB7 r37 rB7 r37 rB7 rAA r36 r37 rB7 r37 rB7 r37 rB7 r37 rB7 rB6
Device disconnected.
Waiting for new device:..............
« Last Edit: Mon, 10 January 2022, 13:08:32 by Drag0nFly »

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #24 on: Tue, 11 January 2022, 03:00:47 »

'r84 rF0 r84' is AT scan code for SysRq and completely illegal when the keyboard works in XT mode.
Scan code 0x52 and 0xD2 indicates press and relase of Keypad0, 0x2A and 0xAA indicates Shift key action.
The "Insert" key emulates to press Shift + Keypad0('r2A r52 rD2 rAA') as you can see, I guess it was interpreted as 'paste' on old XT computer.

Yep, as usual you are absolutely correct. :) I have the habit of selecting text (by double-clicking in the terminal), and in this instance I also wanted to do a comparison of the PrintScrn/SysRq keycodes between my Copam (which works in both AT+XT with PrintScrn/SysRq sending a PrintScreen event), the NTC (which also works, but curiously not with the Soarer in XT-mode to produce a PrintScreen event, only with the TMK)

I guess the NTC uses scan code 'E0 37' for the PrintScreen, the scan code is used only by relatively newer clone keyboards.

Soarer's doesn't seems to support E0-prefixed scan code in XT mode.
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol#extended-xt-scan-code



Quote

I think the text('r84 rF0 r84') was copied accidentally and pasted into debug console with the key.  Shift+Keypad0 key combo seems to do 'paste' feature even on modern Windows. I didn't know this feature, but it is fun to know this :D
I am certainly glad that I could 'introduce' this new feature. :D TBH, I did not know of it myself either. Turns out that my most recent keyboard also supports this keycombo, at least under Linux, as it happily pastes text using both L_Shift + 0 on the NumPad in addition to L_Shift + Insert in the Nav-cluster.

Verified the same with the Unknown™ keyboard, and the behaviour is the same – see attached hid_listen output. Tried with both L_Shift + Numpad_0 & L_Shift + Insert in the Nav-Cluster.

Try Shift+Keypad0 on Windows cmd console with USB keyboard with keypad, its behaviour is changed depending on NumLock state. The behaviour is different a bit on Linux too.

This worked well; I've included the debug output from hid_listen below.

I also pressed the PrintScreen (& Shift+PrintScrn) a few times. It produces
Code: [Select]
r37 rB7 – which is similar to the NTC where the key actually registers as PrintScreen in the OS. Is there a way to get this to work with this Unknown™ keyboard?

Output from hid_listen (I selected the text that appears in the debug output on purpose, just to differentiate it from the standard keycodes):

Code: [Select]
Waiting for device:...........
Listening:

TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I600 I601
802 PRT:21 ISR:00A0 r00 A3602 wFF R R R R R R R R R R A4320 wFF R R R R R R R R R R
5039 ERR:11 ISR:0000
5040 ERR:11 ISR:0000 X5541 X5541 r00 W6413 wF2 R R R R R R R R R R R7633
ID:FFFF(XT)
7634 ERR:11 ISR:00A0 S7634 L7635 rAA r2A r52 I just copied this textrD2 r52 I just copied this textrD2 rAA r2A r52 rD2 r52 rD2 r52 rD2 rAA

r52 ^[[2~rD2 r52 rD2 r52 rD2 r52 rD2 r1D r45 rC5 r9D r1D r45 rC5 r9D


r37 *rB7 r37 *rB7 r2A r2A r37 ⋅rB7 r37 ⋅rB7 r37 ⋅rB7 rAA r2A r2A r2A r52 rD2 rAA r2A r52 TMK:ef29dc/LUFA:d6a7dfrD2 rAA r2A r2A r2A r2A r52 rD2 r52 rD2 r52 rD2 rAA r2A r52 rD2 r52 rD2 rAA r2A r52 And with Shift+InsertrD2 r52 And with Shift+InsertrD2 rAA r2A r49 rC9 r51 rD1 r49 rC9 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 r49 rC9 r49 rC9 r51 rD1 r51 rD1 r51 rD1 rAA


r37 rB7 r37 rB7 r37 rB7 r37 rB7 r1D r37 rB7 r37 rB7 r37 rB7 r9D r2A r37 rB7 r37 rB7 r37 rB7 rAA r36 r37 rB7 r37 rB7 r37 rB7 r37 rB7 rB6
Device disconnected.
Waiting for new device:..............


This keyboard uses scan code '37' for PrintScreen key in XT mode, it is completely indentical to Keypad* key.
You can remap the 'PrintScreen' key, but the another keys is remapped as well.

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #25 on: Mon, 17 January 2022, 12:14:19 »
Yes, it is probably not the best approach to alter the PrintScrn behaviour in XT-mode. I did a number of other tests today as I finished one stage of my cleaning of the PCB.

After trying lots of modifier keys and various NumLock / Pause “states”, I was able to get it to output PrintScrn via Alt+PrintScrn in AT-mode. This keycombo screenshots the active window, and is identical to pressing the same combo on the newer keyboard hooked up to the same machine.

And curiously still, hitting PrintScrn on its own does not behave the same way (this screenshots the entire desktop).

I am including some more observations below, as there were a few interesting and quite frankly useful features I noticed once the board is in “numlock-state” which I haven't seen on my other boards.

PrintScrn in AT mode produces the following scancodes:

Code: [Select]
r7C rF0 *r7C
Alt + PrintScrn (takes screenshot of active window as opposed to whole desktop when using PrintScrn alone)
Code: [Select]
r11 r84 rF0 r84 rF0 r11
A little strange that this works with the Alt-modifier since PrintScrn on its own does not.

Pause in AT mode
Code: [Select]
r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14
This enters “numeric state”, also toggles LED on unknown board, and 2nd keyboard. (LED is not toggled in XT mode on the vintage board)

Scancodes seen when pressing End after toggling Pause beforehand:

Code: [Select]
r12 r69 r^[[1;2FF0 r69 r12 rF0 r12
r12 r69 ^[[1;2FrF0 r69 r12 rF0 r12
r12 r69 rF0 r69 r12 rF0 r12

Home (pause pressed beforehand):
Code: [Select]
r12 r6C rF0 r6C r12 rF0 r12
End (pause/NumLock mode "disabled") (works correctly as an "End" keypress, that is – goes to the end of the commandline):
Code: [Select]
r69 rF0 r69
End (NumLock pressed beforehand):
Code: [Select]
r12 r69 rF0 ^[[1;2Fr69 r12 rF0 r12
Now to the interesting bit: I discovered that after alternating the states, “End” and “Home” have somewhat different functions – which behave consistently: when NumLock is active (set via either NumLock or Pause) they go to the bottom and to the top of the terminal output, respectively, as opposed to moving only within one line. This is similar to behaviour in certain editors, like Emacs, and I found it a little curious. I also compared this with a "normal" keyboard, and it only moves between one line – to the end and the beginning – regardless of whether NumLock is active or not.
(I wanted to compare this with the Soarer, but it consistently has a heart-attack every time this keyboard is plugged in for a short while.)
Actually, the keyboard itself gets confused after the Soarer crashes and has to be put back into XT mode, then to AT, for it to register (TMK registered it as XT even though the DIP switches were set to AT, for instance)

Including the (condensed) hid_listen output below, starting in XT mode and then switching to AT so that full scancodes are shown.

As an end-note: I am not sure what function Pause has on its own (as opposed to what NumLock accomplishes), and was floating the idea of remapping it to Backspace (being that it sits right next to it), providing the scancodes it sends are actually "correct" and useful with the TMK adapter and this isn't changed in the firmware.

From what I can determine though NumLock and Pause appear to accomplish the same thing on this board.

I also floated the idea of perhaps permanently remapping Caps Lock as AltGr. (Actually I would like to propose this as an international standard, and get rid of CapsLock altogether). (RIP CapsLock: 1960x - 2022).   ;D


Output (condensed) from hid_listen, starting in XT mode and then switching to AT, in order to show full scancode sequences)
Code: [Select]
Listening:

TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I710 I710
798 PRT:21 ISR:00A0 r00 A3711 wFF R R R R R R R R R R A4429 wFF R R R R R R R R R R
5148 ERR:11 ISR:0000
5149 ERR:11 ISR:0000 X5650 X5650 r00 W6522 wF2 R R R R R R R R R R R7742
ID:FFFF(XT)
7743 ERR:11 ISR:00A0 S7743 L7744 rAA r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r0E r0E r0E r0E r8E r0E r8E


r37 *rB7
r48 rC8 r48 rC8 r48 rC8 r48 rC8 r48 rC8 r50 rD0 r50 rD0 r50 rD0 r4B rCB r4B rCB r4D rCD r4D rCD r47 rC7 r47 rC7 r47 rC7 r47 rC7 r0E r0E r0E r0E
 r0E r0E r0E r0E r0E r0E r0E r8E r0E r8E r0E r8E r45 rC5 r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r48 rC8 rAA r2A r50 rD0 rAA r2A r5
0 rD0 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r2A r4B rCB rAA r2A r4B rCB rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r2A r
4B rCB rAA r2A r4D rCD rAA r2A r4B rCB rAA r2A r4D rCD rAA r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r2A r48
rC8 rAA r2A r48 rC8 rAA r2A r50 rD0 rAA r2A r50 rD0 rAA r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r45 rC5 r48 rC8 r48 rC8 r48 rC8 r50
 rD0 r50 rD0 r50 rD0 r4B rCB r4B rCB r4D rCD r4D rCD r47 rC7 r47 rC7 r47 rC7 r48 rC8 r48 rC8 r50 rD0 r50 rD0 r4B rCB r4B rCB r4D rCD r4D rCD r4
8 rC8 r48 rC8 r4B rCB r4B rCB r4D rCD r4D rCD r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r0E r8E r48 rC8 r48 rC8 r0E r8E r0E r8E r0E r8E r48 r
C8 r48 rC8 r50 rD0 r48 rC8 r4B rCB r4B rCB r4B rCB r4B rCB r4B rCB r4D rCD r4D rCD r4D rCD r4D rCD r4D rCD r4B rCB r4D rCD r1D r45 rC5 r9D r1D
r45 rC5 r9D r0E r0E r0E r0E r0E r0E r0E r0E r8E r48 rC8 r48 rC8 r50 rD0 r50 rD0

Device disconnected.
Waiting for new device:......................................
Listening:

TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I634 I634 A3635 wFF R R R R R R R R R R A4353 wFF rFA
4356 ERR:11 ISR:0000
4357 PRT:10 ISR:FE90 rAA W4357 X4858 wF2 R R R R R rFA R5730
ID:0000(AT_AT84) S5730 wED rFA w00 rFA L5735

r7C rF0 *r7C

r78 rF0 r78 r78 rF0 r78 r78 rF0 r78 r78 rF0 r78 r07 ^[[24~rF0 r07 r^[[24~07 rF0 r07 r78 rF0 r78 r78 rF0 r78 r78 rF0 r78 r78 rF0 r78 r74 rF0 r74
 r74 rF0 r74 r74 rF0 r74 r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r6C rF0 r6C r6C rF0 r6C r6C rF0 r6
C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C





r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14

r12 r69 r^[[1;2FF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14


r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C



r69 rF0 r69 r77 wED rFA w02 rFA rF0 r77

r12 r69 rF0 ^[[1;2Fr69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0
r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12
 r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r1
2 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r
69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69
rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12



r77 rF0 r77 wED rFA w00 rFA r6C rF0 r6C r69 rF0 r69 r6C rF0 r6C r69 rF0 r69 r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r12 r6C rF0 r6C r12 rF0 r12
 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r1
2 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r
69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12



r12 r69 rF0 r69 r12 rF0 r12


r12 r6C rF0 r6C r12 rF0 r12 r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14



r77 wED rFA w02 rFA rF0 r77



r12 r69 rF0 r69 r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12

r12 r69 rF0 ^[[1;2Fr69 r12 rF0 r12 r12 r69 ^[[1;2FrF0 r69 r12 rF0 r12 r12 r69 ^[[1;2FrF0 r69 r12 rF0 r12 r12 r69 ^[[1;2FrF0 r69 r12 rF0 r12 r12
 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r6
9 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12

r12 r69 ^[[1;2FrF0 r69 r12 rF0 r12 r77 rF0 r77 wED rFA w00 rFA



r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14



r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12
 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r14 r7
7 rF0 r77 wED rFA w00 rFA rF0 r14




r77 wED rFA w02 rFA rF0 r77



r12 r69 rF0 r^[[1;2F69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0
r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12 r12 r69 rF0 r69 r12 rF0 r12 r12 r6C rF0 r6C r12 rF0 r12
 r12 r69 rF0 r69 r12 rF0 r12 r77 rF0 r77 wED rFA w00 rFA



r7C r*F0 r7C

r77 wED rFA w02 rFA rF0 r77

r7C r*F0 r7C

r77 rF0 r77 wED rFA w00 rFA


r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14

r7C rF0 *r7C
r7C rF0 *r7C
r11 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 rF0 r11 r7C *rF0 r7C



r11 r84 rF0 r84 rF0 r11




r7C rF0 r7C *r7C *rF0 r7C r12 r7C <C5>rF0 r7C r7C <C5>rF0 r7C r7C <C5>rF0 r7C r7C <C5>rF0 r7C rF0 r12 r12 r7C <C5>rF0 r7C rF0 r12 r11 r84 rF0 r84 rF0 r11





r11 r84 rF0 r84 rF0 r11 r77 rF0 r77 wED rFA w00 rFA



r11 r84 rF0 r84 rF0 r11




r7C r*F0 r7C r*7C rF0 r7C r*7C rF0 r7C



r14 r77 wED rFA w02 rFA rF0 r77 rF0 r14 r7C *rF0 r7C r7*C rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r11 r84 rF0 r84 rF0 r11



r14 r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r*7C rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C rF0 r14 r14 r7C *rF0 r
7C r7C *rF0 r7C rF0 r14 r11 r14 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 rF0 r11 rF0 r14 r11 r14 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84
 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 rF0 r14 rF0 r11 r14 r12 r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r*7C rF0 r
7C r7C *rF0 r7C r7C *rF0 r7C r7C *rF0 r7C r*7C rF0 r7C r7C *rF0 r7C rF0 r12 rF0 r14 r11 r14 r84 rF0 r84 r84 rF0 r84 rF0 r11 rF0 r14 r14 r12 r11
 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 r84 rF0 r84 rF0 r11 rF0 r14 rF0 r12 r11 r84 rF0 r84 rF0 r11





r14 r77 rF0 r77 wED rFA w00 rFA rF0 r14




r11 r84 rF0 r84 rF0 r11
Device disconnected.
Waiting for new device:.............................................................

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #26 on: Mon, 17 January 2022, 21:48:14 »
This unknown keyboard seems to fail to emulate 'Enhanced keyboard' at least as for PrintScreen and Pause.
I guess that It is one of mediocre clone products in period of transition between AT/XT and Enhanced keyboard. Anyway, this keyboard makes you confused a lot when you look into how PC keyboard should work.

You will get clear idea and find something interesting by checking Technical References under pc, xt, at and ps2 folders of bitsaver's IBM PC repo.
http://bitsavers.org/pdf/ibm/pc/
Also seeing scan codes of usual PS/2 keyboard using the converter Is useful to understand how keyboard should work. IBM genuine XT and AT keyboard would be better if you have.


The modified fimrware seems to work well. I'll update IBMPC covnerter firmware for timeout error fix later.

Output (condensed) from hid_listen, starting in XT mode and then switching to AT, in order to show full scancode sequences)
Code: [Select]
Listening:

TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I710 I710
798 PRT:21 ISR:00A0 r00 A3711 wFF R R R R R R R R R R A4429 wFF R R R R R R R R R R
5148 ERR:11 ISR:0000
5149 ERR:11 ISR:0000 X5650 X5650 r00 W6522 wF2 R R R R R R R R R R R7742
ID:FFFF(XT)
7743 ERR:11 ISR:00A0 S7743 L7744 rAA r1D r45 rC5 r9D r1D r45 rC5 r9D r1D r45 rC5 r9D r0E r8E r0E r8E r0E r0E r0E r0E r0E r8E r0E r8E



Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #27 on: Tue, 18 January 2022, 07:17:57 »
This unknown keyboard seems to fail to emulate 'Enhanced keyboard' at least as for PrintScreen and Pause.
I guess that It is one of mediocre clone products in period of transition between AT/XT and Enhanced keyboard. Anyway, this keyboard makes you confused a lot when you look into how PC keyboard should work.

“Mediocre”? Hmm. :) Well, then it would not have Alps SKCL Cream switches in a chassis that is basically built like a tank (2.5kg), with brass screw sockets and a multi-protocol switcher (and also metal feet to angle it up from below.)  ;)

I found the added functionality with the keyboard in NumLock mode very useful, at least from a sysadmin standpoint. I just mentioned it as I thought others might see the benefits as well, as there were no issues with the converter apart from PrintScrn and Pause which I thought probably needed a fix, and since the former did register correctly with Alt+PrintScrn. It surely wasn't to cause confusion–for that I am sorry. :)

What about the “Pause”-key? Would it not be better if the firmware handled it differently, as it appears to do the same thing as NumLock (not sure if other boards have a similar Pause key in this position). It also does not directly toggle the LED (at least in XT mode)


You will get clear idea and find something interesting by checking Technical References under pc, xt, at and ps2 folders of bitsaver's IBM PC repo.
http://bitsavers.org/pdf/ibm/pc/
Also seeing scan codes of usual PS/2 keyboard using the converter Is useful to understand how keyboard should work. IBM genuine XT and AT keyboard would be better if you have.

I guess every manufacturer in the early-to-mid 80s had their own view on how a keyboard should work. I do not own any IBM equipment, but I am unsure how that would help in this case?

I've posted around to see if any people are familiar with this board, as there were one other user who posted a picture on Deskthority. It would definitely be useful to know the DIP switch documentation (although 1-8 set to “off” should be AT mode, there could be other relevant ones)

The modified fimrware seems to work well. I'll update IBMPC covnerter firmware for timeout error fix later.

It does work very well, yes.  :thumb: Kudos. And again, the only issues stopping it from being a useful (and frankly, quite nice visually) keyboard to type on for daily use is the “Pause” key and the “PrintScrn” behaviour (and btw., the latter is not affected by any of the NumLock modes I mentioned earlier, it behaves consistently)
« Last Edit: Wed, 19 January 2022, 13:35:14 by Drag0nFly »

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #28 on: Sun, 30 January 2022, 14:26:01 »
Hi @hasu–

I did some more tests with this board today, as I am finishing up restoring it; it turns out that the increased timeout might not be needed. The board is actually not detected at all when using the modified firmware. I tested this with the TMK:ef29dc/LUFA:d6a7df version which has the extra timeout implemented, and then reverted to TMK:111e8c/LUFA:d6a7df – also tried Soarer (which works when the board is in AT-mode, and my passive AT-to-PS/2 with USB-to-mouse+keyb adapter (Aten branded – which also works)

So it is probably best to hold off with modifying the firmware unless you've already done so. Perhaps this had to do with some persistent EEPROM setting, or was a side-effect of me trying numerous different DIP-switch settings. (or simply the fact that the PCB (w/ the chips) was cleaned and the contacts improved.)

I am including the debug output below (this is for the last test, I switched betweeen the firmware a couple of times, and the behaviour is consistent)

Using the firmware with modified timeout–nothing gets detected (keyboard set to AT mode)
Code: [Select]
TMK:ef29dc/LUFA:d6a7df

USB configured.

Loop start.
I591 I591 A3592 wFF R R R R R R R R R R A4310 wFF R R R R R R R R R R
5029 ERR:11 ISR:0000
5030 ERR:11 ISR:0000 X5531 X5531
Device disconnected.

Going back to prior firmware (only change being Alt is remapped to AltGr)

Code: [Select]
Waiting for new device:........
Listening:

TMK:111e8c/LUFA:d6a7df

USB configured.

Loop start.
I611 A3612 wFF rFA
3614 PRT:10 ISR:FE90 rAA W3615 wF2 rFA R4619
ID:0000(AT_AT84) S4619 wED rFA w00 rFA L4624 r33 rF0 r33 r3B rF0 r3B r33 r3B rF0 r33 rF0 r3B r33 r3B rF0 r33 rF0 r3B r66 rF0 r66 r66 rF0 r66 r6
6 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r75 rF0 r75 r75 rF0 r75 r75 rF0 r75 r72 rF0 r72 r72 rF0 r72 r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r
74 rF0 r74 r74 rF0 r74 r74 rF0 r74 r66 r66 r66 r66 r66 r66 r66 r66 rF0 r66 r58 wED rFA w04 rFA rF0 r58 r58 rF0 r58 wED rFA w00 rFA r58 wED rFA
w04 rFA rF0 r58 r58 rF0 r58 wED rFA w00 rFA r58 wED rFA w04 rFA rF0 r58 r58 rF0 r58 wED rFA w00 rFA r4C rF0 r4C r52 rF0 r52 r4B r52 rF0 r4B rF0
 r52 r4B r52 rF0 r4B rF0 r52 r4B r52 rF0 r4B rF0 r52 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF0 r66 r66 rF
0 r66 r66 rF0 r66 r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r77 wED rFA w02 rFA rF0 r77 r77 rF0 r77 wED rFA w00 rFA r75 rF0 r75 r
75 rF0 r75 r72 rF0 r72 r72 rF0 r72 r75 rF0 r75 r75 rF0 r75 r75 rF0 r75 r72 rF0 r72 r72 rF0 r72 r72 rF0 r72 r75 rF0 r75 r72 rF0 r72 r75 rF0 r75
r6B rF0 r6B r6B rF0 r6B r6B rF0 r6B r74 rF0 r74 r74 rF0 r74 r74 rF0 r74 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 r66 rF0 r66

Also, to clarify what I meant with my previous message – it would be very nice to be able to get the “Pause” and “PrintScrn” keys to behave correctly (possibly by intercepting the scancodes) I am not sure if this is possible to be remapped, since the scancodes probably do not correspond to anything (known) in the software-remapper.

Especially the “Pause” key would be better to have behave as such, as opposed to NumLock (or have the option to remap it to backspace).

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #29 on: Sun, 30 January 2022, 19:54:34 »
Hi @hasu–

I did some more tests with this board today, as I am finishing up restoring it; it turns out that the increased timeout might not be needed. The board is actually not detected at all when using the modified firmware. I tested this with the TMK:ef29dc/LUFA:d6a7df version which has the extra timeout implemented, and then reverted to TMK:111e8c/LUFA:d6a7df – also tried Soarer (which works when the board is in AT-mode, and my passive AT-to-PS/2 with USB-to-mouse+keyb adapter (Aten branded – which also works)

So it is probably best to hold off with modifying the firmware unless you've already done so. Perhaps this had to do with some persistent EEPROM setting, or was a side-effect of me trying numerous different DIP-switch settings. (or simply the fact that the PCB (w/ the chips) was cleaned and the contacts improved.)

I am including the debug output below (this is for the last test, I switched betweeen the firmware a couple of times, and the behaviour is consistent)

What is exactly DIP-switch setting for the AT mode?
Also what for XT mode?

Quote
Also, to clarify what I meant with my previous message – it would be very nice to be able to get the “Pause” and “PrintScrn” keys to behave correctly (possibly by intercepting the scancodes) I am not sure if this is possible to be remapped, since the scancodes probably do not correspond to anything (known) in the software-remapper.

Especially the “Pause” key would be better to have behave as such, as opposed to NumLock (or have the option to remap it to backspace).

I believe it is not possible. You will need unacceptable compromise and very hacky way if not possible.

« Last Edit: Sun, 30 January 2022, 19:57:42 by hasu »

Offline Drag0nFly

  • Thread Starter
  • Posts: 83
Re: Can anyone identify this keyboard?
« Reply #30 on: Sun, 30 January 2022, 20:35:35 »
The DIP switch setting for AT mode is all switches (1-8) set to “off”. For XT #8 needs to be set to “on”. (Again, it appears that the increased timeout value was only required due to a fluke, as your previous firmware appears to work ok – at leeast for AT mode.)

btw.–I've been running through a number of different DIP switch settings to see if any of them affect the “Pause” and “PrintScrn” behaviour, but have so far come up short, which is why I suggested to maybe handle this in firmware if possible.
(Obviously, if it is not possible as you mention, then this is not an option. But I thought I'd mention it, as this board is quite interesting and would be nice to be used on a daily basis.)

Offline hasu

  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Can anyone identify this keyboard?
« Reply #31 on: Sun, 30 January 2022, 21:41:28 »
Quote
also tried Soarer (which works when the board is in AT-mode, and my passive AT-to-PS/2 with USB-to-mouse+keyb adapter (Aten branded – which also works)

Hmm, You found the keyboard is a normal AT keyboard at last?
If so we didn't need any hassle at the beginning. Totally weird.


The DIP switch setting for AT mode is all switches (1-8) set to “off”. For XT #8 needs to be set to “on”. (Again, it appears that the increased timeout value was only required due to a fluke, as your previous firmware appears to work ok – at leeast for AT mode.)

I believe that it should work even with the timeout fix. I may be missing something.
The fix was merged to the latest firmware on github. Try this firmware, instead.
https://raw.githubusercontent.com/tmk/tmk_keyboard/master/converter/ibmpc_usb/binary/ibmpc_usb_atmega32u4.hex