VOGONS


First post, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

Hi guys. I'd like to use a USB mouse in DOS and windows 95, but so far, after months of on-off searching and documentation I've so far not been able to find a working solution.

I'm sure some of you at one point have encountered the following scenario: owning a good 486 or socket 7 mainboard with no (or poor) PS/2 mouse support, forcing you to use a Serial ball mouse. Those are also quite rare nowadays - finding a working one is not always easy or cheap. After browsing ebay I've come across serial mice costing anywhere from 20 to 100$ and they are neither very accurate or comfortable.

The thing is, most PCI 486 boards will work fine with a PCI USB controller installed and there's even win95 usb mass storage drivers - but unfortunately win95 does not have Human Interface Device support, witch means that mice, keyboards and other USB peripherals will not install automatically. Sure, one could use win98 witch automatically detects the controller and peripherals, but performance is stunted on slow machines compared to DOS and win95. For example, my Cyrix 586 +Voodoo 1 does 18-19 fps in GLQuake under win95 with FPU enhancements enables, but in win98 only manages a meager 16.2-16.5. The problem is of course, in win95 I can only use an old choppy serial ball mouse.

Now some of you might be thinking "there's USB mouse drivers for win95 aren't there?" - and you would be partially right. I did locate win95 drivers for SOME USB mice, but only very few and usually stuff by logitech which I don't own - also the drivers will not work with other mice, and they do not enable generic HID support in win95 - I tried. Several times. No dice.

Most newer machines allow you to use USB mice and keyboards via "USB Legacy Emulation" and "USB Keyboard and Mouse Support" in bios, but this is a luxury only afforded to socket 370 / socket a systems and newer - looking for such a toggle on older boards is a waste of time. Some socket 7 boards like the VIA MVP3 do have USB keyboard support, but no USB mouse support under DOS. Then again, those have proper PS/2 support and run win98 effortlessly unlike a socket 3 board.

While trying to get USB mice to work on my 486 machines, I've encountered the following issues:

- I could not find a working driver to support USB mice in DOS - there are USB drivers - like usbaspi.sys but mice will either not work at all, the cursor will only move on one axis, or it will hang the system. A working driver is needed - please, if any of you know of a driver for DOS that allows the use of USB mice, let me know. I also believe some of you have some programming / assembly language knowledge - could one make such a driver? I have very little programming know-how and even less time to study for such a monumental (for me) task.
- Windows 95 does not have native HID support and while I could locate Mass Storage Drivers for win95, no one has bothered to make HID drivers. Same as before, am I wrong? Do any of you know of a way to get cheap generic modern USB mice to work on win95?

If any of you have any information on this topic, please share. It would help lots of retro enthusiasts.

P.S. - example : I have two UMC based 486 boards - one is a Pine 423 variant with no PS/2 whatsoever, the other is a Biostar MB8433UUD-A rev 1.0 witch has PS/2 but will not work with any of my 5! PS/2 mice sans a Logitech witch causes it to randomly freeze. The others it will not detect at all.

Reply 1 of 18, by alexanrs

User metadata
Rank l33t
Rank
l33t

For DOS you can try Bret Johnson's USB drivers. Despite what it looks like in the front page, development is still going (but very slowly) as Bret himself said that and is still active there. I had luck getting it to work in a Intel 430VX motherboard, but it can be a bit picky about drivers (some cheap chinese wireless mouse didn't work, but a trusty wired one did).

Reply 2 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

I suppose I need to run the driver via config.sys then run a mouse driver like cutems.

Thanks for the link, I'll give it a try. I might have tried it before, I'll try it again.

Reply 3 of 18, by alexanrs

User metadata
Rank l33t
Rank
l33t

Those drivers are a fully fledged stack. You need to start USBUHCIL (stack), then the USBMOUSE (mouse driver - emulates PS/2) and, finally, something like CuteMouse. The documentation is quite extensive.

Reply 4 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

I see. I'm currently studying the documentation. Unfortunatly it states support for intel and VIA controllers only, and I currently have a NEC controller installed.

Reply 5 of 18, by hyoenmadan

User metadata
Rank Member
Rank
Member

USB isn't as "Universal" as you would think at first. It has revisions, many specifications... and OS should support each one separately 😜. If that isn't enough, each revision imposes certain requeriments to PCI bus.

Actually you have 5 revisions: 1.0, 1.1, 2.0, 3.0, 3.1. And 4 Specifications: OHCI, UHCI, EHCI and XHCI.

OHCI and UHCI is used in the first revisions of USB 1.0 and 1.1 and as a companion controller for USB 2.0 so it can be 1x backward compatible (actually USB2 isn't backward compatible with USB1x). OHCI specification is widely used in external PCI cards and shared with Firewire, while UHCI is used generally for motherboard integrated USB logic. Some USB 1.1 cards come in PCI1.1 5Volts versions, like Opti ones. These can be plugged safely in 486 PCI ports and will work fine. Like every PCI expansion card, Opti USB chipset is OHCI specification compliant.

The card that you have is OHCI specification compliant. But the drivers that you have are UHCI, which will only work with motherboard embedded USB logic, like the one included in the VIA/SIS/Intel chipset based boards.

Also... i don't remember NEC producing USB1.1 PCI expansion boards, so probably your card is USB 2.0. USB2.0 specification mandates certain features present in the PCI bus that are only available in PCI v2.1+ expansion slots, like MSI/MSIX registers, which are only found in some 440BX motherboards and later chipsets. That's why many USB 2.0 controllers will not work in 440BX boards (except a few ones) and downwards, even if you USB 2.0 PCI card seems to fit in the slot. For max compatibility with 486/Pentium you want to choose USB 1.1 expansion boards only.

Since you don't have an OHCI DOS driver to work with external cards, and probably you don't have a PCI USB 1.1 board to work with your 486, maybe your best bet would be to find an actual external USB to PS2 adapter. Please check that if your mouse doesn't have PS/2 protocol built-in support, you will require an active adapter... I actually don't remeber seeing these. I don't think that there are also any existing USB-to-Serial mouse adapters, passive or active.

Last edited by hyoenmadan on 2015-12-01, 15:47. Edited 1 time in total.

Reply 6 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie
hyoenmadan wrote:
USB isn't as "Universal" as you would think at first. It has revisions, many specifications... and OS should support each one se […]
Show full quote

USB isn't as "Universal" as you would think at first. It has revisions, many specifications... and OS should support each one separately 😜. If that isn't enough, each revision imposes certain requeriments to PCI bus.

Actually you have 5 revisions: 1.0, 1.1, 2.0, 3.0, 3.1. And 4 Specifications: OHCI, UHCI, EHCI and XHCI.

OHCI and UHCI is used in the first revisions of USB 1.0 and 1.1 and as a companion controller for USB 2.0 so it can be 1x backward compatible (actually USB2 isn't backward compatible with USB1x). OHCI specification is widely used in external PCI cards and shared with Firewire, while UHCI is used generally for motherboard integrated USB logic. Some USB 1.1 cards come in PCI1.1 5Volts versions, like Opti ones. These can be plugged safely in 486 PCI ports and will work fine. Like every PCI expansion card, Opti USB chipset is OHCI specification compliant.

The card that you have is OHCI specification compliant. But the drivers that you have are UHCI, which will only work with motherboard embedded USB logic, like the one included in the VIA/SIS/Intel chipset based boards.

Also... i don't remember NEC producing USB1.1 PCI expansion boards. USB2.0 specification mandates certain features present in the PCI bus that are only available in PCI v2.1+ expansion slots, like MSI/MSIX registers, which are only found in some 440BX motherboards and later chipsets. That's why many USB 2.0 controllers will not work in 440BX boards (except a few ones) and donwards, even if the USB PCI cards seems to fit in the slot. For max compatibility with 486/Pentium you want to choose USB 1.1 expansion boards only.

Since you don't have an OHCI DOS driver to work with external cards, and probably you don't have a PCI USB 1.1 board to work with your 486, maybe your best bet would be to find an actual external USB to PS2 adapter. Please check that if your mouse doesn't have PS/2 protocol built-in support, you will require an active adapter... I actually don't remeber seeing these. I don't think that there are also any existing USB-to-Serial mouse adapters, passive or active.

The NEC USB 2.0 card works fine both in win98 w/o the need for additional drivers and in dos with OHCI.EXE (it enabled the controller). Unfortunately the USB mouse driver provided above will not work with this controller at all. I do have a VIA USB adapter back at my folks place, I'll try using that one.

Also regarding your earlier statement - the NEC USB 2.0 controller as well as a VIA USB 2.0 controller work fine on the following motherboards:
- FIC 486-VIP-IO (socket 3 VIA chipset) - tested USB mass storage functionality under windows 95 - no problems at all
- Pine 423b (Socket 3 UMC UM8881F chipset) - tested USB mouse and Keyboard under win98 - no issues whatsoever
- Biostar MB8433UUD-A (Socket 3 UMC chipset - current test system) - no issues with either HID or mass storage under windows 98. Mass storage also works under dos using a panasonic driver.
- Lucky Tech P5MVP3 (super socket 7 VIA MVP3)
- Tekram P5T30-B4E (socket 7 i430TX chipset) - usb mass storage sometimes hangs the system - HID works fine under win98.

*the latter also have built-in USB 1.0 controllers - the MVP3's USB controller is built into the southbridge and the Tekram seems to have a VIA controller (VT61xx?) soldered onto the motherboad. At least the version I have does.

Last edited by kanecvr on 2015-12-01, 15:56. Edited 1 time in total.

Reply 7 of 18, by hyoenmadan

User metadata
Rank Member
Rank
Member
kanecvr wrote:

The NEC USB 2.0 card works fine both in win98 w/o the need for additional drivers and in dos with OHCI.EXE (it enabled the controller). Unfortunately the USB mouse driver provided above will not work with this controller at all. I do have a VIA USB adapter back at my folks place, I'll try using that one.

Here isn't really about windows support, but actual hardware support. There is a real backward compatibility problem between PCI USB 2.0 cards and older versions of the PCI Bus. You can search in the forums how many people tried to use USB2.0 in older Pentium I, II and III boards without any success (The same for AMD K2/3). If you managed to get an actual NEC USB2.0 486 PCI board then would be a nice miracle in you, and would be nice of you tell us your board model, because it would become a nice one to have. VIA based USB2 PCI boards are more picky about in which PCI slots them work. I never managed to actually make them work in anything that is Pentium4 and upwards, which have PCI v3.0 slots.

kanecvr wrote:
- FIC 486-VIP-IO (socket 3 VIA chipset) - tested USB mass storage functionality under windows 95 - no problems at all - Pine 423 […]
Show full quote

- FIC 486-VIP-IO (socket 3 VIA chipset) - tested USB mass storage functionality under windows 95 - no problems at all
- Pine 423b (Socket 3 UMC UM8881F chipset) - tested USB mouse and Keyboard under win98 - no issues whatsoever
- Biostar MB8433UUD-A (Socket 3 UMC chipset - current test system) - no issues with either HID or mass storage under windows 98. Mass storage also works under dos using a panasonic driver.
- Lucky Tech P5MVP3 (super socket 7 VIA MVP3)
- Tekram P5T30-B4E (socket 7 i430TX chipset) - usb mass storage sometimes hangs the system - HID works fine under win98.

*the latter also have built-in USB 1.0 controllers - the MVP3's USB controller is built into the southbridge and the Tekram seems to have a VIA controller (VT61xx?) soldered onto the motherboad. At least the version I have does.

FIC 486-VIP-IO and Biostar MB8433UUD-A are very interesting cases. If you can actually access mass storage on them that means the card is actually enabling also the EHCI part in the chip, which generally mandates PCI MSI/MSIX register support (PCI v2.1+).

Tekram P5T30-B4E and Pine 423b cases are probably thanks to the NEC chip which can actually only enable the USB1.1 OHCI part which only mandates PCI1.1+ support. Mouse and Keyboard actually don't require anything more than USB1.1. Would be nice to know your USB card model, and the actual chip model that it uses. Later revisions don't allow such behavior, so them are only compatible with a few PIII boards and later.

About the rest, ofc. As i said before USB 1.0/1.1 doesn't impose the same requeriments to PCI Bus than USB 2.0. USB1.0/1.1 boards will work fine even in 486 boards. I have tested this with an OPTi USB card.

Last edited by hyoenmadan on 2015-12-01, 16:13. Edited 5 times in total.

Reply 8 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie
hyoenmadan wrote:
kanecvr wrote:

The NEC USB 2.0 card works fine both in win98 w/o the need for additional drivers and in dos with OHCI.EXE (it enabled the controller). Unfortunately the USB mouse driver provided above will not work with this controller at all. I do have a VIA USB adapter back at my folks place, I'll try using that one.

Here isn't really about windows support, but actual hardware support. There is a real backward compatibility problem between PCI USB 2.0 cards and older versions of the PCI Bus. You can search in the forums how many people tried to use USB2.0 in older Pentium I, II and III boards without any success (The same for AMD K2/3). If you managed to get an actual NEC USB2.0 486 PCI board then would be a nice miracle in you, and would be nice of you tell us your board model, because it would become a nice one to have. VIA based USB2 PCI boards are more picky about in which PCI slots them work. I never managed to actually make them work in anything that is Pentium4 and upwards, which have PCI v3.0 slots.

I've provided a list of boards above.

Reply 9 of 18, by alexanrs

User metadata
Rank l33t
Rank
l33t

It has been mentioned in the forums before that NEC-based USB 2.0 cards are great when it comes to compatibility with older motherboards. I have a NEC card that worked fine in a VIA VP2/97 motherboard (a Compaq Deskpro), but I ended up removing it because the onboard USB was fine enough for what I needed from the system and it did not like my Voodoo2 whenever bus mastering was enabled. The same system would not even POST with a VIA USB 2.0 card plugged in.

Reply 10 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie
alexanrs wrote:

It has been mentioned in the forums before that NEC-based USB 2.0 cards are great when it comes to compatibility with older motherboards. I have a NEC card that worked fine in a VIA VP2/97 motherboard (a Compaq Deskpro), but I ended up removing it because the onboard USB was fine enough for what I needed from the system and it did not like my Voodoo2 whenever bus mastering was enabled. The same system would not even POST with a VIA USB 2.0 card plugged in.

Here is a video demonstarting USB mouse functionality on my 586 machine: https://youtu.be/KNaysoz0tMk

Here is another video showcasing USB Mass Storage functionality (in USB 1.1 mode) https://youtu.be/sqehoTMvDWk

Specs:
- Cyrix Cx586 100GP running at 120MHz
- Biostar MB8433UUD-A
- 64MB of FPM ram (16x4)
- S3 Trio64 2MB
- A-Trend Helios3D Voodoo 1
- Creative SB32 (AWE32 with Vibra chipset)
- 1.6GB Seagate + 4GB Quantum Fireball
- Sony 48x CD-ROM
- Cheap chinese NEC USB 2.0 controller with 6 ports

No special bios settings were made. I just plugged the card in and it worked. No special win98 drivers were used. The mouse started working during the second phase of windows setup (after it started installing drivers). To enable USB Mass Storage on it one would need to download and install drivers witch can be found here: http://www.technical-assistance.co.uk/kb/usbmsd98.php Be warned, copying files via USB to a 486 is SLOW. Tops out at about 400-500kb/sec, usually 150-200kb/sec is the average.

The USB 2.0 part of the card must not be installed. It's not required to get wither HID or Mass Storage functionality on the machine. Trying to install it will result in system instability when using Flash Drives, BSODs and even windows refusing to load.

But we digress. This is not what the topic is about. The topic is about getting a USB mouse to work under DOS and Windows 95.

Last edited by kanecvr on 2015-12-01, 16:48. Edited 1 time in total.

Reply 11 of 18, by hyoenmadan

User metadata
Rank Member
Rank
Member
kanecvr wrote:
Here is a video demonstarting USB mouse functionality on my 586 machine: https://youtu.be/KNaysoz0tMk […]
Show full quote

Here is a video demonstarting USB mouse functionality on my 586 machine: https://youtu.be/KNaysoz0tMk

Specs:
- Cyrix Cx586 100GP running at 120MHz
- Biostar MB8433UUD-A
- 64MB of FPM ram (16x4)
- S3 Trio64 2MB
- A-Trend Helios3D Voodoo 1
- Creative SB32 (AWE32 with Vibra chipset)
- 1.6GB Seagate + 4GB Quantum Fireball
- Sony 48x CD-ROM
- Cheap chinese NEC USB 2.0 controller with 6 ports

No special bios settings were made. I just plugged the card in and it worked. No special win98 drivers were used. The mouse started working during the second phase of windows setup (after it started installing drivers). To enable USB Mass Storage on it one would need to download and install drivers witch can be found here: http://www.technical-assistance.co.uk/kb/usbmsd98.php Be warned, copying files via USB to a 486 is SLOW. Tops out at about 400-500kb/sec, usually 150-200kb/sec is the average.

But we digress. This is not what the topic is about. The topic is about getting a USB mouse to work under DOS and Windows 95.

I'm not wrong at all. I can see there your USB card working in OHCI 1.1 mode. The interrogation mark in your Device Manager panel is the USB EHCI 2.0 part 😀. Your file copy is slow because your USB key is being accessed at USB1.1 speeds, in OHCI mode. Full speed requires USB2.0 EHCI mode. This chipset is nice, it can actually report both controllers as separated devices. Electrically them are probably also separated, which explains why the OHCI part works fine even without the MSI/MSIX signals. Your USB key controller is also nice, because it can work in both USB1.1 and 2.0 modes.

USB2.0 Crashes your system because the missing signals.

----
About the rest, the DOS USB stack that you posted earlier is for UHCI USB chipsets. Your NEC card requires an OHCI stack. You need an actual UHCI card. These are very rare, as UHCI was intented for chipset integrated logic. Comes to my mind these cheap VIA cards. but them don't like very well older PCI ports, except maybe VIA VP3 own chipsets, in USB1.1 mode. You need test this but success isn't warranted.

Reply 12 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

.... I'm not talking about the USB 2.0 part - I don't have any need for that - don't think most of us do really. Even if somehow you could get it to run at USB 2.0 speeds I doubt the chipset could keep up.

Since the USB controller works under windows 98, I want to get the mouse to work under DOS and win95.

I posted another video showcasing USB mass storage functionality.

Now back on topic: I managed to get OHCI.EXE to load (found here: http://www.bootdisk.com/readme.htm ) but the mouse moves a few pixels then stops working. I believe another program is required. Any ideas?

Reply 13 of 18, by hyoenmadan

User metadata
Rank Member
Rank
Member

Searching with "USBLink "OHCI.exe"" gives you more results in Google. Unfortunately there are no good news in them. All the pages warn you that there are know bugs and problems with this USB DOS driver suit.

I would try as last choice with EMM386 NOEMS to check if the driver still crashes.

PD: I wasn't telling you to run your USB2.0 card in USB2.0 mode. I only was saying that many USB2.0 cards will not work in older PCI 1.1/2.0 slots, even in USB1.1 mode. Fortunately the one that you have does, and that's very good 😀

Reply 14 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie
hyoenmadan wrote:

Searching with "USBLink "OHCI.exe"" gives you more results in Google. Unfortunately there are no good news in them. All the pages warn you that there are know bugs and problems with this USB DOS driver suit.

I would try as last choice with EMM386 NOEMS to check if the driver still crashes.

Hmm.. the machine does not crash, but the mouse stops working as soon as you move it. The cursor moves a few pixels and stops. The machine keeps running.

hyoenmadan wrote:

PD: I wasn't telling you to run your USB2.0 card in USB2.0 mode. I only was saying that many USB2.0 cards will not work in older PCI 1.1/2.0 slots, even in USB1.1 mode. Fortunately the one that you have does, and that's very good 😀

I belive the controller is a NEC uPD720101. I also have a VIA VT6202 that works on my 486 machines.

Reply 15 of 18, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

Well I hit a wall - again. Anyone come up with any other ideeas? What about Human interface device drivers for Win95? Din any company make such drivers? Is there a service pack (official or not) witch provides such functionality? Could they be ripped from windows 98 and installed on 95?

Reply 16 of 18, by alexanrs

User metadata
Rank l33t
Rank
l33t
kanecvr wrote:

Could they be ripped from windows 98 and installed on 95?

IF they are not WDM, then that is a possibility.

By the way, is Windows 95 any leaner than Windows 98 + 98lite?

Reply 18 of 18, by torafuma

User metadata
Rank Newbie
Rank
Newbie

Not to drudge up an old thread, but I really did not know where to post this...

I finally have a working solution in DOS and a USB mouse! Tried both my Logitech G9x and MS Intellimouse Optical 1.1A USB... and both seem to work just fine.

System Specs:
Pentium 233MMX
PCPartner VIB8804DSE w/ USB1 header

Requires the use of the USBDOS package from Bret Johnson, a updated USBMOUSE.COM from this (https://bretjohnson.us/forum/viewtopic.php?f= … d4aa5cba7#p2464) thread... and CTMouse 2.1beta4.

Hopefully this helps anyone else that was in the same boat as I was. Now I can finally enjoy this system that I started building during the summer of 2020! 😀