You should just call Unicomp. I suspect the "Emulator" may act like my 1397000 (click on link in Sig for scancode details).
This is the PC/5250 Unicomp data sheet in pdf form. (http://web.archive.org/web/20070307135918/www.pckeyboard.com/pdf/PC5250UserGuide.pdf)
They'd also be for connector types. Terminal keyboards would use a special 5 pin DIN connector and have no lock lights. As long as you get one with a PS/2 cable and lock lights, it will function as a normal PC keyboard, and will have spare keys that can be mapped.
I thought 99% of the New Zealand population went "Baa, Baa" or "Moo, Moo"?
No, that's another drop-down box yet again (PS2/Mini-Din, AT/Din, Modular/RJ-45).
Hey, as long as it's got a Rule Home key I'll be happy.
"The PC5250 uses all PC codes as you noted;i.e., Shift +F! for F13; Shift +F2 for F14 etc. It also has a 5250 layout. The emulator model on the other hand has unique codes for the non PC buttons.The PC would not understand the unique codes unless you had a unique driver to interpret them."
So the emulator model is indeed correct. I take it he means by `unless you had a unique driver to interpret them', that they will be ignored. On Linux you can simply edit a text file to say which scancodes are tied to what; do you have to write a new driver or something on Windows? Is that what he means?
I have no idea if typematic repeat has been overtaken by anything or not...I was under the impression that software configuration (in Windows, the Keyboard control panel applet) in fact just send commands via the driver and it was still done keyboard-end.
OK, sounds like collective geekhack actually knows what it's talking about. Cool story bro.
I emailed Unicomp and they got back to me with this:
"The PC5250 uses all PC codes as you noted;i.e., Shift +F! for F13; Shift +F2 for F14 etc. It also has a 5250 layout. The emulator model on the other hand has unique codes for the non PC buttons.The PC would not understand the unique codes unless you had a unique driver to interpret them."
So the emulator model is indeed correct. I take it he means by `unless you had a unique driver to interpret them', that they will be ignored. On Linux you can simply edit a text file to say which scancodes are tied to what; do you have to write a new driver or something on Windows? Is that what he means?
Anyway, it sounds like the Emulator model is what I need. And I can choose between 3270 and 5250 as a matter of taste it would seem (the 1397000, therefore, is a 122-key Emulator with 3270 layout on the Unicomp website).
Wicked.
Just use Autohotkey to pick up the scancodes. Details and code are in the Model M 1397000 link in my sig.
I'm using the same trick right now to reprogram a Japanese keyboard to pick up 3 extra keys in reach of my thumb.
I forgot that sucker has jumpers. Let me know what you find out.
May be new life for my old Boscom controller yet.Show Image(http://farm5.static.flickr.com/4074/4863704528_0bba7a9d9e_z.jpg)
On topic as ever.
There IS medication for Assburgers.Show Image(http://farm5.static.flickr.com/4073/4856505317_c9a65a9502_z.jpg)
I forgot that sucker has jumpers. Let me know what you find out.
May be new life for my old Boscom controller yet.Show Image(http://farm5.static.flickr.com/4074/4863704528_0bba7a9d9e_z.jpg)
Perhaps related to the unpopulated chip socket?
What's the function of that chip?
Looks like my mentioned-in-IRC-theory may be correct - it's an E(E)PROM.
Layout or some scancode-related stuff could be stored in there.
Dfj, get in here!
There I was thinking that it was some sort of 74-series logic chip...
The controller in my Affirmative looks pretty similar, but it's only got two jumpers (and only one selected). I wonder what they do.and, courtesy of ripster:Show Image(http://www.seasip.info/Misc/Images/1227T_controller.jpg)
lol - it's OK to use my pics without thanking me here.....No worries: I was once an academic, so I decided to replace my notion of intellectual property with attribution instead. It's largely in my spine now.
A very cool discovery. Managed to find an appropriate nutspinner at work today, so I'm busy configuring the new layout now - despite all the tools at home, nothing quite reaches the Unicom bolts :(
Hmm ... so Unicom keyboards are effectively programmable, although I suspect the ability to program the EEPROM isn't on board ? Shame it isn't really - that would be a neat feature ... if Unicom documented it!
The tool I use to see what scancodes a keyboard is actually returning is one I wrote: KB (http://www.seasip.info/DOS/kb.zip), running under DOS so it drives the hardware directly. This tends to avoid problems with operating systems being helpful and interpreting or throwing away scancodes; it also lets you see the keyboard ID and select any of the three scancode sets, translated or untranslated.
(Would it help if we referred to the left-hand 10 key positions as L1-L10, like on a Sun Type 3 keyboard?)
I forget how the prefixes were handled, though - what do you get for stuff like the extended keys and the pause key when in mode 2? Do you get to see the whole string of bytes, or is the i8042 parsing that?
A quick post before work ...
I wasn't previously aware of atkbd.softraw (well it rings a bell, but I wouldn't have thought of it). Reading around, there's also i8042.direct. Interesting that you had to turn that off to get responses from some of the keys - did you try the i8042 debug thing ?
Esc on my board is also labelled "SysReq" and "Attn". Personally I feel L1-L10 is a little obscure for most, and perhaps a little unIBM :)
101 or AT 1390876 page 3 location (break is always F0 NN for page 3)
location |
name | unicomp page-2, no j3
| | makes breaks
| | | |
TF-13 08 1F F0 1F
TF-14 10 27 F0 27
TF-15 18 2F F0 2F
TF-16 20 5E F0 5E
TF-17 28 08 F0 8
TF-18 30 10 F0 10
TF-19 38 18 F0 18
TF-20 40 20 F0 20
TF-21 48 28 F0 28
TF-22 50 30 F0 30
TF-23 57 38 F0 38
TF-24 5F 40 F0 40
TF-1 07 05 F0 5
TF-2 0F 06 F0 6
TF-3 17 04 F0 4
TF-4 1F 0C F0 C
TF-5 27 03 F0 3
TF-6 2F 0B F0 B
TF-7 37 83 F0 83
TF-8 3F 0A F0 A
TF-9 47 01 F0 1
TF-10 4F 09 F0 9
TF-11 56 78 F0 78
TF-12 5E 07 F0 7
LF-1 05 6D F0 6D
LF-2 06 5F F0 5F
`/~ 0E 0E F0 0E
KB-1 16 16 F0 16
KB-2 1E 1E F0 1E
KB-3 26 26 F0 26
KB-4 25 25 F0 25
KB-5 2E 2E F0 2E
KB-6 36 36 F0 36
KB-7 3D 3D F0 3D
KB-8 3E 3E F0 3E
KB-9 46 46 F0 46
KB-0 45 45 F0 45
KB-- 4E 4E F0 4E
KB-= 55 55 F0 55
u-backspc 5D
Backspace 66 66 F0 66
insert 67 17 F0 17
home 6E E0 7D E0 F0 7D
pg-up 6F E0 7A E0 F0 7A
np-num-lock 76 76 F0 76
np-/ 7E 7E F0 7E
np-* 7E 7C F0 7C
np-- 84 E0 4A E0 F0 4A
LF-3 04 39 F0 39
LF-4 0C E1 14 77 E1 F0 14 F0 77 (page 2 pause - there is no break)
tab 0D D F0 D
q 15 15 F0 15
w 1D 1D F0 1D
e 24 24 F0 24
r 2D 2D F0 2D
t 2C 2C F0 2C
y 35 35 F0 35
u 3C 3C F0 3C
i 43 43 F0 43
o 44 44 F0 44
p 4D 4D F0 4D
{ 54 54 F0 54
} 5B 5B F0 5B
delete 64 E0 69 E0 F0 69
end 65 E0 70 E0 F0 70
pg dn 6D E0 71 E0 F0 71
np-7 6C 6C F0 6C
np-8 75 75 F0 75
np-9 7D 7D F0 7D
np+/field- 7C 79 F0 79
LF-5 03 53 F0 53
LF-6 0C 50 F0 50
capslock 14 58 F0 58 (right control)
a 1C 1C F0 1C
s 1B 1B F0 1B
d 23 23 F0 23
f 2B 2B F0 2B
g 34 34 F0 34
h 33 33 F0 33
j 3B 3B F0 3B
k 42 42 F0 42
l 4B 4B F0 4B
; 4C 4C F0 4C
'/" 52 52 F0 52
}/{ 53 5D F0 5D
enter 5A 5A F0 5A
cp-up 63 E0 75 E0 F0 75
np-4 6B 6B F0 6B
np-5 73 73 F0 73
np-6 74 74 F0 74
np-field+ 7B 7B F0 7B
LF-7 83 E0 12 E0 7C E0 F0 7C E0 F0 12 (shifted 7C, numpad - (or * on 1391401))
LF-8 0A 6F F0 6F
L-shift 12 12 F0 12
>/< 13 61 F0 61 (under left shift on 1391401)
z 1A 1A F0 1A
x 22 22 F0 22
c 21 21 F0 21
v 2A 2A F0 2A
b 32 32 F0 32
n 31 31 F0 31
m 3A 3A F0 3A
, 41 41 F0 41
. 49 49 F0 49
/ 4A 4A F0 4A
u-r-shift 51 E0 1F E0 F0 1F
r-shift 59 59 F0 59
cp-left 61 E0 6B E0 F0 6B
cp-rule 62 E0 6C E0 F0 6C
cp-right 6A E0 74 E0 F0 74
np-1 69 69 F0 69
np-2 72 72 F0 72
np-3 7A 7A F0 7A
np-enter 79 E0 5A E0 F0 5A
LF-9 83 5C F0 5C
LF-10 09 48 F0 48
L-CTRL 11 14 F0 14
l-alt 19 11 F0 11
space 29 29 F0 29
R-alt 39 E0 11 E0 F0 11
R-ctrl 58 E0 14 E0 F0 14
cp-down 60 E0 72 E0 F0 72
u-np-0 68 E0 2F E0 F0 2F
np-0 70 70 F0 70
np-. 71 71 F0 71
[/B]
For folks edification, here are the codes for page 2 on the Unicomp UB40T56.
I'm concentrating on page 2
Or rather scan code set 1 ... or at least it looks that way. I've set atkbd.softraw=0 which has brought to life the printscreen key and updated my table (http://really.zonky.org/?p=1125).
Don't be too sure - if translation is on, then all those numbers will appear in the fashion you show, rather than as f0 strings.
Or rather scan code set 1 ... or at least it looks that way.
And here's one of my SVG diagrams (http://www.seasip.info/Misc/Images/ub40t56_raw2.svg) based on that information. I've shaded those keys where, as far as I can see, the scancodes are different from those that the Affirmative produces; some of these are for keys that send different codes depending what modifiers are in effect, so it's possible that they'll turn out to be the same after all.
PS under the enter, where one might want to put a \| is 5D, F0 5D like you guessed, but under the backspace: E0 27, E0 F0 27
As you put it L7, or AT F-7, has that crazy shift-7C sequence. not certain how you normally encode long strings like pause, etc... huh - interesting, I never noticed - pause can be thought of as right-ctrl, num-lock, num-lock-break, right-ctrl-break
top fct keys:
TF-13 08 08 F0 08
TF-14 10 10 F0 10
TF-15 18 18 F0 18
TF-16 20 20 F0 20
TF-17 28 28 F0 28
TF-18 30 30 F0 30
TF-19 38 38 F0 38
TF-20 40 40 F0 40
TF-21 48 48 F0 48
TF-22 50 50 F0 50
TF-23 57 57 F0 57
TF-24 5F 5F F0 5F
TF-1 07 07 F0 07
TF-2 0F 0F F0 0F
TF-3 17 17 F0 17
TF-4 1F 1F F0 1F
TF-5 27 27 F0 27
TF-6 2F 2F F0 2F
TF-7 37 37 F0 37
TF-8 3F 3F F0 3F
TF-9 47 47 F0 47
TF-10 4F 4F F0 4F
TF-11 56 56 F0 56
TF-12 5E 5E F0 5E
left fct keys:
LF-1 05 05 F0 05
LF-2 06 06 F0 06
LF-3 04 04 F0 04
LF-4 0C 0C F0 0C
LF-5 03 03 F0 03
LF-6 0B 0B F0 0B
LF-7 83 83 F0 83
LF-8 0A 0A F0 0A
LF-9 01 01 F0 01
LF-10 09 09 F0 09
main text area:
`/~ 0E 0E F0 0E
KB-1 16 16 F0 16
KB-2 1E 1E F0 1E
KB-3 26 26 F0 26
KB-4 25 25 F0 25
KB-5 2E 2E F0 2E
KB-6 36 36 F0 36
KB-7 3D 3D F0 3D
KB-8 3E 3E F0 3E
KB-9 46 46 F0 46
KB-0 45 45 F0 45
KB-- 4E 4E F0 4E
KB-= 55 55 F0 55
u-backspc 5D 5D F0 5D
Backspace 66 66 F0 66
tab 0D 0D F0 0D
q 15 15 F0 15
w 1D 1D F0 1D
e 24 24 F0 24
r 2D 2D F0 2D
t 2C 2C F0 2C
y 35 35 F0 35
u 3C 3C F0 3C
i 43 43 F0 43
o 44 44 F0 44
p 4D 4D F0 4D
{ 54 54 F0 54
} 5B 5B F0 5B
\| 5C 5C F0 5C
capslock 14 14 F0 14
a 1C 1C F0 1C
s 1B 1B F0 1B
d 23 23 F0 23
f 2B 2B F0 2B
g 34 34 F0 34
h 33 33 F0 33
j 3B 3B F0 3B
k 42 42 F0 42
l 4B 4B F0 4B
; 4C 4C F0 4C
'/" 52 52 F0 52
}/{ (under enter on US) 53 53 F0 53
enter 5A 5A F0 5A
L-shift 12 12 F0 12
>/< 13 13 F0 13
z 1A 1A F0 1A
x 22 22 F0 22
c 21 21 F0 21
v 2A 2A F0 2A
b 32 32 F0 32
n 31 31 F0 31
m 3A 3A F0 3A
, 41 41 F0 41
. 49 49 F0 49
/ 4A 4A F0 4A
u-r-shift 51 68 F0 68 <-- different
r-shift 59 59 F0 59
L-CTRL 11 11 F0 11
l-alt 19 19 F0 19
space 29 29 F0 29
R-alt 39 39 F0 39
R-ctrl 58 58 F0 58
cursor-pad area:
insert 67 67 F0 67
home 6E 6E F0 6E
pg-up 6F 6F F0 6F
delete 64 64 F0 64
end 65 65 F0 65
pg dn 6D 6D F0 6D
cp-up 63 63 F0 63
cp-left 61 61 F0 61
cp-rule 62 62 F0 62
cp-right 6A 6A F0 6A
cp-down 60 60 F0 60
number-pad area:
np-num-lock 76 76 F0 76
np-/ 77 77 F0 77
np-* 7E 7E F0 7E
np-- 84 84 F0 84
np-7 6C 6C F0 6C
np-8 75 75 F0 75
np-9 7D 7D F0 7D
np+/field- 7C 7C F0 7C
np-4 6B 6B F0 6B
np-5 73 73 F0 73
np-6 74 74 F0 74
np-field+ 7B 7B F0 7B
np-1 69 69 F0 69
np-2 72 72 F0 72
np-3 7A 7A F0 7A
np-enter 79 79 F0 79
u-np-0 68 78 F0 78 <-- different
np-0 70 70 F0 70
np-. 71 71 F0 71
u-np-enter 78 -- <-- different.
[/B]
So to summarize for us mere humans it seems removing the Boscom/Unicom J3 jumper makes the Boscom/Unicomp act like a IBM/Lexmark Model M 1397000. (http://geekhack.org/showwiki.php?title=Island:7358&) At least at first pass looking at the scan codes.
No google needed. It's in the 1397000 link.bah, I read through the whole thing, even followed to dw_junion's post (he had a few scattered codes, already eaten by the i8042, though.)
I did another pass of the keys in mode three, without jumper 3:
There are three differences from the 1390876 in scan-code mode 3:
under the right shift has a different code, as does the pad under the keypad 0. The keypad-enter does not seem to have an extra pad under it.
I'm not overly curious what is on that eeprom - my fear is that it is 1/2 of the matrix decoding logic, rather than anything sane. I only have my board back until monday, so I may or may not have time to pull it.
If you don't, perhaps Ripster's Boscom controller could be induced to give up its EEPROM for the cause of [strike]mad[/strike] science?I've got one of them multi-pin clamp-style connectors, and I've got the keyboard for a bit longer to do a bolt-mod.
Well I've finished off my blog posting on re-mapping this keyboard (http://really.zonky.org/?p=1125) - finished off mapping out the scancodes and keycodes with the exception of the QWERTY pad (which is not so interesting) plus dealing with keymapping for X.
There's something odd going on with the Record key - once it has been pressed, some of the other keys send their own keycode followed by the Record keycode. Some sort of terminal feature ?
The "E02A" that the Record key produces is fake-Shift. If you assign a keycode to that, you'll get it reported on any other key that generates fake-Shift. The sequence E02A,E037 that you've documented is produced by PrintScreen on a normal 101-key or 102-key board; and, indeed, on my Affirmative the PrintScreen key is in the L7 position, where your Record key is.
The "E02A" that the Record key produces is fake-Shift.
Aha! I would say that makes sense, but it really doesn't ... I wouldn't be at all surprised if the committee that designed scan code set 2 always met in the afternoon after long liquid lunches :)
The whole thing about set 2 is it's trying to be backward-compatible with the 84-key AT keyboard, so that if you plug an enhanced keyboard into an AT the extra keys still do what they should. On the AT, PrintScreen is Shift + Keypad *: 2A 37. The enhanced keyboard then added a separate PrintScreen key, which produces the sequence E02A E037. The AT ignores the E0s and you get the right effect. A computer that recognises the E0s can distinguish between the two keys and ignore the fake Shift.
Similarly, Pause: E11D 45. On an AT, the E1s are ignored and you get 1D 45: Ctrl + NumLock.
static uint8_t PROGMEM matrix122F_to_set3[] = {
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x84, // (), npenter, np3, (), np+, np9, np*, np-
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, // np0, np., np2, np5, np6, np8, numlck, np/
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, //
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x00, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, // 0x50 vanishes - is test key.
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, // 0x48 vanishes - else roll back.
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x01, 0x83, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, // 0x02 is replaced with 0x83.
};
Yeah - the matrix kept changing for some reason - extra pad under the keypad enter being a victim in later versions, for example. I put pause there, myself.
Messing with the Ms is good fun, but eventually I got my hands on an F 122, and then the fun really began. :)
mrr - I have a recent uni with the eprom socketted, wonder how different it is from what you describe. :)
dfj