Much of the trading function handling is inside the keyboard itself, so the firmware naturally makes some assumptions that limit what one can do a bit.
For external power,
REG1, visible in the third photo, is connected to pin 23. Give it 9-12V DC, like from a wall wart. Ground is on pins 3, 8-13, and 25. (15 and 16 are also ground, for reasons guessed at below.) With that, the
Desk PC2 and
D3000 CONV keys work to change the mode of the keyboard.
When in PC2 mode, there is a PS/2 keyboard with pin 1 data and pin 2 clock. So it ought to work with an active converter, or TMK / QMK, or even Soarer's, if anyone still does that. As usual, a 3V MCU will need level shifting.
In PC mode, it acts as just a regular PC keyboard. None of the trading keys (green and orange dyesubs) send anything, with the exception of
TRANSMIT, which is just keypad enter. Moreover, the
I SELL,
I BUY,
ACCEPT, and
CONTACT keys automatically switch to D3000 mode.
All the keys are available in D3000 mode. There is an RS-232 serial port with pin 14 RXD and pin 17 TXD. It runs at 9600 baud. So a converter will need something like a
MAX3232 to convert to TTL serial, which the MCU's UART can then handle.
U6 in the third and fourth photos above, right beside the DB-25 connector, is an
ST232C, a more or less equivalent chip. Pins 15 and 16 are ground, which suggests to me that 14,16 and 15,17 are meant to be RS-422 differential pairs and this is an engineering shortcut, giving 0V and ±7V. (The TTL-only shortcut is an inverter, so 0,5V or 5,0V. This is even worse over longer distances.)
The protocol is like IBM code set 3 (the one used by terminal keyboards), with
F0 as a break prefix. The keymap is likewise an extended form of that code set.
Code: Select all
+---+---+---+---+---+---+---++---+---++---+---++---+---++-------+ +-------+ +---+---+ +---+---+
|Esc|F1 |F2 |F3 |F4 |F5 |F6 ||PrW|NxW||PC1|PC2||Xfr|Tik||CONFIRM| |CONV UP| |Cap|NTG| |Bel|Log|
+---+-----------------------------------------------------------+ +-------+ +-------+ +-------+
|F7 |F8 |F9 |F10|F11|F12||PrC|NxC||D3000 C||END CON||Rst|Pmt| |CONV DN| |I SELL | | I BUY |
+---+---+---+---+---+---++---+---++-------++-------++---+---+ +-------+ +-------+ +-------+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-------+ +---+---+---+ +---+---+---+---+
|Tab| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backspc| |Prt|Scr|Pau| |Num| / | * | |
+---------------------------------------------------------------+ +-----------+ +-----------| - |
| ACCEPT | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |Ins|Hom|PgU| | 7 | 8 | 9 | |
+---------------------------------------------------------------+ +-----------+ +---------------+
| CONTACT | A | S | D | F | G | H | J | K | L | ; | ' | Enter | |Del|End|PgD| | 4 | 5 | 6 | |
+---------------------------------------------------------------+ +-----------+ +-----------| + |
|Cap| Shift | Z | X | C | V | B | N | M | , | . | / | Shift | ||<-|Up |->|| | 1 | 2 | 3 | |
+---------------------------------------------------------------+ +-----------+ +---------------+
|INTERPT|Ctl|ABR|Alt| Space |AlG|Win|Men|Ctl|Del| |Lft|Dwn|Rgt| | 0 | . |TRNSMIT|
+-------+---+---+---+-----------------------+---+---+---+---+---+ +---+---+---+ +---+---+-------+
+---+---+---+---+---+---+---++---+---++---+---++---+---++-------+ +-------+ +---+---+ +---+---+
|08 |07 |0F |17 |1F |27 |2F ||a6F|a6D|| | ||B9 |BE ||AF | |sAC | |BC |s47| |B7 |*1 |
+---+-----------------------------------------------------------+ +-------+ +-------+ +-------+
|37 |3F |47 |4F |56 |5E ||a61|a8A|| ||AD ||B2 |AE | |AC | |CF | |CE |
+---+---+---+---+---+---++---+---++-------++-------++---+---+ +-------+ +-------+ +-------+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-------+ +---+---+---+ +---+---+---+---+
|0D |0E |16 |1E |26 |25 |2E |36 |3D |3E |46 |45 |4E |55 |66 | |57 |5F |62 | |76 |77 |7E |84 |
+---------------------------------------------------------------+ +-----------+ +-----------| |
|9C |15 |1D |24 |2D |2C |35 |3C |43 |44 |4D |54 |5B |13 | |67 |6E |6F | |6C |75 |7D | |
+---------------------------------------------------------------+ +-----------+ +---------------+
|9D |1C |1B |23 |2B |34 |33 |3B |42 |4B |4C |52 |5A | |64 |65 |6D | |6B |73 |74 |7C |
+---------------------------------------------------------------+ +-----------+ +-----------| |
|14 |12 |1A |22 |21 |2A |32 |31 |3A |41 |49 |4A |59 | |10 |63 |0D | |69 |72 |7A | |
+---------------------------------------------------------------+ +-----------+ +---------------+
|A4 |11 |A2 |19 |29 |39 |c08|s4F|58 |A3 | |61 |60 |8A | |70 |71 |79 |
+-------+---+---+---+-----------------------+---+---+---+---+---+ +---+---+---+ +---+---+-------+
a = 19 = Alt
c = 11 = Ctrl
s = 12 = Shift
*1 = B1, C2 (two successive taps from key down, nothing from key up)
Note that a handful of keys are actually chord macros and not separate codes. The most inconvenient of these is the Windows key as
Ctrl-Esc, which works to bring a menu up, but not as the HID GUI shift. The strangest is
Logoff, which sends two press / release pairs on key down.
To light the in-switch LEDs and keep them up-to-date with the OS, the converter needs to send
88 followed by a per-LED code.
- CAPS LOCK: 39 on, 3A off.
- NUM LOCK: 3B on, 3C off.
- SCROLL LOCK: 3D on, 3E off.
Finally, the
82 prefix flashes the ALARM light and buzzes the piezo. The following code is
21-
27 to select from a (not obviously meaningful to me) variety of number of pulses and their length. For example,
82 22 is thirteen short flashes + beeps and
82 23 is one long one.
I imagine there is a way to get
Desk PC1 to work, but I haven't yet found it. It might involve a different power arrangement, since that key does nothing when powered per the above.
I also suspect that a DK-3000, the Alphameric equivalent of this board, would work very similarly.