Using USBdos on a newer machine

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.

Using USBdos on a newer machine

Postby Richard » Tue Apr 19, 2022 1:20 pm

I am currently using a relatively new laptop (manufactured 2015) with an i7 processor with Windows 10 installed, but would really like to use it in "DOS mode". At the moment FreeDOS RC5 is the environment, as a USB BOOT stick in bare metal mode (i.e. the USB stick becomes the C:\ drive).

When running USBUHCI{L}.com after config/auto has finished, I get the error message

There is no UHCI-compatible USB Host Controller installed


I have read through the whole USBintro.txt document and on page 26 (of 186) it refers to (as of ~2010) there are currently 5 different Universal Host Controller Interfaces (HCI's), namely UHCI, OHCI, EHCI, WHCI, and XHCI). I appreciate that your work to date only is compatible with UHCI - hence the error message. My laptop (in the advanced BIOS setup menu) lets me "check"

USB legacy support

USB 3.0 (XHCI)

Even when I "uncheck USB 3.0 (XHCI)", I still get the same error message above.



In my case where I only want to use the USBDOS programs only on my laptop (which I own and is not connected to any networks, or will ever be), and that I am the only user of the laptop (private use only), and that Windows 10 is legally installed - can I "cheat" somehow and use Windows programs (as part of the Windows 10 install) to supplement USBUHCI - changing some bytes (eg via a hex editor, etc) so that same can (hopefully) run in DOS mode? I have never "reversed engineered" a program before - and so it would take me an extremely long time to do so (and then make a DOS version of the Windows 10 equivalent HCI controller code)? Because, if "ever" successful, this "re-engineered HCI controller (XHCI)" is based on code (windows) already on the machine, my interpretation of license is that I should be allowed to use the code (be it in a "different operating system" ) - the code could never "legally" leave the machine (no need for me).

Should I ever be successful with the re-engineered XHCI program, I would be happy to supply my findings to this forum (it's the "legal" stuff that I am totally uncertain about - hence just keeping things on the forum in a general sense, until otherwise advised).



On another note, somewhere in your USBintro document, you mentioned about changing the extension .sys of USBASPI to the extension .exe. I did not find the .sys file from the download/unzip from your site - to try using USBASPI.


Any pointers to help me with the XHCI "project" would be appreciated (I am using FreeDOS). As it stands now, only the USB FreeDOS BOOT stick (with partitions C:\, D:\ and E:\) is the only usb stick I can have at a time with FreeDOS. There is a serious file transfer time problem for me with FreeDOS - it takes about 30 minutes to transfer a 1 Gbyte file from USB stick to RAM memory (Windows 10 is much much faster) and over 2 hours for a 4 Gbyte file (Windows 10 only takes about 257 seconds). Hence my keen interest in your USBDOS utilities.


Any (non-ideal) competitive programs I could use to help me (until you get up to date)?

Your document is very informative, and I will need to re-read a number of times.

Thanks

Richard
Richard
 
Posts: 2
Joined: Mon Apr 18, 2022 1:32 pm

Re: Using USBdos on a newer machine

Postby Nisse » Wed Apr 20, 2022 1:55 am

Is your USB controller made by Intel or Via, if not it wont work.
Nisse
 
Posts: 39
Joined: Fri May 28, 2021 9:25 am

Re: Using USBdos on a newer machine

Postby Bret » Wed Apr 20, 2022 6:44 am

Richard wrote:there are currently 5 different Universal Host Controller Interfaces (HCI's), namely UHCI, OHCI, EHCI, WHCI, and XHCI).


I think you can take WHCI (W = Wireless) off the list. WHCI is still an "official" standard, but AFAIK there is no real hardware that supports it, or at least there is not enough hardware support to make it worth pursuing. It was USB's attempt to replace/compete with Bluetooth but it never took off. Everybody just uses Bluetooth.

Richard wrote:Even when I "uncheck USB 3.0 (XHCI)", I still get the same error message above.


Disabling XHCI doesn't enable UHCI. A particular host controller is either one or the other. But, you can (at least in theory) have two different hosts, one XHCI and the other UHCI. On a laptop that would be difficult (or maybe even impossible), but on a desktop with extra PCI slots it is possible to plug in a USB Host Controller card that is different than the one that comes on the motherboard. Also note that you can to some degree "mix and match" the older controllers (UCHI, OHCI, and EHCI), but the allowable combinations is convoluted and messy to discuss (the USB "upgrade process" wasn't as well-planned as it should have been).

As far as "reverse engineering" XHCI from Windows and porting that to DOS, that would be a really bad idea for a number of reasons (the first being that you could not obtain the original code from Microsoft). You would be far better off trying to port something from Linux into DOS, but even that is not a task for a beginner. Even then, that could conceivably only get you to "communicate' with the XHCI host but getting the other side of the driver to "communicate" with DOS is EXTREMELY difficult. Linux and DOS are VERY different from each other.

Richard wrote:I did not find the .sys file from the download/unzip from your site - to try using USBASPI.


That is correct, I don't include ASBASPI. It is a copyrighted program by Novac/Panasonic (you should be able to find and download it with a Google search). But that won't help your situation anyway. If all you're interested in is USB disks (and not mice or keyboards or joysticks or anything like that), there might be a newer version of USBASPI that works with XHCI controllers -- I haven't done any research on that in a while so am not sure.

As far as your transfer speed problem, that could either be related to FreeDOS or to your BIOS. You could experiment with other versions of DOS (MS-DOS or PC-DOS, e.g.) and see if it makes any difference. I suspect the problem is with your BIOS rather than FreeDOS and changing to a different DOS won't help, but it's hard to say for sure.
Bret
 
Posts: 478
Joined: Fri Oct 10, 2008 3:43 am
Location: Rio Rancho, NM


Return to Programs

Who is online

Users browsing this forum: No registered users and 1 guest

cron