by Bret » Mon Jul 20, 2009 3:02 am
Your computer must have a hub internal to the computer somewhere. On most computers, the ports on the outside of the computer are root hub ports (attached directly to the host controller), and you don't need to use USBHUB. Apparently that is not true on your computer. Check the output of USBDEVIC to see what's going on.
*****
Other DOS USB drivers do not work like USBDRIVE does -- they do not support plug-and-play. When the other drivers are first installed into memory is the only time they will assign drive letters. If you unplug or re-plug a disk into the computer, you must uninstall/reinstall or "reboot" the driver for it to be able to recognize what you did and assign the drive letters again. USBDRIVE does not work that way.
USBDRIVE allows you to plug and unplug disks at any time, and it will automatically assign drive letters as you do it. When USBDRIVE is first installed into memory, it does not know what disks are there because it hasn't looked yet. It has simply "reserved" some drive letters, but doesn't actually assign them to a physical disk until you insert a disk (unlike the other drivers, you don't even need a disk to be inserted when you install USBDRIVE). USBDRIVE looks for disks dynamically in the background, not when it is first installed into memory. USBDRIVE works in a way more similar to Windows than what you're used to seeing in DOS.
In DOS, a program running in the background (like USBDRIVE) does not have a good, reliable way of telling you what it is doing. It can't display little pop-up windows the way Windows can (this is a limitation of DOS that can't be overcome). USBDRIVE will beep the speaker if you insert a disk and something is wrong, but if everything works OK it just assigns the drive letter(s) automatically in the background and the disk starts working (again, sort of like Windows). If you want to see what USBDRIVE has actually done, you need to specifically ask USBDRIVE to show you (with a USBDRIVE S, for example -- again, sort of like Windows).
You need to change your way of thinking when using these drivers, since they do not work the way other drivers do. These truly support "plug-and-play", at least to the degree it is possible to do in DOS. All of my other drivers (mouse, keyboard, joystick, etc.) work the same way -- just plug the Device in and it should start working. Plug in a second one of the same thing, and it will start working. Unplug it and replace it with a different one, and it will start working. You can also start with the Device plugged in and then load the Driver afterwards (the way the other DOS USB Drivers work), but you don't have to do it that way.
*****
There is a serious bug in FreeDOS regarding FAT32 drives, which they will fix in a future release. I'm working with them now to try and find a work-around for USBDRIVE and older/current versions of FreeDOS, but haven't yet come up with a solution. I may end up needing to disable FAT32 support altogether for FreeDOS if we can't figure something out. In the mean time, I suggest you either use MS-DOS 7.10 or later, which works correctly with FAT32 drives, or use FAT16. FAT16 will will let you use disks up to 2 GB in size. If your disk is larger than 2GB, you can create multiple partitions each no larger than 2GB, which will each get assigned a different drive letter. Incidentally, some of the other DOS USB drivers will not work on disk with multiple partitions (and neither will Windows XP or Vista), but USBDRIVE works just fine.