Hi Folks,
Bret... Thank you so very much for all of the time and energy you have put into writing your USB drivers for DOS and their comprehensive documentation. I have only read bits and pieces of the USBINTRO.DOC file. I will read the entire document. I suspect it will take me a fair chunk of time to digest its contents. There is much to learn. If there is anything I can do to help, please let me know.
MY PROBLEM
I have two old Dell laptops: 1) an Inspiron 3200, and 2) a Latitude C840. The Inspiron 3200 was probably manufactured around 1996 – 1997 and has one USB port. Its operating system is Windows 98 First Edition with updated drivers including the “USB Mass Storage Device Driver” set and the “Unofficial Windows 98 FE Service Pack”. The 3200’s most important applications include Office 97, Visual C++ 5.0 and Access 2000. From time to time, I still fire up this old beast mostly when my wife totally consumes the Latitude C840 and I need to write a letter.
The Latitude C840 was probably manufactured around 2001 – 2002 and has two USB ports. Its operating system is Windows XP Pro and its principal applications are those include in the Office 2002 Pro suite. The C840 is a significantly more powerful machine than the Inspiron 3200.
I have several USB flash drives ranging in age from 2002 to 2011. They all work well under Windows 98 and Windows XP. Therefore, I can easily “Sneaker Net” files between the two machines. The Inspiron 3200 has no way to connect to our wireless home network.
I built a simple bootable PC DOS diskette containing all of the files from your USBDOS.ZIP file less the documentation files.
Experiment #1: I powered down the Latitude C840 and removed all external devices from the laptop. I booted the C840 with the simple PC DOS diskette. At the DOS prompt, I entered “USBUHCIL /DisableLegacy”. No error messages were reported. I entered “USBDRIVE” at the DOS prompt. No error messages were reported. This driver did note that the first drive letter to be assigned would be “C”. At first, I was a little confused, but then I remembered my hard disk was formatted as an NTFS volume and DOS generally knows nothing about the NT filing system. Okay, that made sense. I plugged in my oldest USB flash drive. I entered “DIR C:” and a listing of this flash drive’s files and directories soon appeared. I entered “EDIT C:\TEST.TXT”. The DOS editor started. I typed silly some text, saved the file and exited the editor. I entered “DIR C:”, and sure enough, my TEST.TXT file appeared in the listing. Next, I entered “TYPE C:\TEST.TXT” and the silly text I had saved in the file appeared on the screen. I entered “DEL C:\TEST.TXT”. I entered “DIR C:” and a listing of the flash drive’s files appeared without the TEST.TXT file. Great! Without powering down, I unplugged the USB flash drive, plugged in my next oldest drive. I repeated creating, listing and deleting another TEST.TXT file. No problems. I repeated this process for all of my remaining flash drives and experienced no problems. Wonderful!!! Thank you!!!
Experiment #2: I powered down the Inspiron 3200 and removed all external devices from the laptop. I booted the 3200 using the same simple PC DOS diskette I had prepared for Experiment #1. At the DOS prompt, I entered “USBUHCIL /DisableLegacy” and quickly receive the following messages:
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).
Assigned IRQ to USB Controller: 15
Initializing Universal Host Controller #0. This may take several seconds...
The USB Host Controller failed to Initialize properly.
Aborting Installation.
This could be related to an invalid IRQ#.
OUCH !!!
Do you have any ideas what I might do to over come this problem?
MORE BACKGROUND INFORMATION
I retired several years ago, but I still do some volunteer work related to my old profession. I have designed and implemented several small turnkey databases using Access 2002 for a couple of local non-profit organizations. To keep their end user volunteers from having to deal with the Access GUI, I have written a fair amount of supporting VBA code. Most of the development work is done at home on the C840. I use Symantec’s Ghost 2003 every month to backup the C840’s C drive to an external disk. I used the “Ghost Boot Wizard” to build several bootable DOS based recovery diskettes long before doing any serious development work on the C840. I tested recovery diskettes several times to build my confidence and understanding of how they worked. For the USB host controller, Ghost uses Iomega’s DOS drivers, “aspiuhci.sys” and “aspiohci.sys”. Support for an external drive is provided by Iomega’s “guest.exe” driver. I use one of the recovery diskettes several times a year to create an image backup of the Inspiron 3200 to my external disk drive. It all works very smoothly.
A few weeks ago, a good friend asked me to give him a hand rebuilding an IBM A20m laptop. His machine is about the same age as my Inspiron 3200 and has about the same limitations: a slow CPU, not much memory, and a small disk drive. The A20m also has a USB port. We installed his copies of Windows 98 First Edition and Office 97. We updated several drivers including a “USB Mass Storage Device Driver” set and installed the “Unofficial Windows 98 FE Service Pack”. After the A20m was up and running, my friend wanted to use Ghost to backup its hard drive, but unfortunately, he did not own an external disk drive like mine. He suggested trying one of the 4 gigabyte “DuraCell” flash drives he had recently purchased for a few bucks at a garage sale. Nice idea. I never thought about trying to use a flash drive with Ghost. Okay, let’s give it a try. Iomega’s ASPI USB-UHCI driver loaded and reported “ID0 = USB Disk 2.0”, “Installed Successfully.” Next, Iomega’s Guest driver loaded and reported “Finding a drive letter for your Iomega drive…”, “Your USB Disk 2.0 drive is drive letter D:”. Shortly afterwards DOS declared the following error, “Invalid device request parameters reading drive a”. “Abort, Retry, Fail?” First, I tried “r” and DOS locked up. I rebooted the A20m and quickly arrived at the same error message… “Abort, Retry, Fail?” This time I tried “a” and the A20m loaded the mouse driver and then Ghost. Ghost presented its blue background screen and then locked up the machine. I rebooted again and quickly returned to the same error message… “Abort, Retry, Fail?” I tried “f” and the A20m loaded the mouse driver and then Ghost. As before, Ghost presented its blue background screen and then locked up the machine. Nice try, but no cigar.
I borrowed my friend’s flash drive, went home and tried the same procedure on my Inspiron 3200. It choked and died too. I assumed the drivers simply did not know how to deal with a flash drive. I really had no idea. It was time to do a little research and to try running a few experiments. I found several different DOS drivers for USB host controllers and a few DOS drivers for USB disk drives. I tried several combinations of these drivers. By sheer dumb luck, I quickly stumbled onto a pair of drivers that worked with my old Inspiron 3200 and the 4 gigabyte “DuraCell” flash drive. These drivers are Iomega’s “aspiuhci.sys” and Motto Hairu’s “di1000dd.sys”.
A few days later, I found a 4 gigabyte “Verbatim” flash drive at OfficeMax for $7.99. I bought it and decided to repeat my previous experiments except that the “Verbatim” flash drive would be substituted for the “DuraCell” flash drive. Much to my surprise, all of the driver pairs I tried earlier worked. The driver pairs I checked were: 1) Iomega’s “aspiuhci.sys” and “guest.exe”, 2) Iomega’s “aspiuhci.sys” and Motto Hairu’s “di1000dd.sys”, and finally, 3) Panasonic’s “usbaspi.sys” and Motto Hairu’s “di1000dd.sys”. So, my earlier assumption that “the drivers simply did not know how to deal with a flash drive” was not correct. It was something about the “DuraCell” flash drive that caused the problem, not the drivers.
Your comments, thoughts and/or suggestions will be deeply appreciated.
Again, thank you so very much,
DTV Student