geekhack

geekhack Community => Keyboards => Topic started by: microsoft windows on Fri, 31 July 2009, 07:59:42

Title: Windows 95 supports PC/XT keyboards
Post by: microsoft windows on Fri, 31 July 2009, 07:59:42
When I was playing around on one of my older computers (This one had Windows 95), I made an interesting discovery. It appears that Windows 95 has a driver for PC/XT 83 key keyboards. This means that they should be compatible with modern PC's to at least some extent.
(http://geekhack.org/attachment.php?attachmentid=3477&d=1249045530)
I took a screenshot of the keyboards window. I'm sure you can see that Windows 95 is compatible with many more keyboards than just an AT.



If someone has an XT keyboard and a Windows 95 computer, would they be able to try this?
Title: Windows 95 supports PC/XT keyboards
Post by: timw4mail on Fri, 31 July 2009, 08:01:00
Quote from: microsoft windows;105742
When I was playing around on one of my older computers (This one had Windows 95), I made an interesting discovery. It appears that Windows 95 has a driver for PC/XT 83 key keyboards. This means that they should be compatible with modern PC's to at least some extent.

If someone has an XT keyboard and a Windows 95 computer, would they be able to try this?

I think the big issue with this was that the XT is wired differently than the AT, not the driver, but I could be wrong.
Title: Windows 95 supports PC/XT keyboards
Post by: microsoft windows on Fri, 31 July 2009, 08:04:44
They must at least work with Windows 95 then. If I ever get one, I might try extracting the driver from Windows 95 and putting it on XP.
Title: Windows 95 supports PC/XT keyboards
Post by: skriefal on Fri, 31 July 2009, 08:56:33
I expect that they'll work, but only if the hardware (motherboard) has support for the XT keyboard protocol.  The driver must likely does nothing more than tell the O/S which keys are available on the board.
Title: Windows 95 supports PC/XT keyboards
Post by: JBert on Fri, 31 July 2009, 12:11:16
Quote from: timw4mail;105743
I think the big issue with this was that the XT is wired differently than the AT, not the driver, but I could be wrong.
The connectors are completely compatible, the only change was that the AT protocol used the 5th pin for a reset signal. For XT's, it was simply unconnected.

The protocol is different though: different timings, different sync bits, uni- vs. bi-directional, command modes and an extreme difference in scancodes.


Quote from: skriefal;105757
I expect that they'll work, but only if the hardware (motherboard) has support for the XT keyboard protocol.  The driver must likely does nothing more than tell the O/S which keys are available on the board.
I fear the same. Unless your PS2 controller is driven by software, it won't understand the XT protocol.

Seeing how the BIOS mostly initialises the PS/2 bus, I think it is implemented in hardware, hence this driver may not work.


Finally, you will need to test it with windows 95 or windows 98; Windows 9x drivers were built on the VxD architecture from Windows 3.1 whereas Windows 2000 and upwards only works with the newer WDM architecture.
Title: Windows 95 supports PC/XT keyboards
Post by: Manyak on Fri, 31 July 2009, 13:26:15
Quote from: JBert;105862
Finally, you will need to test it with windows 95 or windows 98; Windows 9x drivers were built on the VxD architecture from Windows 3.1 whereas Windows 2000 and upwards only works with the newer WDM architecture.


Windows NT and upwards you mean, not 2000.
Title: Windows 95 supports PC/XT keyboards
Post by: JBert on Fri, 31 July 2009, 15:55:05
Quote from: Manyak;105873
Windows NT and upwards you mean, not 2000.
I was talking about operating systems you'd have available for a home PC. I don't know anyone who installs NT 4 for fun...

You are right that NT can't use VxD's though, although to my defense the WDM architecture was only introduced in Windows 2000.
Title: Windows 95 supports PC/XT keyboards
Post by: itlnstln on Fri, 31 July 2009, 16:04:26
Quote from: JBert;105916
I was talking about operating systems you'd have available for a home PC. I don't know anyone who installs NT 4 for fun...
 
You are right that NT can't use VxD's though, although to my defense the WDM architecture was only introduced in Windows 2000.

 
I had NT 3.51 for awhile.  Not fun.
Title: Windows 95 supports PC/XT keyboards
Post by: ch_123 on Fri, 31 July 2009, 17:15:40
Quote from: JBert;105862
The connectors are completely compatible, the only change was that the AT protocol used the 5th pin for a reset signal. For XT's, it was simply unconnected.

Quote
I think the big issue with this was that the XT is wired differently than the AT, not the driver, but I could be wrong.

Both incorrect, although the rest of what Jbert says is right. The two had exactly the same pin out - see kbdbabel for diagrams, they only used four pins - this is why on Model M PS/2 cables, you only see four of the pins used. The difference is that they use different protocols (the AT protocol was bi-directional, so the reset signals would have been sent over the data line) and different scancodes. It has to be implemented at the low end, and in theory you could design a motherboard that dealt with both. In reality, this was never really done, the AT protocol was more desirable, and people didn't have much love for the layout on original PC/XT keyboards so there wasn't a great desire for backwards compatibility. Alot of those Windows drivers are leftovers from the earlier versions of Windows that actually could run on an XT.

I was just thinking though, could you have a simple XT to USB adaptor, and do all the scancode/protocol conversion with a custom software driver? And I think the 1390120 Model M was compatible with both XTs and ATs.
Title: Windows 95 supports PC/XT keyboards
Post by: JBert on Sat, 01 August 2009, 05:00:08
Translating the scancodes in software seems unnecessary - it would take about the same electronics to send the XT scancodes as it would take to build a true keyboard converter which would seamlessly with any HID driver.

The only thing which could thus be simplified is the micro-controller code.