VOGONS

Common searches


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

I wasn't sure if the problem is related to the fact I am using FreeDOS but I could start here.

Whenever I launch a program, the keyboard stops responding. In normal DOS the keyboard functions as expected.

I am using a relatively modern Gigabyte B450MS chipset with a GTX 1050Ti GPU. The keyboard is connected to the USB port since PS2 keyboards are rarer than diamonds in my state, and also the fact the USB keyboard would work on my Ivy Bridge chipset.

Is there any general solution to this?

previously known as Discrete_BOB_058

Reply 1 of 8, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Hi BEEN_Nath_58,

I recently ran into the same exact problem. This is apparently the case when the Legacy BIOS of your motherboard does not have proper PS/2 emulation for USB keyboards and mice. Well-behaved applications that access the keyboard using high-level INT 16h calls (including DOS itself) still work, but many applications (notably games) access the keyboard through lower level hardware access, which doesn't work when the motherboard doesn't properly emulate it. Go into your BIOS and see if you can find an option called "USB Legacy Support" (or something similar to that), and try enabling that if it's disabled.

If that doesn't work, then there is the keyboard driver that is part of @crazii's USBDDOS project.

However, it only works with older motherboards and laptops that have an UHCI or OHCI (companion) controller. That rules out most stuff that came out after 2009. The only workaround for that is to find an older USB 2.0 PCI card and install it into your system, and then use USBDDOS with that.

With the possible exception of the closed source (and no longer freeware) DOSUSB product, there are, to my knowledge, currently no such drivers that work with integrated USB 2.0 or USB 3.0 ports on anything that was released after 2009. At least not yet.

If your system has PS/2 ports, it might really be worth looking on-line for a cheap PS/2 keyboard, preferably a used one on an on-line marketplace somewhere. An alternative might be getting your hands on something like the USB4VC (or building one yourself if you have the skill and means), although such solution is really preferable for vintage hardware that lacks USB ports entirely.

Reply 2 of 8, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
digger wrote on 2023-12-12, 00:27:
Hi BEEN_Nath_58, […]
Show full quote

Hi BEEN_Nath_58,

I recently ran into the same exact problem. This is apparently the case when the Legacy BIOS of your motherboard does not have proper PS/2 emulation for USB keyboards and mice. Well-behaved applications that access the keyboard using high-level INT 16h calls (including DOS itself) still work, but many applications (notably games) access the keyboard through lower level hardware access, which doesn't work when the motherboard doesn't properly emulate it. Go into your BIOS and see if you can find an option called "USB Legacy Support" (or something similar to that), and try enabling that if it's disabled.

If that doesn't work, then there is the keyboard driver that is part of @crazii's USBDDOS project.

However, it only works with older motherboards and laptops that have an UHCI or OHCI (companion) controller. That rules out most stuff that came out after 2009. The only workaround for that is to find an older USB 2.0 PCI card and install it into your system, and then use USBDDOS with that.

With the possible exception of the closed source (and no longer freeware) DOSUSB product, there are, to my knowledge, currently no such drivers that work with integrated USB 2.0 or USB 3.0 ports on anything that was released after 2009. At least not yet.

If your system has PS/2 ports, it might really be worth looking on-line for a cheap PS/2 keyboard, preferably a used one on an on-line marketplace somewhere. An alternative might be getting your hands on something like the USB4VC (or building one yourself if you have the skill and means), although such solution is really preferable for vintage hardware that lacks USB ports entirely.

Hi digger

I went to the BIOS and the Legacy USB Support was already enabled and I kept it like that now. If I disable that, the BIOS mode USB stick goes missing in the Boot menu.

I looked into the USBDDOS project, but I am not sure if that works for me. In the Peripheral section of my mobo, there are options XHCI HANDOFF and EHCI HANDOFF, the former is enabled and the latter is disabled.

I then looked into my motherboard (B450 AORUS M) and it doesn't have a PCI slot (just PCIE). If I go through that route I will have to buy a "pretty unreliable" PCIE to PCI to USB converter.

Another thing I noticed, in applications like the UniVBE Interactive test settings section, the numbers work, but as soon as I press the non-numeric values the keyboard stops responding. It also stops responding when the tests actually start. On the flip side, if I go into UniVBE power management test setting all keys stop working.

I looked for a PS2 keyboard on the local marketplaces, but everything returns a "keyboard named PS2" 🙁

previously known as Discrete_BOB_058

Reply 4 of 8, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
giantclam wrote on 2023-12-12, 05:45:

I don't know if it's a bug 😂 but

If I search PS2 keyboard, I get a set of pre applied filters that I never set myself and deleting that now gives some PS2 keyboards

Thanks, I will look into that now, if I can't find one offline.

previously known as Discrete_BOB_058

Reply 5 of 8, by Deano

User metadata
Rank Newbie
Rank
Newbie
BEEN_Nath_58 wrote on 2023-12-12, 05:35:

I looked into the USBDDOS project, but I am not sure if that works for me. In the Peripheral section of my mobo, there are options XHCI HANDOFF and EHCI HANDOFF, the former is enabled and the latter is disabled.

XHCI is USB 3.x, EHCI is USB 2.x. Its unclear what it means by handoff but my guess is that the chipset boots in UHCI (USB 1.x) and the switch it to 2.0 or 3.0 controller standard. Try disabling both and that might leave it in USB 1.0 mode which may make the keyboard work but probably all USB will be at 1.0 speeds.

Game dev since last century

Reply 6 of 8, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Deano wrote on 2023-12-12, 06:56:
BEEN_Nath_58 wrote on 2023-12-12, 05:35:

I looked into the USBDDOS project, but I am not sure if that works for me. In the Peripheral section of my mobo, there are options XHCI HANDOFF and EHCI HANDOFF, the former is enabled and the latter is disabled.

XHCI is USB 3.x, EHCI is USB 2.x. Its unclear what it means by handoff but my guess is that the chipset boots in UHCI (USB 1.x) and the switch it to 2.0 or 3.0 controller standard. Try disabling both and that might leave it in USB 1.0 mode which may make the keyboard work but probably all USB will be at 1.0 speeds.

Did that, and unfortunately that didn't help.

(Also it turns out Win11 doesn't like OHCI/UHCI, whatever runs after I disable XHCI or EHCI)

previously known as Discrete_BOB_058

Reply 7 of 8, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

Okay I found a solution, and this solution seems prevalent across multiple motherboards.

A BIOS setting named Port60/64 emulation is what was needed to get the keyboard to work inside applications. The setting is still wacky, on my Ivy Bridge machine it works completely fine, on thr Zen1 machine, the button press makes it stick, ie, pressing the button once makes it behave like it is pressed.

previously known as Discrete_BOB_058

Reply 8 of 8, by digger

User metadata
Rank Oldbie
Rank
Oldbie
BEEN_Nath_58 wrote on 2023-12-12, 16:49:

Okay I found a solution, and this solution seems prevalent across multiple motherboards.

A BIOS setting named Port60/64 emulation is what was needed to get the keyboard to work inside applications. The setting is still wacky, on my Ivy Bridge machine it works completely fine, on thr Zen1 machine, the button press makes it stick, ie, pressing the button once makes it behave like it is pressed.

That's a very interesting and useful piece of information for those of us who like tinkering with DOS on modern PC hardware!

Thanks for sharing. 🙂