Author Topic: IBM 1386887 (3179 terminal) keyboard conversion  (Read 29479 times)

0 Members and 1 Guest are viewing this topic.

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #120 on: Mon, 28 September 2009, 19:05:58 »
Worth noting; you can use any cheap old AT or PS/2 keyboard cord, but since they probably used different wire colours (or worse, same colours on wrong pins) you'll have to use a continuity tester to figure out the pinout of the cable.

Not the end of the world; I did that for BOTH of my two...bit of a headache after but it took no time at all.
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline pseudolobster

  • Posts: 55
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #121 on: Mon, 28 September 2009, 19:10:30 »
Quote from: JohnElliott;121281
[...]
Some keys also have weird effects on Windows because their translated key-up codes get mistaken for protocol scancodes. The likely ones here are Dup and Ins (corresponding to Home and End on a 102-key keyboard) and Cmd10 and Cmd11. Dup and Ins have key-up codes of FF (error) and FA (acknowledge); Cmd10 and Cmd11 have key-up codes of E0 and E1 (extended keypress). The latest version of my patch removes the special significance from E0 and E1.

Windows uses E05B, E05C and E05D for its Windows and Menu keys. A terminal keyboard uses 5B, 5C and 5D for Cmd3, Cmd4 and Cmd5. This may explain what's going on with Windows 7 and these keys.[...]


Yes, I can absolutely confirm this. I just finished pressingc CMD9, then CMD5 and Passmark Keyboardtest claimed it was the R-Win key, which didn't transmit an up code, leaving me minimizing all windows any time I pressed M and opening explorer any time I pressed E.

So, out of curiosity, what's required to compile that driver? The Win2k DDK, visual studio, and diff? I think if I go looking I can find a copy of VS05 from back when I had an MSDN technet subscription, will that work?

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #122 on: Mon, 28 September 2009, 19:16:20 »
Quote from: pseudolobster;121293
Yes, I can absolutely confirm this. I just finished pressingc CMD9, then CMD5 and Passmark Keyboardtest claimed it was the R-Win key, which didn't transmit an up code, leaving me minimizing all windows any time I pressed M and opening explorer any time I pressed E.

So, out of curiosity, what's required to compile that driver? The Win2k DDK, visual studio, and diff? I think if I go looking I can find a copy of VS05 from back when I had an MSDN technet subscription, will that work?

The Win Key thing sounds to me like you're using the beast on a PS/2 to USB converter. A big no-no, it will never be possible to make it work on that without extensive mods to software that I don't think anyone will ever work on...

too bad, because I have wishes to do the same.

If you're actually using it on real PS/2, well, that's both weird and cool that it did that. I only had that happen while on my USB converter though.

About driver compilation - I've PM'd him already today about that so if he doesn't post it publicly I may if it's alright with him. My eventual goal would be providing the finished file for download anyway, but there are legal concerns.
« Last Edit: Mon, 28 September 2009, 19:19:45 by kishy »
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline pseudolobster

  • Posts: 55
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #123 on: Mon, 28 September 2009, 19:41:18 »
I'm actually not using any kind of USB adapter, just plugging straight into PS2. Strange, eh?

If I can figure out how to compile this, I'd like to try a few changes, such as disabling the "key up" code for backspace, and seeing if that will allow typematic to work the way it did before I patched the file... Backspace is probably the only key where I'd actually like it to have repeat.

Once I have the binary files compiled I can make a diff of the two files, release a patch of the difference as an IPS file or something, then have the user patch their own copy of i8048prt.sys, that way no MS copyrighted stuff is used... Throw it on a boot floppy image with freedos and away you go... On the other hand, I'm pretty sure the EULA of the DDK specifically allows this sort of thing... I'm no lawyer, but I recall the guys from ReactOS including NT DDK source and while they found it was technically legal, they decided against it just to be as "clean room" as possible.. Here's a discussion thread that includes the full EULA, in case anyone here actually IS a lawyer and can provide a more definitive answer: http://www.tech-archive.net/Archive/Development/microsoft.public.development.device.drivers/2005-11/msg00474.html

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #124 on: Mon, 28 September 2009, 20:48:19 »
Quote from: pseudolobster;121304
I'm actually not using any kind of USB adapter, just plugging straight into PS2. Strange, eh?


Indeed...rather cool though. If you don't mind could you throw me the part number of that keyboard again, I'm sure you mentioned it but things get buried quickly here.

Quote from: pseudolobster;121304
If I can figure out how to compile this, I'd like to try a few changes, such as disabling the "key up" code for backspace, and seeing if that will allow typematic to work the way it did before I patched the file... Backspace is probably the only key where I'd actually like it to have repeat.


While I agree with your motives wholeheartedly, I think that may create issues in certain software (notably games if you play any). The sticking keys, if assigned to any function in a Source engine game for example, do not release until the next key is received...you can see how that would be problematic if you mapped backspace to something.

Nonetheless I'm interested in trying whatever results you get.

Quote from: pseudolobster;121304
Once I have the binary files compiled I can make a diff of the two files, release a patch of the difference as an IPS file or something, then have the user patch their own copy of i8048prt.sys, that way no MS copyrighted stuff is used... Throw it on a boot floppy image with freedos and away you go...


Something fairly automatic is best...I'd go for that. However, be warned that windows file protection may still replace the file on next login...I forget exactly how that works.

Quote from: pseudolobster;121304
(info regarding legality)


Makes sense to me that files you could create through a freely available tool for use with an operating system which you (presumably) own a license for...would be freely distributable.

My rationale for thinking this: in order to use the file in its finished state, you must have the operating system (which in theory was paid for). Through using the file in its normal way, it is impossible to see copyrighted code. If anything, it seems to me a diff file or similar concept would be more illegal on the basis of it making the source code easier to access...
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline pseudolobster

  • Posts: 55
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #125 on: Mon, 28 September 2009, 22:15:48 »
Quote from: kishy;121315
Indeed...rather cool though. If you don't mind could you throw me the part number of that keyboard again, I'm sure you mentioned it but things get buried quickly here.

A regular old 1386887. *shrug*... I wonder if the ps2 port has anything to do with it.. I suppose I could try it on another motherboard, though I only have win7 on one machine right now, so it wouldn't really narrow things down any.

Quote from: kishy;121315
While I agree with your motives wholeheartedly, I think that may create issues in certain software (notably games if you play any). The sticking keys, if assigned to any function in a Source engine game for example, do not release until the next key is received...you can see how that would be problematic if you mapped backspace to something.

Nonetheless I'm interested in trying whatever results you get.

Personally, I wouldn't mind not being able to map backspace in a game if it meant being able to hold down backspace to delete a line of text. My left hand never strays farther than "T" when I'm gaming.

Quote from: kishy;121315
Something fairly automatic is best...I'd go for that. However, be warned that windows file protection may still replace the file on next login...I forget exactly how that works.
Makes sense to me that files you could create through a freely available tool for use with an operating system which you (presumably) own a license for...would be freely distributable.


I didn't have any problems with windows file protection in the slightest. I suppose time will tell, it may want to revert the file later if windows figures out what I've done.

It'll be pretty automatic, if you have a floppy drive that is... I've made self-exrtacting boot disks before and it's not hard to include a patching program in autoexec.bat and have it all run automatically.

Quote from: kishy;121315
My rationale for thinking this [...] it seems to me a diff file or similar concept would be more illegal on the basis of it making the source code easier to access...


I'd be making a file that includes the difference between the unpatched and patched binary files, not the source code.. The differences would be entirely unique code, including zero microsoft copyrighted code, and it'd be unreadable to humans.

That is, of course, the worst case scenario... If we can find out for sure that it's legal for John to redistribute the modified driver, we could just write an inf file for it and have it install like any other driver. It'd be unsigned, but there'd be no messing around with safe mode or dos boot disks or linux or whatnot.

Offline Shawn Stanford

  • Posts: 693
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #126 on: Tue, 29 September 2009, 05:16:43 »
Quote from: kishy;121279
There is a problem; the keyboard I sent you is RJ45 like a network plug... As well I believe it had PF keys, not Cmd. Please verify the keyboard you got is the same one I sent, 1394167 built by IBM UK on 24-05-99. Thanks. If you got a different one...apparently customs decided they wanted to trade you for it.

Woops!

It turns out your keyboard isn't here yet; this is the one I won on eBay for $12 a few days ago. That's kind of scary...

I pulled the connector and circuit board out of an old Dell. Here are the two circuit boards and the ends of the connectors:


It looks like I'm going to have to unlimber my multimeter to see if the wire colors correspond...
« Last Edit: Tue, 29 September 2009, 05:40:36 by Shawn Stanford »
The Brat Prince of COBOL

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #127 on: Tue, 29 September 2009, 08:09:51 »
Quote from: pseudolobster;121330
A regular old 1386887. *shrug*... I wonder if the ps2 port has anything to do with it.. I suppose I could try it on another motherboard, though I only have win7 on one machine right now, so it wouldn't really narrow things down any.

Geez, how the heck did I forget that...same keyboard as me, made on same day, sold by same seller.

I'm thinking it's something new in Vista and/or 7 which is causing those keys to do something...maybe a Microsoft keyboard product needed some additional support, who knows.


Quote from: pseudolobster;121330
Personally, I wouldn't mind not being able to map backspace in a game if it meant being able to hold down backspace to delete a line of text. My left hand never strays farther than "T" when I'm gaming.

Eh, makes sense to me. Definitely post with your progress!

Quote from: pseudolobster;121330
I didn't have any problems with windows file protection in the slightest. I suppose time will tell, it may want to revert the file later if windows figures out what I've done.

It'll be pretty automatic, if you have a floppy drive that is... I've made self-exrtacting boot disks before and it's not hard to include a patching program in autoexec.bat and have it all run automatically.

I imagine if WFP didn't catch it the first time, it never will. Nice to know 7 isn't quite as nazi-like I suppose.


Quote from: pseudolobster;121330
I'd be making a file that includes the difference between the unpatched and patched binary files, not the source code.. The differences would be entirely unique code, including zero microsoft copyrighted code, and it'd be unreadable to humans.

That is, of course, the worst case scenario... If we can find out for sure that it's legal for John to redistribute the modified driver, we could just write an inf file for it and have it install like any other driver. It'd be unsigned, but there'd be no messing around with safe mode or dos boot disks or linux or whatnot.

Hmm...good point about the patching method. Hopefully though it won't be needed; seems to me it adds extra steps to a process that is already capable of spinning some heads.

Quote from: Shawn Stanford;121369
Woops!

It turns out your keyboard isn't here yet; this is the one I won on eBay for $12 a few days ago. That's kind of scary...

(CP says package arrived; tracking link removed)

It's in the US so it shouldn't be long. That's funny though.

Quote from: Shawn Stanford;121369
I pulled the connector and circuit board out of an old Dell. Here are the two circuit boards and the ends of the connectors:
(image)

It looks like I'm going to have to unlimber my multimeter to see if the wire colors correspond...
(image)

Yeah, go with a meter, I certainly wouldn't trust colour alone.
Don't forget those goggles mister!
« Last Edit: Sun, 04 October 2009, 21:41:46 by kishy »
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline Shawn Stanford

  • Posts: 693
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #128 on: Tue, 29 September 2009, 08:31:42 »
Quote from: ripster;121291
Sorry, saving those parts for other mods.  Especially if I ever get around to making a buckling spring numpad.

Ah, well, that's reasonable. Do you have any pics of the circuit board and ribbon cable connections? I don't want to take my Boscom apart (since it's in daily use), but I'm curious as to how well they correspond with what's in the terminal board. I suspect, since my understanding is that Unicomp just bought IBM's keyboard business lock-stock, that the circuit board in the Unicomp 122 is completely compatible with the old IBM boards. That means that any vintage IBM terminal board could be brought up to modern specs by implanting a Unicomp circuit board. Which, of course, begs the question: will Unicomp sell just the circuit boards to those interested in retrofitting?

Hey, don't I owe you a 'Rule Home' key? I think I still have it floating around my house somewhere...
The Brat Prince of COBOL

Offline Shawn Stanford

  • Posts: 693
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #129 on: Tue, 29 September 2009, 09:25:24 »
Quote from: ripster;121403
Pics are in the "Destroying Boscom For Science" post in the mods section.  

Cool, thanks.

Quote
I have two "Rule Home" keys now so I think I'm set.  Does yours work? - I keep pressing mine and my wife ignores it.

If it did, do you think I would have offered it to you..?
The Brat Prince of COBOL

Offline itlnstln

  • Posts: 13094
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #130 on: Tue, 29 September 2009, 09:30:16 »
Quote from: ripster;121403
Does yours work? - I keep pressing mine and my wife ignores it.

But for some reason, you keep doing everything your wife says. Odd.


Offline itlnstln

  • Posts: 13094
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #131 on: Tue, 29 September 2009, 09:38:00 »
Quote from: ripster;121418
Anyone with Spotted **** for an avatar would appreciate the ancient Chinese saying,

That's why I own my house completely.  I can kick 'em out whenever I want.  I wouldn't do it, and I haven't, but it's always an option.  It keeps things even.  I am a very nice guy, but when the chips are down, I always have the winning card.


Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #132 on: Tue, 29 September 2009, 10:45:47 »
Quote from: Shawn Stanford;121393
Ah, well, that's reasonable. Do you have any pics of the circuit board and ribbon cable connections? I don't want to take my Boscom apart (since it's in daily use), but I'm curious as to how well they correspond with what's in the terminal board. I suspect, since my understanding is that Unicomp just bought IBM's keyboard business lock-stock, that the circuit board in the Unicomp 122 is completely compatible with the old IBM boards. That means that any vintage IBM terminal board could be brought up to modern specs by implanting a Unicomp circuit board. Which, of course, begs the question: will Unicomp sell just the circuit boards to those interested in retrofitting?

Hey, don't I owe you a 'Rule Home' key? I think I still have it floating around my house somewhere...


I'll ignore the silliness that has taken over my thread.
The internet is serious business, guise.


I believe past discussions in other threads established that it should be possible to do the circuit board swap you suggested, but Unicomp is unwilling/unable to supply the boards individually (or at least at a reasonable price, perhaps understandably)
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline JohnElliott

  • Posts: 123
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #133 on: Tue, 29 September 2009, 13:52:45 »
Quote from: pseudolobster;121293
So, out of curiosity, what's required to compile that driver? The Win2k DDK, visual studio, and diff? I think if I go looking I can find a copy of VS05 from back when I had an MSDN technet subscription, will that work?

I used the Windows 2000 DDK and Visual Studio 6, and generated the diff file under Linux (though I'm sure I could have used Cygwin). The actual DDK build scripts run from inside a command prompt with a special environment.

Offline quadibloc

  • Posts: 1590
  • Location: Edmonton, Alberta, Canada
  • Layout Fanatic
    • John Savard's Home Page
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #134 on: Tue, 29 September 2009, 15:43:06 »
Quote from: JohnElliott;121281
The problem is that on these keyboards, each key can send make/break codes, or do typematic repeat, but not both.


This is interesting, and I admit that I'm not an expert on this sort of thing. But there is one thing that surprises me about this statement, although I'm sure it derives from actual experience.

I would have guessed that since there are controls for setting the repeat delay and repeat rate in Control Panel in Windows, typematic behavior on a PC keyboard is performed in software by the computer - after a make code is received, and until a break code is received, subject to the selected delay and repeat rate, the operating system sends additional keypresses to the application program.

So you would want make/break codes only as a means of getting keys to auto-repeat. Having a key that is held down instead emit repeated make codes would be highly inappropriate behavior when connected to a normally-configured IBM PC.

What am I missing here this time?

Offline JohnElliott

  • Posts: 123
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #135 on: Tue, 29 September 2009, 15:59:26 »
Quote from: quadibloc;121508
I would have guessed that since there are controls for setting the repeat delay and repeat rate in Control Panel in Windows, typematic behavior on a PC keyboard is performed in software by the computer - after a make code is received, and until a break code is received, subject to the selected delay and repeat rate, the operating system sends additional keypresses to the application program.


Not so. The keyboard does it. What Windows does is send a  IOCTL_KEYBOARD_SET_TYPEMATIC to the keyboard driver, and the driver sends the appropriate command to the keyboard (0xf3, followed by a byte giving the encoded delay and rate).

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #136 on: Tue, 29 September 2009, 20:35:03 »
Well, it happened.
(the mod article, that is)

If anyone figured out how to make tables work here, by all means fix my hack job. Thanks

This thread is still the place to post questions/info about progress/etc, it's too long to let die now :)
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline pseudolobster

  • Posts: 55
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #137 on: Tue, 29 September 2009, 22:36:20 »
Nice work on the wiki entry! It's great to have a main info page for these keyboards anyone can contribute to.

kishy, could you check for me what scancodes you get for the left alt key? KeyboardTest is saying it's "windows key code 133", "bios key code 113"

No matter what I try I can't seem to get this mapped. I'm not so 100% sure anymore that it's a win7 thing, but I'm starting to wonder if maybe there's electrical differences between our keyboards, or if maybe my ps2 controller interprets things differently or something... I can map alt to any other key on the keyboard, but not to the key labeled alt.

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #138 on: Wed, 30 September 2009, 10:10:41 »
Quote from: pseudolobster;121584
Nice work on the wiki entry! It's great to have a main info page for these keyboards anyone can contribute to.

kishy, could you check for me what scancodes you get for the left alt key? KeyboardTest is saying it's "windows key code 133", "bios key code 113"

No matter what I try I can't seem to get this mapped. I'm not so 100% sure anymore that it's a win7 thing, but I'm starting to wonder if maybe there's electrical differences between our keyboards, or if maybe my ps2 controller interprets things differently or something... I can map alt to any other key on the keyboard, but not to the key labeled alt.


Thanks:)

You bet, I'll figure it out for you once I'm home again (sometime this evening).

I really doubt there's an electrical difference between our keyboards; they are identical in every way. Though, I won't rule it out until we see what scancode mine reports.

Did you apply jumpers to the pins in your keyboard? This could, in theory, be part of the issue if not done (nobody is 100% sure yet, at least that they've said, what consequences come from not jumpering the pins)
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline Shawn Stanford

  • Posts: 693
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #139 on: Thu, 01 October 2009, 07:47:31 »
Okay, science completed successfully. I ran a continuity test on those cables last night and got the following:
Code: [Select]

      5 PIN    6 PIN
      (3179)   (PS/2)
      ------   ------
+5v   1 (BL)   4 (YE)
GND   2 (WH)   3 (RE)
PE    3 (xx)   3 (xx)
DATA  4 (RE)   1 (GR)
CLOC  5 (YE)   5 (WH)
xx             6 (xx)

I had a few moments of confusion until I realized that the connector chart I snagged from KBDBABEL showed the females and I was working with the males. So, if I get a few minutes tonight, I'll try rewiring and we'll see how it goes.
The Brat Prince of COBOL

Offline pseudolobster

  • Posts: 55
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #140 on: Fri, 02 October 2009, 22:32:55 »
Quick update...

I can confirm the patched driver does NOT work on win2k3 server R2 64bit, I'm pretty sure this is a 64bit problem and not a windows server problem. If and when I install VS and get around to trying to compile the driver myself, I'll see if I can compile a 64bit version... The original version of i8048prt.sys is some 74kb for windows 7 (32bit) while it's something like 91kb on server 2k3 x64.

Also I can't for the life of me get windows 7 to remap the alt keys, and I still can't map the down arrow key ("roll down") to anything... I'll try again next week with WinXP 32bit or something.. Failing that I'll try a different motherboard.

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #141 on: Fri, 02 October 2009, 23:27:16 »
Quote from: pseudolobster;122469
Quick update...

I can confirm the patched driver does NOT work on win2k3 server R2 64bit, I'm pretty sure this is a 64bit problem and not a windows server problem. If and when I install VS and get around to trying to compile the driver myself, I'll see if I can compile a 64bit version... The original version of i8048prt.sys is some 74kb for windows 7 (32bit) while it's something like 91kb on server 2k3 x64.

Also I can't for the life of me get windows 7 to remap the alt keys, and I still can't map the down arrow key ("roll down") to anything... I'll try again next week with WinXP 32bit or something.. Failing that I'll try a different motherboard.

Whoa, the original is 74kb in 7? Original in XP was between 50 and 55...what on earth could they have added to a PS/2 port driver...

I really suspect it's a Win7 thing going on with the alt and roll down keys...if that's not the cause, then I'd suspect motherboard, and if that's not it then it's definitely the keyboard (no way around it in that case). Obviously I'm at a bit of an advantage having two of the things so I can verify whether issues are inside the boundaries of the computer case or not using only the one computer.

Who's examined the matrix in one of these? Is it possible for a broken trace in one specific location to take out those specific keys?

(actually, scratch that, I just remembered pseudolobster said that the keys were sending scancodes. since they're sending scancodes which software can see it's a windows 7 thing almost certainly)
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline microsoft windows

  • Posts: 5419
  • Microsoft Windows
    • Get Internet Explorer 6
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #142 on: Sat, 03 October 2009, 07:05:14 »
I have a question:
You know how the keyboard unit of a 122 key keyboard plugs into the keyboard's mainboard with a ribbon cable. What happens if you plug that into a Model M mainboard?


A world without Windows is a prison!

Windows 3.1 Training:
http://www.youtube.com/watch?v=rnkqmTmO_uc

Get Microsoft Internet Explorer 6:
http://www.microsoft.com/en-us/download/details.aspx?id=1

Offline Shawn Stanford

  • Posts: 693
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #143 on: Sat, 03 October 2009, 07:43:29 »
One of the ribbon cables is wider on a 122 key keyboard. If my understanding is correct, a keyboard appears as a matrix to the controller chip. Each key generates an x,y coordinate by sending a signal on two channels. The controller chip looks at the intersection of these two channels and sends the code it has for that location.

A 101 key model M is 8x16, a 122 key is 8x20.
The Brat Prince of COBOL

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #144 on: Sat, 03 October 2009, 11:35:22 »
Quote from: microsoft windows;122538
I have a question:
You know how the keyboard unit of a 122 key keyboard plugs into the keyboard's mainboard with a ribbon cable. What happens if you plug that into a Model M mainboard?


Quote from: Shawn Stanford;122540
One of the ribbon cables is wider on a 122 key keyboard. If my understanding is correct, a keyboard appears as a matrix to the controller chip. Each key generates an x,y coordinate by sending a signal on two channels. The controller chip looks at the intersection of these two channels and sends the code it has for that location.

A 101 key model M is 8x16, a 122 key is 8x20.


Oh I just had one of those dangerous ideas...

I wonder how similar the matrix is between the two...what would happen if one were to remove the end from the ribbon cable connector so the longer one could fit? Obviously some keys (perhaps many) would not work, but would the normal 1391401-style area work as expected of a normal M?

I imagine there's a lot more to it than that, but one of those neat ideas to throw out there.
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #145 on: Sat, 03 October 2009, 12:59:26 »
Whoa...those are quite different, actually seeing them beside each other.

Hmm...wonder which keys would be lost.

(I'm currently installing Windows 98 on a generic Pentium MMX system using a 1386887 to see how well or poorly the process goes...already had issues at the DOS prompt because I couldn't type backslash...will post with successes/failures when it's done)
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #146 on: Sat, 03 October 2009, 14:16:05 »
Windows 98 with a 1386887

Some background first:
At some point in my "adventure" with the terminal keyboards, I read that Windows 98 had built in support for these keyboards. This could have been a very handy thing, finding someone to examine the Win98 driver and figure out every last step necessary in a finished, perfect driver for NT+

So I built a Pentium MMX system (typical baby AT motherboard, P-MMX 200MHz, 32MB PC66 RAM, 1mb graphics card, 2.5GB hard drive, CD-ROM)

Installed Win98. My process for this differs from most people; I first use the DOS prompt to copy the contents of the CD to C: then install directly from C: to itself (wayyy faster and more reliable). First problem: "D:\>copy win98 c:\win98" involves a backslash which I forgot the location of on this board (hint: it's left arrow). Hotplugged for a different keyboard which resulted in a very curious system lockup and LEDs sticking on on the keyboard. Had to fully power cycle the system. Weird.

During setup, the following keyboard layouts were possible choices. As you can see, none directly correspond to this keyboard or anything useful:

Code: [Select]
Albanian
Belarusian
Belgian (Comma)
Belgian (Period)
British
Bulgarian
Canadian Multilingual
Canadian Standard
Croatian
Czech
Czech (Programmers)
Czech (Qwerty)
Danish
Dutch
Estonian
Finnish
French
French Canadian
German (IBM)
German (Standard)
Greek
Greek IBM 220
Greek IBM 319
Greek Latin
Greek Latin IBM 319
Hungarian
Hungarian (101 keys)
Icelandic
Irish
Italian 142
Latin American
Latin American (Bolivia)
Latin American (El Salvador)
Latin American (Honduras)
Latin American (Nicaragua)
Latin American (Puerto Rico)
Latvian
Lithuanian (IBM)
Macedonian (FYROM)
Norwegian
Norwegian (Nynorsk)
Polish
Polish (Programmers)
Portuguese (Brazilian ABNT2)
Portuguese (Brazilian standard)
Portuguese (Standard)
Romanian
Russian
Russian (Typewriter)
Serbian
Slovak
Slovak (Qwerty)
Slovenian
Spanish Modern
Spanish Traditional
Swedish
Swiss French
Swiss German
Turkish (F type)
Turkish (Q type)
Ukranian
United States 101
United States-Dvorak
United States-LH Dvorak
United States-RH Dvorak

While none are obvious matches, does anyone know one which may be closer than US 101?

The sticking key (no break code) problems are obvious when using spacebar to select things...the button you're "clicking" will get stuck down and not come back up (without doing the intended action either), so hitting Enter (in this case Field Exit) is the only option.

Other than that, install went flawlessly. Remembered the product key off the top of my head...bad sign.

Now, investigating the "update device driver wizard" for the installed keyboard ("Standard 101/102-Key or Microsoft Natural Keyboard", uses: hidvkd.sys vmm32.vxd hidparse.sys hidclass.sys), I see almost all options are USB and there is no IBM category.

Something that caught my eye was Maxi Switch, though. Options are:

Code: [Select]
Maxi Switch, Inc. #1101
Maxi Switch, Inc. #1102
Maxi Switch, Inc. #2101
Maxi Switch, Inc. #2102

Do any of these correspond to, for example, the Maxi Switch keyboard with an active thread somewhere on the forum which is like a 122-key "tenkeyless"?

Going to the (Standard keyboards) category, I see the current selection, and also:

Code: [Select]
Compaq Enhanced Keyboard
HID-compliant keyboard
Olivetti Keyboard (102-Key)
Olivetti Keyboard (83-Key)
Olivetti Keyboard (86-Key)
Olivetti Keyboard (A101/102-Key)
PC/AT Keyboard (84-Key)
PC/XT Keyboard (83-Key)
PC/XT Keyboard (84-Key)

Just for kicks, I decided to try the PC/AT 84-key driver.
Cmd7 and 8 both became sleep!
Key sticking issues do still exist (I expected that). No functional changes have happened except for Cmd 7 and 8 changing like that.

I would say then, "myth busted" with regards to Win98 supporting the keyboard out of the box. However, it does "work" which is itself good...I wonder if there are key remaps in the Win98 registry.
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Offline quadibloc

  • Posts: 1590
  • Location: Edmonton, Alberta, Canada
  • Layout Fanatic
    • John Savard's Home Page
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #147 on: Sat, 03 October 2009, 18:31:10 »
Quote from: kishy;122617
While none are obvious matches, does anyone know one which may be closer than US 101?


All those layouts are for the same two physical keyboards - U.S. 101 and international 102 - so I'm afraid you won't get "closer" to a 122-key keyboard that way.

I know that in Windows 3.1, I once saw an entry for a 122-key keyboard choice somewhere in the Control Panel, but I'm not sure of the details.

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #148 on: Sat, 03 October 2009, 20:03:23 »
Quote from: quadibloc;122711
All those layouts are for the same two physical keyboards - U.S. 101 and international 102 - so I'm afraid you won't get "closer" to a 122-key keyboard that way.

I know that in Windows 3.1, I once saw an entry for a 122-key keyboard choice somewhere in the Control Panel, but I'm not sure of the details.

Well you realize what you've done now, right?
Time for DOS 5 and Win3.1! (not right now, right now I'm making a layout file for Passmark KeyboardTest)

Oh, and it turns out my missing rivets ARE a problem.

Springs and hammers are coming completely out of alignment, in some cases can't even buckle without me rearranging them and holding board at an angle. Looks like it's time for screws and nuts...


Edit:

Not directed at any one in particular, just everyone:
PassMark KeyboardTest layout complete - get it while it's hot!
Extract files and put in KeyboardTest program directory. Fire it up and hammer away. This is post-driver-replacement, pre-remaps, so if you don't have the driver replaced yet most of the keys won't be sending break codes (meaning a lot of the green in that pic will be red for you).

Interestingly, what would normally be numpad '-' doesn't send a scancode, but instead acts like Alt+PrintScreen. It can easily be remapped using the registry (hint: do this remap LAST!!! otherwise it will become broken when you remap alt and assign a key to print screen), but cannot be tested in the program as a result of not sending a scancode. Because of that I made that key appear yellow in the layout which signifies "not testable".
« Last Edit: Sun, 04 October 2009, 00:38:10 by kishy »
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"

Online kishy

  • Thread Starter
  • Posts: 2807
  • Location: ON, Canada
  • Eye Bee M
    • http://kishy.dyndns.org/
IBM 1386887 (3179 terminal) keyboard conversion
« Reply #149 on: Sun, 04 October 2009, 11:38:37 »
Here's an idea...

Is it at all possible to pass commands to a PS/2 keyboard on a USB converter?
If so...is a USB HID driver mod a possibility?
my keyboards
'81 XT F | '83 'Kishsaver' F | '85 AT F |  '86 122 F | '86 122 M x2 | '87 107 F | '91 101 M | '92 104 F | '93 101 M | '97 101 M13
"XT", "AT" or "Terminal" goes before "Model F" or "Model M"