Originally by Fernando Cassia: Friday 27 June 2003, 11:19

HAVING AN EXTERNAL USB cd-writer or hard disk 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 boot diskettes - 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 favorite linux distro's or Windows XP/W2K/98/ME's USB support, this has to do with people like me, booting some flavor 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 Interweb, 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 boot diskette with USB support for an usb cd-(rom/rw) and hard disk look like this:


rem The following line loads Panasonic's 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
rem The following one loads CD-ROM driver
devicehigh=USBCD.SYS /d:USBCD001

@echo off
REM the following line adds a drive letter to the usb cd(rom/r/rw) mounted


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.

Comments? Drop me a line here. µ

Panasonic v2.06 ASPI Manager for USB mass storage
(Look for the "F2H" subdirectory after extraction of the downloaded archive)
FTP site: Motto Hairu Mass Storage ASPI drivers


Full Specs/Additional configurations
Show: Full Specs/Additional configurations

Do you want to know more about DOS Driver?

If you want to use the USB interface with DOS, the driver here is able to mount these devices.
This is the driver to use.For the IEEE1394 interface, it cannot be used in DOS.

There are the following 3 drivers as Drivers for DOS.

USBASPI.SYS : ASPI Manager in USB1.1 mode
RAMFD.SYS : Only 1 USB port, USB floppy and
Select the USB floppy to use if you want to coexist.
It is a RAM DISK conversion driver.
Di1000dd.SYS : HDD driver for ASPI.

1.If you are not using a USB floppy
on the boot disk you have
USBASPI.SYS and Di1000dd.Copy the SYS file to config.add the following 2 lines to the end of sys
Please add it.


After making this change, connect more yes~ to the USB port and set this boot disk to FDD.
Then boot your PC from this boot disk.

2.Using a USB floppy
on the boot disk you have
USBASPI.SYS, Di1000dd.SYS and RAMFD.Copy the SYS file to the end of sys
Please add 3 lines below.

device=USBASPI.SYS/W --- There are multiple USB ports, USB floppy and this product at the same time
If you can connect to a USB port, the /R option is available.

The config.Check if it is listed in sys.
If this is not stated, please add 4 lines below.


If it runs successfully, it copies the contents of FD to the RAM disk while booting on the boot disk.
When the copy is complete, the following message will be displayed.

=== Connect the target device to USB port. ===
=== Press [ENTER} to continue. ===

When you see this message, unplug the USB floppy from the USB port and press Yes.
Connect to the USB port and press the ENTER key.
Continue to run the PC boot.(It will boot from the RAM disk you just made.)

1) After restarting Windows, you cannot immediately switch to DOS mode and use it.Make sure PC
Please turn off the power of the device and then start it.
2) Other options settings
USBASPI.SYS has the following options:
/R: Specified when used with USB FDD.
: RAMFD depending on the computer.You may need SYS.

/W : Models with USB floppy attached have only 1 USB port
When DOS (Windows) is started from a floppy on the model, the floppy and
Specifies when replacing a USB device.
Display the following message to prompt for the exchange:
=== Connect the target device to USB port. ===
=== Press [ENTER} to continue. ===

/M=xx: Specifies the memory map address for OHCI
The default is the address that seems to be unused by searching dfffffh from D0000h
Example) /M=D4 : Use D4000h

/P=xxx0: Specifies the UHCI I/O address
If the I/O Port Address of the Controller is assigned by the BIOS,
If you do not specify a default value, the default value is false.
/V : Display various information
3) For OHCI, EMM386.Do not use EXE as much as possible.
If you want to use it, set it to not use UMB, or specify X=D000-DFFF to open up the extended ROM space.
4) There are models where the I/O port is not set by the main unit BIOS in UHCI.
For such models, the I/O port must be specified with the /P option.

Supplement: About OHCI and UHCI
There are 2 types of standards for USB host controller chips:
Universal Host Controller Interface =UHCI
Open Host Controller Interface =OHCI
The detailed explanation of these 2 types is omitted here, but it is not clear which standard is your PC
You can check it by the following method.
1.Click [Start] -> [Settings] -> [Control Panel].
2.Double-click the System icon.
3.Click the Device Manager tab.
4.Double-click Universal Serial Bus Controller.

************* Universal Host Controller
If it is displayed as UHCI, it is using UHCI.

************* Open Host Controller
If you see "OHCI", you are using OHCI.