USB Mouse

The intent of this forum is to discuss my DOS TSR programs (available at http://bretjohnson.us), how they work and don't work, new/missing features, status of updates, and anything else related to them that may need to be discussed.

USB Mouse

Postby LaughingMan » Thu Oct 11, 2018 5:02 pm

I am trying to get my mouse working is DOS via the USBDOS driver.

I read on page 107 that I need to have a mouse driver installed first
USBMOUSE is NOT a DOS Mouse Driver, and is NOT a replacement for a program like CTMOUSE. Even if you have USBMOUSE installed, you still need a DOS Mouse Driver like CTMOUSE in order to actually make the mouse do something useful.


I tried installing both 1.9 and 2.1. 2.1 failed to install and I received this message from 1.9
Code: Select all
CuteMouse 1.9.1 alpha 1
Installed at COM1 (03F8h/IRQ4) in Mouse Systems mode


I installed USBUHCI.com and USBKEY.com.

So far, so good. I have a working keyboard.

Then, I installed USBMOUSE.com and then no working mouse or keyboard.

I ran one program (I believe it was USBHOSTS.com) and it displayed this information
Code: Select all
IDX 0, Bus 0, DVC 7, FNC 2, Vendor Product Via 1106h 3038h, IRQ 12, I/0 C400h
IDX 1, Bus 0, DVC 7, FNC 3, Vendor Product Via 1106h 3038h, IRQ 12, I/0 C800h


Hardware
  • Motherboard: DFI CA64 REV.A1 SOCKET 370 VIA Apollo Pro133A
  • Keyboard: Filco FLICK15
  • Mouse: Razer Deathadder Elite

Any thoughts? THX.
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Wed Oct 24, 2018 5:17 am

Sorry for the delayed response. I haven't been able to check the forum in a while.

Regarding the mouse driver, you don't want to install CTMOUSE v2.1 first (and CTMOUSE v 1.9 won't work with USBMOUSE at all). CTMOUSE needs to be installed after USBMOUSE. The next version of USBMOUSE may be able to remedy this when it finally comes out. I don't have a lot of time to work on these things any more, but it's still on my list of things to do.

Since the printout you list shows two host controllers (Indexes 0 & 1), you will probably want to install two instances of USBUHCI. Actually, if I were you I would install USBUHCIL rather than USBUHCI since it uses less memory. Based on your description, I would say that the keyboard is probably plugged in to Index 1 but you installed USBUHCI for Index 0 (if you installed it with no options that is what it would do). When the keyboard worked after you installed USBKEYB it was probably because the BIOS was still controlling the keyboard and USBKEYB wasn't doing anything at all.

There can also be some interaction that takes place between USBMOUSE and USBKEYB. This is not because of the programs themselves, but because sometimes the manufacturers include buttons that should be associated with the mouse as being part of the keyboard, and vice versa. USB hardware manufacturers do all kinds of weird things like that. The mouse you're using is a pretty fancy mouse. It's possible that USBMOUSE has a difficult time figuring out how many buttons and wheels and things it actually has. We can tackle that one later on if it turns out to be a problem.

Also, any time you want to install the drivers for a keyboard you will need to do it with a batch file. As soon as the driver for the host controller (USBUHCI or USBUHCIL) is installed that the keyboard is plugged into, the keyboard will stop working. After that happens, you can't type in the "USBKEYB" to install the keyboard driver. I suggest you use a batch file something like the following to start with and then "tweak" it until you get it to work like you want it to:

USBUHCIL Index 0
USBUHCIL Index 1
USBKEYB
USBMOUSE
CTMOUSE /P /O /3

It's also possible that you may want to install a Hub to plug the mouse and/or keyboard into. That may may it easier to isolate and troubleshoot things. If you do that, you'll also need to install USBHUB (probably in the line of the batch file directly above "USBKEYB").
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby Bret » Wed Oct 24, 2018 6:58 am

I also thought of something else, but forgot to mention it in the previous response.

Your output from USBHOSTS shows that both USB host controllers use IRQ 12, which is the same IRQ that the PS/2 mouse uses. As a result, it's possible for you to have problems under some circumstances using a PS/2 mouse and any other USB devices at the same time. There are ways around this (which the combination of USBMOUSE and CTMOUSE will handle), but it can cause problems in other situations. It's possible that is part of the problem with your crashing when you load USBMOUSE, especially if CTMOUSE was already installed.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Thu Oct 25, 2018 2:07 pm

Thanks for the response. No need to apologize -- I appreciate the work/effort you are putting into this project.

I'll try your suggestions this weekend and post any updates.

I also have a simple 2-button Microsoft Wheel Mouse Optical that I can try if my Razer mouse fails to work out.

Thanks again!
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby LaughingMan » Thu Oct 25, 2018 4:43 pm

I tried your suggestion. No matter what I do, my keyboard does not work after I run the USBMOUSE command. Thanks for any help in advance.

Things of Note:
  • I do not have anything plugged in to either of the PS/2 ports
  • I have tried two difference mice (Razer Deathadder Elite and Microsoft Wheel Mouse Optical)
  • I have tried switching the keyboard and mice between the two USB ports
  • I have tried not plugging any mice in
  • Both mice illuminate
  • The keyboard does not illuminate (the caps lock key light does not come on)
  • I'm using CTMOUSE v2.1 beta 4

I put this into a bat file and run it after I get into DOS
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBKEYB
USBMOUSE
CTMOUSE /P /O /3


After running this bat, I get these messages:
Code: Select all
USBUHCIL 0.14, (C) 2007-2009, Bret E. Johnson.
DOS Driver for a Universal HCI compatible USB Host Controller.
LITE version (maximum 16 Devices, no Isochronous Transactions).
Initializing Universal Host Controller #0.  This may take several seconds...

USBUHCIL 0.14, (C) 2007-2009, Bret E. Johnson.
DOS Driver for a Universal HCI compatible USB Host Controller.
LITE version (maximum 16 Devices, no Isochronous Transactions).
Initializing Universal Host Controller #1.  This may take several seconds...

USBKEYB 0.09, (C) 2007-2009, Bret E. Johnson.
DOS Driver for up to 4 USB Keyboards.
USBKEYB has been installed into Low Memory.

USBMOUSE 0.10, (C) 2007-2009, Bret E. Johnson.
DOS Driver for up to 8 Generic USB Mice.
USBMOUSE has been installed into Low Memory.

CuteMouse v2.1 beta4 [FreeDOS]
Installed at PS/2 port (wheel present)


I tried seeing if the mouse would work even though the keyboard doesn't. So, I edited the bat file to launch EDIT (I'm fairly certain there is mouse support in that program). But I wasn't able to use it:
Code: Select all
USBUHCIL Index 0
USBUHCIL Index 1
USBKEYB
USBMOUSE
CTMOUSE /P /O /3
EDIT


If I REM the mouse portion, my keyboard works fine, but no mouse:
Code: Select all
USBUHCIL Index 0
USBUHCIL Index 1
USBKEYB
REM USBMOUSE
CTMOUSE /P /O /3


Here is my CONFIG.SYS
Code: Select all
DOS=NOAUTO
DOS=HIGH,UMB
FILES=30
BUFFERS=30
LASTDRIVE=H
DEVICE=C:\WINDOWS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\WINDOWS\EMM386.EXE RAM
DEVICEHIGH=C:\WINDOWS\COMMAND\EBD\OAKCDROM.SYS /D:MSCD001


Here is my AUTOEXEC.BAT
Code: Select all
SET TMP=C:\WINDOWS\TEMP
SET TEMP=C:\WINDOWS\TEMP
SET PROMPT=$p$g
SET windbootdir=C:\WINDOWS
SET PATH=C:\WINDOWS\;C:\WINDOWS\COMMAND
SET BLASTER=A240 I10 D1 H7 P330 T6
MSCDEX.EXE /D:MSCD001 /L:D
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Tue Oct 30, 2018 10:11 am

Once again, sorry for the delayed response.

There's one more thing to try with the drivers themselves, and that would be to install the host driver (USBUHCIL) for Index 1 first and then the driver for Index 0 afterwards. I've had computers in the past where the order made a difference, though if I remember correctly things crashed right away (when I was still installing the USBUHCIL host drivers) instead of later when loading things like mouse drivers. But, it may fix your particular problem.

If that doesn't work, I think the next step is to go through and see if there is some sort of software conflict going on. Try REM-ing out all of the lines in CONFIG.SYS and AUTOEXEC.BAT that actually load programs (e.g., you can leave the FILES=30 line in and a few others). Then boot and try to load the USB drivers and see what happens. If you're able to load the USB drivers successfully, then re-insert the other programs one at a time until we can get a handle on where the conflict might be.

If it still doesn't work when no other programs are loaded, then it's more likely hardware than software. Even that's not 100% certain, though, since it could also be related to some BIOS settings.

There are some other things we can try if none of this turns out to fix the problem.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Fri Nov 02, 2018 11:05 am

I tried a few new things.

First
I cleaned up my Autoexec.bat file. There is nothing in there.

Config.sys
Code: Select all
DOS=NOAUTO
DOS=HIGH,UMB
FILES=30
BUFFERS=30
LASTDRIVE=H
DEVICE=C:\WINDOWS\SETVER.EXE


Second
I hooked up my AmazonBasics 7 Port USB 2.0 Hub with 5V/4A Power Adapter. I plugged both the mouse and keyboard into this.

Third
I tried a few different options to load the drivers
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
USBMOUSE
CTMOUSE /P /O /3


Code: Select all
USBUHCIL /disablelegacy
USBHUB
USBKEYB
USBMOUSE
CTMOUSE /P /O /3


Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
USBMOUSE


Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB


Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
CTMOUSE /P /O /3


They only thing that I'm consistently seeing is that the keyboard will stop functioning every time USBMOUSE is executed.

A couple things of note:
Every once-in-a-while (maybe every 1 in 5 times), after running this bat file, it just stops. And fails to get back to the command prompt. I have to do a hard reset.
There can be a, generally, slight delay after it's back to the command prompt before it will allow the keyboard to type (or, at least, see the characters typed).
With the USB hub plugged in and USBHUB executed, the keyboard and mouse always illuminate -- even if they don't function.
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Tue Nov 06, 2018 2:01 pm

That's weird. The next thing we can try is to see if there's something weird in the USB Descriptors that's causing things to crash. I'll need you to download the descriptors for the keyboard and the mouse and send them to me. We will start by showing you how to look at things yourself, and then we'll put the data in some files that you can send to me.

Start by installing the two Host Drivers (for Index 0 & Index 1), and have the keyboard and mouse plugged in. Then do this:

USBUHCIL I0 AD
USBUHCIL I1 AD

to see which host the keyboard and/or mouse are connected to. The outputs of these commands will show you which Host the keyboard and/or mouse are connected to, in addition to the addresses that have been assigned to them and the interfaces that they have. The address is in the first column and the Interface number is about 2/3 of the way across the screen (the first Interface will be 0, but some devices have more than one Interface). You will need both the address and interface numbers for the next steps. Let's assume that both the keyboard and the mouse are connected to Index 0, and that the keyboard has Address 2 and the mouse has address 3:

USBUHCIL I0 Descr 2
USbUHCIL I0 Descr 3

The first one will show you the USB descriptors for the device address 2 (which we assumed was the keyboard) and the second for address 3 (the mouse). These can take up several screens since there can be a lot of data in there. Then, we need to download the HID Report Descriptors for the keyboard and mouse. For this step, you'll need both the address and interface numbers. The interface numbers will probably be 0, but we'll assume the keyboard uses interface 4 and the mouse uses interface 5 for the next step, so you can see where things go:

USBUHCIL I0 R 2 4
USBUHCIL I0 R 3 5

You can look at the outputs of everything to see what's happening, but if you don't know what you're looking at it can get pretty ugly. Anyway, after you do that go ahead and do it again but this time redirect the outputs to files so you can send them to me:

USBUHCIL I0 AD > AD0.Txt
USBUHCIL I1 > AD1.Txt
USBUHCIL I0 Descr 2 > Descr2.Txt
USBUHCIL I0 Descr 3 > Descr3.Txt
USBUHCIL I0 R 2 4 > HID24.Txt
USBUHCIL I0 R 3 5 > HID35.Txt

You can change the names of the files a little bit if you want to, as long as there's enough information so I can figure out what the files are. There should be 6 files when you're done that need to get sent (AD0.Txt, AD1.Txt, Descr2.Txt, Descr3.Txt, HID24.Txt, and HID35.Txt.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Tue Nov 06, 2018 2:20 pm

I just saw your response and I will follow your directions soon.

I did some tinkering and copied MSD.EXE from my DOS 6.22 disks, I was curious about IRQ conflicts which this program does show that. It also shows a lot more (18 pages), but I'm not allowed to use txt extensions, so I didn't attach it. Below is the IRQ Status section. Let me know if you want more information.

Code: Select all
   ----------------------------- IRQ Status ------------------------------

    IRQ  Address    Description       Detected            Handled By
    ---  ---------  ----------------  ------------------  ----------------
      0  085E:001F  Timer Click       Yes                 Default Handlers
      1  085E:0028  Keyboard          Yes                 Default Handlers
      2  F000:EF6F  Second 8259A      Yes                 BIOS
      3  F000:EF6F  COM2: COM4:       COM2:               BIOS
      4  F000:EF6F  COM1: COM3:       COM1:               BIOS
      5  F000:EF6F  LPT2:             No                  BIOS
      6  085E:009A  Floppy Disk       Yes                 Default Handlers
      7  0070:0465  LPT1:             Yes                 System Area
      8  085E:0035  Real-Time Clock   Yes                 Default Handlers
      9  F000:F068  Redirected IRQ2   Yes                 BIOS
     10  F000:EF6F  (Reserved)                            BIOS
     11  F000:EF6F  (Reserved)                            BIOS
     12  085E:00E2  (Reserved)                            Default Handlers
     13  F000:F0FC  Math Coprocessor  Yes                 BIOS
     14  085E:00FA  Fixed Disk        Yes                 Default Handlers
     15  085E:0112  (Reserved)                            Default Handlers

LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Wed Nov 07, 2018 6:07 am

Thanks for the update. Your output shows that IRQ 12 (which just says "reserved", but AFAIK is always used for a PS2 Mouse) is not enabled. So, you're particular problem is probably not related to that. It's still possible that it is somehow, but most likely not. Right now I'm thinking the problem is somehow related to the USB descriptors, so once I see those we may be able to find a solution.

Since you can't send TXT files, you can rename them to something else (like TX or TX_ or something), or even put them all into a single ZIP file and send it (though sometimes ZIP files that contain TXT files won't go through, either). If you use a different extension other than TXT you'll probably be OK.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Wed Nov 07, 2018 1:38 pm

Here's the full report from the MSD.exe program. I'll work on getting the USB descriptors soon. Thanks!
Attachments
MSD.REPORT.zip
(7.33 KiB) Downloaded 3260 times
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby LaughingMan » Sun Nov 11, 2018 4:12 pm

I'm back with more information.

config.sys
Code: Select all
DOS=HIGH,UMB
Device=C:\WINDOWS\Himem.Sys


autoexec.bat
Code: Select all
SET TMP=C:\WINDOWS\TEMP
SET TEMP=C:\WINDOWS\TEMP
SET PROMPT=$p$g
SET winbootdir=C:\WINDOWS
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND


USB Drivers Batch Files
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
USBUHCIL I0 AD > AD0-1.TXT
USBUHCIL I1 AD > AD1-1.TXT


Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
USBUHCIL I0 AD > AD0-2.TXT
USBUHCIL I1 AD > AD1-2.TXT


I ran into three things that I didn't understand and/or might be interesting.
  • It seems like I have to run the batch file twice before it reads my devices
    The first time running my batch file (outputs to AD0-1.TXT and AD1-1.TXT) I would get the following:
    Code: Select all
    Test VEND PROD     Sub Pro p USB HUB r POWR f  f I                e     Sub Pro
    RWak  ID   ID  Cls Cls col d VER ADR t (mA) g  c n  DESCRIPTION   d Cls Cls col
      2  .... .... ... ... ... . ... ... . .... .  . . Enumerating    . ... ... ...


    The second time running the same batch file (outputs to AD0-2.TXT and AD1-2.TXT) I would get the following:
    Code: Select all
    RWak  ID   ID  Cls Cls col d VER ADR t (mA) g  c n  DESCRIPTION   d Cls Cls col
      2R 04D9 1818   0   0   0 Y 1.1   1 1  100 1  0 0*Keyboard       Y   3   1   1
         Holtek Semiconductor Inc                  1 0*Mouse          .   3   1   2
    ÄÄÄÄ ÄÄÄÄ ÄÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ Ä ÄÄÄ ÄÄÄ Ä ÄÄÄÄ Ä  Ä Ä ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä ÄÄÄ ÄÄÄ ÄÄÄ
      3R 1532 005C   0   0   0 . 2.0   1 2  500 1  0 0*Mouse          .   3   1   2
         Razer USA Ltd                             1 0*Human Int Dvc? .   3   0   1
                                                   2 0*Human Int Dvc? .   3   0   1

  • The address is a letter and a number (e.g. 3R).
  • If I run MSDE.exe (Microsoft Diagnostics) after running the batch file (even one time), the program hangs -- "MSD is examining your system". I let it sit for well over 2 minutes and I had to hit the reset button.
Attachments
USBYHCIL.Output.zip
(2.95 KiB) Downloaded 3143 times
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Mon Nov 12, 2018 12:31 pm

I'll try over the next few days to look over the details. Just as an FYI, the "Enumerating" means that the drivers are in the middle of downloading the data from and trying to enumerate (configure) the device. Sometimes, things don't work correctly the first time and the drivers need to try enumerating multiple times before it works. If I remember correctly, the drivers try it five times before giving up. I'm not sure if re-running the batch file actually made any difference or not -- it might just be that if you waited a little longer things would have enumerated correctlly -- but I don't know that for sure.

Also, when the address has an "r" or an "R" following it, it tells you about the Remote Wakeup feature. Remote Wakeup is a feature where you can put some or all of the devices attached to the USB bus into a Suspend state, where the devices draw very little power -- they are not completely turned off (they remember their configuration parameters, for example) but don't do anything useful. You can then Wakeup the bus and the devices will start working again. Normally, you can't Wakeup the USB bus by using the USB bus -- it must be an external signal from somewhere else that tells it to Wakeup. But, some USB devices (like keyboards and mice) also support a feature called Remote Wakeup, where even if they are Suspended they can still send enough of a signal to the USB host hardware to tell the entire USB bus to Wakeup.

For instance, if you press a key on a Suspended keyboard or click a mouse button on a Suspended mouse, the USB bus will Wakeup. At least in theory, that Remote Wakeup signal can also be passed up to the Operating system to Wakeup the entire computer from being Suspended. DOS doesn't support Suspension, so my USB drivers don't send anything "up the chain" to DOS since there is nowhere to send it. Windows and Unix and other more modern OS's what were designed after Suspending the computer became a useful thing to do have a way receive signals like USB Remote Wakeup. In the address description you're looking at a lower-case "r" means the device supports the Remote Wakeup feature, but it is currently turned off. A capital "R" means the feature is turned on. During enumeration, the driver turn on the Remote Wakeup feature by default if it is available. Most devices don't support Remote Wakeup, but mice and keyboards usually do.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby Bret » Mon Nov 12, 2018 3:39 pm

I looked at what you sent, and it's a good start. But, I still need you to download the descriptors for me by doing something like the following:

Code: Select all
USBUHCIL I0 Descr 2 > Descr2.Txt      (Keyboard)
USBUHCIL I0 Descr 3 > Descr3.Txt      (Razer Mouse)       
USBUHCIL I0 R 2 0 > HID20.Txt      (The keyboard interface of the keyboard)
USBUHCIL I0 R 2 1 > HID21.Txt      (The mouse interface of the keyboard)
USBUHCIL I0 R 3 0 > HID30.Txt      (The mouse interface of the mouse)
USBUHCIL I0 R 3 1 > HID31.Txt      (The second interface of the mouse)
USBUHCIL I0 R 3 2 > HID32.Txt      (The third interface of the mouse)


Also, it doesn't look like you have anything plugged into Host Index 1, so you don't need to install USBUHCIL for Index 1 -- all you should need is Index 0, at least for now. It also looks like you have USBKEYB loaded and it is controlling the keyboard, which is a good sign. The "Owned" column for the keyboard says "Y" which means USBKEYB is controlling the keyboard rather than the BIOS.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Thu Nov 15, 2018 4:23 pm

Thanks again.

I ran your batch file (USBIN-YOURS.BAT) with what you provided and received this in the resulting text files:
Code: Select all
Device Address #2, Interface #1 does not exist or is not a
  Human Interface Device.


So, I ran my batch file (USBIN-MINE.BAT) and then ran the one you provided (USBIN-YOURS.BAT). This looked like it provided useful information.
Attachments
USB.OUTPUT.zip
(8.49 KiB) Downloaded 3069 times
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Wed Nov 28, 2018 4:36 pm

It provided some useful information, but didn't provide what I need for the Razer mouse. I only see the descriptors for the keyboard. Make sure the mouse is plugged in and you can see it when you run "USBUHCIL AD" (it should be at address 3), and then try again.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Sat Dec 08, 2018 2:12 pm

Okay, in attempts to give you more information, I picked up a few mice at the local PC Recycle store and ran the tests with all of them. I have two more coming that I ordered on Ebay.


I did try to make just one batch file, appending USB-0.BAT to USB-1.BAT. But, it still did not output any information.. Otherwise, I would get something similar to this:
Code: Select all
Test VEND PROD     Sub Pro p USB HUB r POWR f  f I                e     Sub Pro
RWak  ID   ID  Cls Cls col d VER ADR t (mA) g  c n  DESCRIPTION   d Cls Cls col
  2  .... .... ... ... ... . ... ... . .... .  . . Enumerating    . ... ... ...
Attachments
USB.OUTPUT.zip
(30.87 KiB) Downloaded 3305 times
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Mon Dec 10, 2018 4:07 am

Well, I've got some information to work with now, but it will take me a few days to work through it. Thanks for all of the effort you've put into this.

Based on my initial assessment (just looking at the data with no actual testing) it looks like the Logitech and Microsoft mice should both work OK. They are both very "simple" mice that don't look like they would cause any problems with my programs recognizing them. Try those with USBMOUSE like you were trying to do in the beginning and see if they work OK where the Razer didn't.

The Razer and the Corsair are "complicated" mice, with a lot of extra stuff that regular mice don't have (at least according to the descriptors). It's possible that something in the descriptors is confusing one of my programs (probably USBMOUSE) for some reason. Even when USBMOUSE doesn't recognize something, though, it shouldn't lock up like what you're seeing unless I'm doing something very wrong (like getting stuck in an infinite loop somehow).

Anyway, if you could test the Logitech and Microsoft mice and see what happens I would appreciate it. I'll do some testing on this end and see what I can figure out.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby LaughingMan » Mon Dec 10, 2018 3:08 pm

My Ebay mice arrived today.


I just added the output of these new devices to the zip file that I already uploaded. If there are any other mice you want me to try, just let me know and I'll do my best to track them down.

I'll spend some time (hopefully in the next few days) experimenting with both the simple and complicated mice.
Attachments
USB.OUTPUT.zip
(46.65 KiB) Downloaded 4204 times
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby LaughingMan » Mon Dec 10, 2018 4:47 pm

I did some testing. I hope this proves useful.

First. I attempted to run the following batch file and 100% of the time I had no mouse or keyboard
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBKEYB
USBMOUSE
CTMOUSE /P /O /3


Second. I attempted to run the following batch file and roughly 4 out of 5 times my system would not get back to the command line:
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBUHCIL Index 1 /disablelegacy
USBHUB
USBMOUSE
CTMOUSE /P /O /3


Third. This is what I used to do all of the testing with. Since I didn't have a keyboard after running this, I added "edit" to the end so that I could test if the mice worked:
Code: Select all
USBUHCIL Index 0 /disablelegacy
USBHUB
USBMOUSE
CTMOUSE /P /O /3
edit


I tested with the following mice:
  • Logitech M-UAE96
  • Microsoft Wheel Mouse Optical
  • Razer Deathadder Elite
  • Corsair Harpoon-RGB
  • Logitech M500
  • Microsoft Intellimouse Explorer 4.0a

I tested with the following powered usb hub:

I tested with the following usb switch:

All of the mice either worked or didn't work. If they worked, I could:
  • plug directly into USB port on the computer
  • plug into the USB hub
  • plug into the USB switch (powered)
  • plug into the USB switch (not powered)
  • hot swappable - I could plug them into any above option and they would function

If they didn't work, no amount of hardware manipulation changed the outcome.

Working Mice:
  • Logitech M-UAE96
  • Microsoft Wheel Mouse Optical
  • Microsoft Intellimouse Explorer 4.0a

Not Working Mice:
  • Razer Deathadder Elite
  • Corsair Harpoon-RGB
  • Logitech M500
LaughingMan
 
Posts: 12
Joined: Thu Oct 11, 2018 4:04 pm

Re: USB Mouse

Postby Bret » Tue Dec 11, 2018 4:22 am

Wow! Lots of good information to use. I'm glad you got at least some of the mice to work, and when you did they seemed to work pretty much flawlessly.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby maxtherabbit » Thu Dec 27, 2018 4:16 pm

Hi! Just joined up because I was having problems with a wireless HP mouse I just got. The driver was working perfectly for me before with a MS wires mouse, but I just received an HP Wireless x4000 mouse and now USBMOUSE beeps at me when it loads and the mouse will not function in DOS. (Same mouse works perfectly on this PC in WinXP)

Here is the output of the USBUHCIL R command for both the keyboard and mouse interfaces of this wireless dongle. Keyboard is on interface 0 and mouse is on interface 1. Also including the output of USBMOUSE /B. Please let me know if I can provide any additional information to assist.

Keyboard Interface
Code: Select all
USBUHCIL 0.14, (C) 2007-2010, Bret E. Johnson.
DOS Driver for a Universal HCI compatible USB Host Controller.
  LITE version (maximum 16 Devices, no Isochronous Transactions).

              USB HID (HUMAN INTERFACE DEVICE) REPORT DESCRIPTOR               
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
05 01          Usage Page:       Generic Desktop
09 06          Usage:            Keyboard
A1 01          Collection:       Application

05 07            Usage Page:       Keyboard/Keypad
19 E0            Usage Min:        Left Control
29 E7            Usage Max:        Right Windows (Right GUI)
15 00            Logical Min:      00h  0  0
25 01            Logical Max:      01h  1  +1
75 01            Report Size:      1
95 08            Report Count:     8
81 02            INPUT:            Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

95 01            Report Count:     1
75 08            Report Size:      8
81 01            INPUT:            Constant  Array  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

95 05            Report Count:     5
75 01            Report Size:      1
05 08            Usage Page:       LEDs (Light Emitting Diodes)
19 01            Usage Min:        Num Lock
29 05            Usage Max:        Kana
91 02            OUTPUT:           Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

95 01            Report Count:     1
75 03            Report Size:      3
91 01            OUTPUT:           Constant  Array  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

95 06            Report Count:     6
75 08            Report Size:      8
15 00            Logical Min:      00h  0  0
26 A4 00         Logical Max:      A4h  164  -92
05 07            Usage Page:       Keyboard/Keypad
19 00            Usage Min:        None
2A A4 00         Usage Max:        ExSel
81 00            INPUT:            Data  Array  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection


Mouse Interface
Code: Select all
USB HID (HUMAN INTERFACE DEVICE) REPORT DESCRIPTOR               
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
05 01          Usage Page:       Generic Desktop
09 02          Usage:            Mouse
A1 01          Collection:       Application

09 01            Usage:            Pointer
A1 00            Collection:       Physical

85 01              Report ID:        1
05 09              Usage Page:       Buttons
19 01              Usage Min:        Button #1 (Primary)
29 05              Usage Max:        Button #5 (Quinary)
15 00              Logical Min:      00h  0  0
25 01              Logical Max:      01h  1  +1
95 05              Report Count:     5
75 01              Report Size:      1
81 02              INPUT:            Data  Variable  Absolute
                                     No_Wrap  Linear  Preferred_State
                                     No_Null_State  Non_Volatile  Bit_Field

95 01              Report Count:     1
75 03              Report Size:      3
81 01              INPUT:            Constant  Array  Absolute
                                     No_Wrap  Linear  Preferred_State
                                     No_Null_State  Non_Volatile  Bit_Field

05 01              Usage Page:       Generic Desktop
09 30              Usage:            X-axis
09 31              Usage:            Y-axis
16 00 F8           Logical Min:      F800h  63,488  -2,048
26 FF 07           Logical Max:      07FFh  2,047  +2,047
75 0C              Report Size:      12
95 02              Report Count:     2
81 06              INPUT:            Data  Variable  Relative
                                     No_Wrap  Linear  Preferred_State
                                     No_Null_State  Non_Volatile  Bit_Field

09 38              Usage:            Wheel
15 80              Logical Min:      80h  128  -128
25 7F              Logical Max:      7Fh  127  +127
75 08              Report Size:      8
95 01              Report Count:     1
81 06              INPUT:            Data  Variable  Relative
                                     No_Wrap  Linear  Preferred_State
                                     No_Null_State  Non_Volatile  Bit_Field

05 0C              Usage Page:       Consumer Device
0A 38 02           Usage:            AC Pan
15 80              Logical Min:      80h  128  -128
25 7F              Logical Max:      7Fh  127  +127
75 08              Report Size:      8
95 01              Report Count:     1
81 06              INPUT:            Data  Variable  Relative
                                     No_Wrap  Linear  Preferred_State
                                     No_Null_State  Non_Volatile  Bit_Field

C0                 End Collection   

05 01            Usage Page:       Generic Desktop
0A 68 01         Usage:            0168h
15 80            Logical Min:      80h  128  -128
25 7F            Logical Max:      7Fh  127  +127
95 02            Report Count:     2
75 08            Report Size:      8
81 02            INPUT:            Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection   

05 0C          Usage Page:       Consumer Device
09 01          Usage:            Consumer Control
A1 01          Collection:       Application

85 03            Report ID:        3
19 00            Usage Min:        None/Unknown/Not Applicable
2A 3C 02         Usage Max:        AC Format
15 00            Logical Min:      00h  0  0
26 3C 02         Logical Max:      023Ch  572  +572
75 10            Report Size:      16
95 01            Report Count:     1
81 00            INPUT:            Data  Array  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

0A 68 01         Usage:            Channel Low Frequency Enhancement
26 FF 00         Logical Max:      FFh  255  -1
75 08            Report Size:      8
95 01            Report Count:     1
81 02            INPUT:            Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection   

05 01          Usage Page:       Generic Desktop
09 80          Usage:            System Control (not a key)
A1 01          Collection:       Application

85 04            Report ID:        4
19 81            Usage Min:        System Power Down
29 83            Usage Max:        System Wake Up
15 00            Logical Min:      00h  0  0
25 01            Logical Max:      01h  1  +1
75 01            Report Size:      1
95 03            Report Count:     3
81 02            INPUT:            Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

95 05            Report Count:     5
81 01            INPUT:            Constant  Array  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

0A 68 01         Usage:            0168h
26 FF 00         Logical Max:      FFh  255  -1
75 08            Report Size:      8
95 01            Report Count:     1
81 02            INPUT:            Data  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection   

06 01 FF       Usage Page:       FF01h (Vendor-Defined)
09 01          Usage:            01h
A1 01          Collection:       Application

85 05            Report ID:        5
95 07            Report Count:     7
75 08            Report Size:      8
15 00            Logical Min:      00h  0  0
26 FF 00         Logical Max:      FFh  255  -1
09 20            Usage:            20h
B1 03            FEATURE:          Constant  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection   

06 01 FF       Usage Page:       FF01h (Vendor-Defined)
09 01          Usage:            01h
A1 01          Collection:       Application

85 06            Report ID:        6
95 07            Report Count:     7
75 08            Report Size:      8
15 00            Logical Min:      00h  0  0
26 FF 00         Logical Max:      FFh  255  -1
09 20            Usage:            20h
B1 03            FEATURE:          Constant  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection   

06 01 FF       Usage Page:       FF01h (Vendor-Defined)
09 01          Usage:            01h
A1 01          Collection:       Application

85 07            Report ID:        7
95 07            Report Count:     7
75 08            Report Size:      8
15 00            Logical Min:      00h  0  0
26 FF 00         Logical Max:      FFh  255  -1
09 20            Usage:            20h
B1 03            FEATURE:          Constant  Variable  Absolute
                                   No_Wrap  Linear  Preferred_State
                                   No_Null_State  Non_Volatile  Bit_Field

C0               End Collection


Bad Device Output from USBMOUSE.COM
Code: Select all
USBMOUSE 0.10, (C) 2007-2009, Bret E. Johnson.
DOS Driver for up to 8 Generic USB Mice.

Beep for Bad Mice: Yes

   BAD (INCOMPATIBLE) MICE
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

HOST  DVC   INTF  STAGE  ERROR
INDX  ADDR  NUM    NUM   CODE
ÄÄÄÄ  ÄÄÄÄ  ÄÄÄÄ  ÄÄÄÄÄ  ÄÄÄÄÄ
   0     2     1    210  0000h
maxtherabbit
 
Posts: 16
Joined: Thu Dec 27, 2018 4:00 pm

Re: USB Mouse

Postby Bret » Fri Dec 28, 2018 7:53 am

Wel,, I'm glad it works for you with the other mouse. It looks like you've sent the information I need. It's taking me a while to get around to fixing this, though. Hopefully it's not keeping you from anything important.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Re: USB Mouse

Postby maxtherabbit » Fri Dec 28, 2018 8:04 am

Thanks for the reply. Take as much time as you need, only think it's keeping me from doing is playing point and click adventure games from my couch :lol:

I appreciate everything you're doing here keeping DOS alive
maxtherabbit
 
Posts: 16
Joined: Thu Dec 27, 2018 4:00 pm

Re: USB Mouse

Postby Bret » Tue Jan 08, 2019 6:43 am

I think I've got USBMOUSE fixed so that it will work with all of the different mice that LaughingMan and MaxTheRabbit have. Please try it out and let me know. The ZIP file contains a README.TXT that explains a little bit about what's going on -- but there is no official documentation yet. That will need to wait for an "official" release.
Attachments
usbms012.ZIP
(64.5 KiB) Downloaded 4240 times
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM

Next

Return to Programs

Who is online

Users browsing this forum: No registered users and 1 guest

cron