### DOS-USB, miracle driver from Japan does the unthinkable ###


By Fernando Cassia
Friday 27 June 2003, 11:19
(Reproduced from http://www.pcxt-micro.com/dos-usb.html)

Having an external USB CD-Writer or Harddisk works wonders as long as your operating system is in good shape. But if someday the system stops booting, you are lost. Booting from good old MS-DOS or Windows Bootdisks - even fitted with the needed third party NTFSDOS or EXTFS drivers - gives you access to your fixed hard disk only, but none of the USB peripherals can be accessed from the DOS command line.

Before you start scratching your head, let me repeat that this is not related to your favourite Linux distro's or Windows XP/W2K/98/ME's USB support, this has to do with people like me, booting some flavour of DOS to copy files around or using DOS-based partition back-up software.

Imagine that you want to use Paragon Drive Backup, Powerquest's Drive Image, or Norton Ghost, to backup your hard disk partitions to that nice 120gb external USB 2.0 hard disk you just bought. You can't do it. Or if your wife/husband has managed to mess up her/his system so badly that it can't boot anymore, yet she/he wants you to have a copy of those nice digital pictures stored on a compactflash card plugged into the compactflash reader? No way, Jose. Not from DOS, used to be the phrase.

Well, now you CAN.

The minor miracle here is using a driver file called USBASPI.SYS ("Panasonic v2.06 ASPI Manager for USB mass storage"). Given the right parameter incantations, this 16-bit Panasonic-developed DOS driver will let your system boot good-old DOS -any flavour, maybe even Caldera's OpenDOS and recognize all USB devices connected to the respective controllers. So this USB device identification is also useful for debugging/troubleshooting purposes.

However, it should be noted that this driver will only map mass storage devices like external hard disks, CD-ROMS, CD/RW, DVD-ROM, Zip, Jaz, LS-120, and flash memory to ASPI devices. Then you need an elusive "ASPI mass storage driver" to map HDs and flash disks it to a drive letter in DOS. This one goes by the name DI1000DD.SYS, commonly referred to as the "Motto Hairu USB Driver". Don't ask why it's called that, I don't know.

Before you continue reading and decide to go out and do "bad things" let me mention that legalese on the Panasonic site most probably prevents you from downloading and using this driver on non-Panasonic devices, yet according to reports that are floating around on the Internet, people have been able to use these "universal drivers" on a wide range of systems with different USB connectivity, UHCI, OHCI, and USB 2.0's EHCI with the NEC chipset.

The Panasonic DOS drivers seem to work on most USB chipset implementations, including Intel and NEC, as well as NVidia, VIA, and SIS. It seems Panasonic engineers didn't want to have to write a driver every time for every different chipset, so they wrote this "universal" driver to work with all possible USB controllers.

Now the hairy details for DOS old-timers like myself who actually enjoy editing config.sys [Cough. Ed.]:

The driver switches you can use are: device=(path)\USBASPI.SYS [/e] [/o] [/u] [/w] [/v] [/l[=n]] [/f] /r] [/slow] [/nocbc] [/norst] [/noprt]

The driver scans all three USB controller specs by default, but you can limit which controllers are enabled using these switches:

/e EHCI spec (USB 2.0)
/o OHCI spec (newer USB 1.x)
/u UHCI spec (older USB 1.x)

And so far I learned what these switches mean:

/w Wait, displays text message for attaching or swapping USB devices
/v Verbose, shows status messages - recommended
/l[=n] LUN, specifies highest LUN # to be attached to
device ID (default=0)

Example config.sys and autoexec.bat files on a DOS
Bootdisk with USB support for an USB CD- (ROM/R/RW) or Harddisk looks like this:

[config.sys]
DOS=HIGH,UMB
lastdrive=Z
device=HIMEM.SYS
REM The following line loads the universal USB-controller driver
devicehigh=USBASPI.SYS /v /w /e
REM the following is an ASPI mass storage driver for USB-connected HDs and Compactflash memory cards
devicehigh=DI1000DD.SYS
REM The following one loads CD-ROM driver
devicehigh=USBCD.SYS /d:USBCD001

[autoexec.bat]
@echo off
REM the following line adds a drive letter to the USB CD-(ROM/R/RW) mounted
LH MSCDEX /d:USBCD001

* The required files above can be downloaded in zip format at the bottom of this article. *

The Panasonic driver also seems to recognise some TI Cardbus controllers, making it possible to use USB peripherals attached to USB (even 2.0!) Cardbus cards. Your mileage might vary. Knowledge of the Japanese language might be required to read and understand the Panasonic licence agreement or the cease-and-desist letters. Explore at your own risk.

=== Attachments ==========================================
dos-usb.zip