USB 2.0 drivers for DOS

madmaxUSB June 28, 2003 at 09:55:42
Specs: DOS 7.10 & up, Pentium & up
USB 2.0 drivers for DOS

by madmaxUSB (de la Vega)


===========

History:

* March-May 2003 *

I had acquired a USB 2.0 external 10GB HD and started looking for ways on how to transfer files in DOS, as well as use tools like GHOST and Partition Magic.

Found excellent support forum in DarkeHorse (a now defunct but site is mirrored in http://www.stefan2000.com/darkehorse/PC/DOS/Drivers/USB)

Three drivers caught my interest:
1. Cypress DUSE 4.4 at http://www.pocketec.net/downloads/duse_4_4.zip which is a standalone driver that added USB device support to DOS and could handle USB 2.0
2. The USBCD.ZIP file at http://www.bootdisk.com/sushi/usbcd.zip which included an "obscure" driver named USBASPI1.SYS from Panasonic.
3. The "Motto Hairu" USB Driver at
http://www.driver.novac.co.jp/driver/Mhairu_351u_drv/mhairudos.zip which included by DI1000DD.SYS from Novac, RAMFD.SYS and USBCD.SYS.

My unique memory-mapped configuration had problems with Cypress' DUSE and even Iomega's ASPIEHCI.SYS. After much experimentation, I found the most useful combination of drivers revolved around USBASPI1.SYS which I was eventually able to trace to Panasonic Japan (for their OEM'ed KXLR40AN, KXL840AN, and KXLCB20AN optical drives.) Unfortunately, I was unable to get decent technical assistance from them as they limit support to Japanese customers, so I worked hard on "uncovering" the driver switch options - the result of which is published below.

I hope this reference helps you solve you achieve USB storage device functionality in DOS

I still need to "decode" the functionality of some switches - particularly /noprt, /norst and /f. Any information is much appreciated. You can reach me via the Computing.Net DOS forum or in the USBman.com forum as "madmaxUSB".


* June 2003 *

http://www.theinquirer.net/?article=10215
"Yes, there are USB drivers for DOS..."
"Miracle-driver from Panasonic Japan does the unthinkable"
By Fernando Cassia

This article will certainly help dispel the "myth" that USB devices cannot work in DOS. Much of this article was probably based on information from various forums (such as Computing.Net) and Martin Webb's USB/Firewire Support for DOS resource page at http://www.mwpms.uklinux.net/usbfire.txt - some portions which I had granted Martin permission to extract from my findings at http://www.computing.net/dos/wwwboard/forum/13288.html


See More: USB 2.0 drivers for DOS

Report •


#1
madmaxUSB June 28, 2003 at 09:57:15
The USBASPI.SYS Panasonic(TM) USB to ASPI driver v2.06 Reference

===========
Description:

File size : 37,903 bytes
Last modified : 27 Nov 2002

Supports UHCI/OHCI (USB 1.x) and EHCI (USB 2.0) and is compatible with many USB implementations from major chipset manufacturers like INTEL, VIA, NVIDIA, SiS, NEC and TI for integrated, onboard, PCI bus or CardBus USB 2.0 host controllers.

===========
Uses:

When used in conjunction with an ASPI Mass Storage Driver, it allows USB storage devices to be accessible in DOS. This is particularly useful in drive cloning, partition resizing and image backup utlities that need to run in DOS mode (e.g. emergency disks for GHOST 2003, Partition Magic, etc...) Examples of USB storage devices are:
1. external hard disks
2. removable storage like Zip, Jaz, LS-120, and floppy drives
3. flash memory like pen drives, or memory cards in USB card readers

Furthermore, with a USB CD-ROM Driver, it allows USB optical drives (like DVD-ROM, CD-ROM drives, and (re)writers) to be used in DOS after MSCDEX extensions are loaded. This makes it possible to install burned images or Operating Systems onto newly formatted systems or replacement hard drives.

Advantages over similiar drivers:
1. Support for USB 2.0 as well as USB 1.x (There are many other files named USBASPI.SYS but most are actually limited to USB 1.1 devices).
2. Compatible with many USB chipset implementations, including Intel, NEC, VIA, NVidia and SIS - onboard, PCI bus, Cardbus.
3. Automatically obtains configuration parameters from Motherboard PnP/ PCI BIOS to minimize difficulties with I/O, Mem and IRQ mapping.

============================================
NOTE: USB support in DOS is considered experimental!
Most hardware manufacturers do NOT provide support for their USB DOS drivers.
============================================

Recommended Usage:

> To detect and map your USB mass storage device to an ASPI device, add this line to your boot diskettes' CONFIG.SYS file

device=USBASPI.SYS /w /v


===========
USBASPI.SYS Switches:

Here are the known valid switches identified so far with the Panasonic(TM) v2.06 USBASPI.SYS driver in CONFIG.SYS

device=[{path}]USBASPI.SYS [/e] [/o] [/u] [/v] [/w] [/r] [/l[#]] [/f] [/slow] [/nocbc] [/norst] [/noprt]

You can specify more than one controller type (e.g. /e /u). This switch can also be used to force slower speed operation on high-speed USB controllers & devices.
The driver will scan for all types of USB controllers, so use these switches to specify which port types to enable. This allows for faster USB scanning. By specifying /u or /o and omitting /e, it forces Full-Speed mode on High-Speed devices. One can't make a Low- or Full-Speed device run at High-Speed.
/e EHCI, for enabling only USB 2.0 controller
/o OHCI, for enabling only add-on/onboard USB 1.1 controller
/u UHCI, for enabling integrated USB 1.1 controller

In verbose mode. USBASPI displays details on controller type and USB devices it detects. It displays the vendor & product ID codes, the controller address range (memory map or I/O port map) of controllers, and the connection speed code for each device.
/v Verbose, shows USB details - excellent troubleshooting tool

These switches modify driver actions
/w Wait, displays prompt message to allow swapping/attaching of target USB device
/l# Luns, to specify highest number of LUN assigned, default /L0
/slow to enter SLOW down mode, gives longer delays when scanning USB devices
/nocbc NO Card Bus Controller?, to disable detection of USB on CardBus slots

This switch is typically used on portable systems with an external USB floppy drive connected to the single USB port for boot-up. Used in conjunction with RAMFD.SYS so after the boot floppy is copied to a RAM drive, (and after the /W pause...) the USB floppy can be removed, and the target mass storage device can be attached and detected
/r Resident, allows driver to stay resident in memory when USB floppy drive is detected.

There are a number of switches whose specific function is still unknown. Please post your discoveries in the USBMAN end-user forum, or the Computing.Net DOS forum.
/noprt - Have found that on some systems with USB on Intel chipset (1.1 or 2.0), if UHCI is normally I/O mapped, using this switch causes USBASPI.SYS to "hang" while detecting host controllers. Could it be for I/O port mode?
/norst
/f


===========
Download Sources:

The USBASPI.SYS driver is supplied for portable USB 2.0 drives from Panasonic and available in the Japanese market. Follow any of the links below to the manufacturer's self-extracting drivers:

http://panasonic.co.jp/pcc/products/drive/cdrrw/kxlrw40an/download.html

Follow the link to download kxlr40an.exe - these are Japanese files for their CD-R/RW drive. USBASPI.SYS is extracted from the F2H subdirectory, and is compatible with English version DOS.


===========
Other Useful Files:


Here are some alternate links for USBASPI.SYS plus other useful device drivers that complement it:

http://panasonic.co.jp/pcc/products/drive/cdrrw/kxlrw40an/driver/kxlrw40an.exe
http://panasonic.co.jp/pcc/products/drive/cdrom/kxl840an/driver/kxl840an.exe
http://panasonic.co.jp/pcc/products/drive/combi/kxlcb20an/driver/kxlcb20an.exe

These are Panasonic driver files for different OEM drives in a Windows self-extracting file. Aside from USBASPI.SYS in the F2H subdirectory the other important drivers are:

USBCD.SYS v1.00 from Panasonic, USB CD-ROM device driver
RAMFD.SYS v1.01 from Panasonic, copies boot floppy disk contents into a RAM disk, write protects and remaps drive letters to RAM disk.


As USBASPI.SYS merely maps USB devices to an ASPI device, additional driver is needed to map the ASPI mass storage to a DOS drive letter. The famous "Motto Hairu" driver includes this important piece, and can be downloaded from:

http://www.driver.novac.co.jp/driver/Mhairu_351u_drv/mhairudos.zip
http://www.stefan2000.com/darkehorse/PC/DOS/Drivers/USB/mhairu.zip

UnZip the file to get these files (the latter has an english translation readme file)

DI1000DD.SYS v2.00 from Novac, ASPI Mass Storage Device Driver {reportedly drive needs to be ATA66 or faster)


In case you have compatibility problems, there are some similiar drivers here

http://www.datoptic.com/Drivers/DAT.exe

This image file creates a bootable diskette that supports USB and firewire in DOS. Of relevance are these drivers:
USBASPI.SYS v2.01 from Medialogic Corp, is very similiar but less-featured version than Panasonic's USBASPI.SYS.
NJ32DISK.SYS v1.06 from Workbit Corp. is very similar to Novac's DI1000DD.SYS.
SBP2ASPI.SYS v1.02 from Medialogic Corp provides ASPI mapping of Firewire storage devices.


===========
Examples:

> If you want to enable only the high-speed USB controller and the mass storage drive, try

device=USBASPI.SYS /e
device=DI1000DD.SYS


> If you have only a single USB port and no internal floppy, use this CONFIG.SYS combination:

device=RAMFD.SYS
device=USBASPI.SYS /w /v /r

> With a CD-ROM drive, install the ASPI CD-ROM device driver after loading USBASPI.SYS in CONFIG.SYS like this:

device=USBASPI.SYS
device=USBCD.SYS /d:USBCD001

and in AUTOEXEC.BAT:

MSCDEX /d:USBCD001

> If you want to connect a USB 2.0 optical drive and an external USB2.0 hard disk simultaneously, put these in the CONFIG.SYS file:

device=USBASPI.SYS /e
device=USBCD.SYS /d:USBCD001
device=DI1000DD.SYS

and in AUTOEXEC.BAT:

MSCDEX /d:USBCD001

> For troubleshooting USB connections, install all your devices and boot from your diskette with this in CONFIG.SYS:

device=USBASPI.SYS /v


===========
Thank you to members of the DarkeHorse, Computing.NET and USBMAN forums for sharing their knowledge and experiences.


===========
Important Notes:

There are other USB 2.0 DOS drivers released on the web, but were found to have a number of limitations in terms of compatibility and configuration:

1. DATOptic's Speedzter supports USB 2.0 & Firewire - their DOS driver seems to be the next best driver in terms of compatibility and functionality.
2. Cypress(TM) DUSE (ver 4.4) supports USB 2.0 and offers many options but seems to have issues for I/O port address or Memory address settings - particularly a limit on the address space range.
3. Iomega(TM) USB & Firewire drivers also support USB2.0 (via ASPIEHCI.SYS) and is also used in Norton/Symantec GHOST but has limited compatibility.


Your boot OS determines what kind of partitions will be supported in your USB device. For FAT32 support, use the DOS boot disk for Windows 98 (MS-DOS 7.10) or the Windows ME Emergency Boot Disk (MS-DOS 8.00). You can add support for long file names using special drivers. Check out these site for relevant links - http://www.opus.co.tt/dave/utils.htm


On the still unknown switches:

/norst - could this mean a RESET will not be sent on the USB device? what is the effect? have tried on a USB printer but saw no difference ...

/f - does NOT seem to be speed related (as in full-speed or fast device detection). Suspect it could be for "floppy" or "flash memory" devices ...


Report •

#2
madmaxUSB June 28, 2003 at 09:59:58
Troubleshooting USB connections

To isolate USB hardware issue, install all your devices and boot from your diskette with this in CONFIG.SYS:

device=USBASPI.SYS /v


===========
Troubleshooting Info:

With the /v option, USBASPI.SYS provides a lot of useful info regarding the USB devices connected to a PC.

Use this info to determine if a problem is in the hardware level, or a Windows driver/configuration issue.

Example result:

Controller : 00-09-0 VID=1033h PID=0035h (3782h-0035h) OHCI
: MEM=DF000000h-DF000FFFh(4KBytes)
Controller : 00-09-1 VID=1033h PID=0035h (3782h-0035h) OHCI
: MEM=DE800000h-DE800FFFh(4KBytes)
Controller : 00-09-2 VID=1033h PID=00E0h (3782h-01E0h) EHCI
: MEM=DE000000h-DE0000FFh(256Bytes)
USB Device : HOST [00-09-2 VID=1033h PID=00E0h (3782h-01E0h) EHCI]
: |-- VID=05ABh PID=0060h HS
: |-- VID=05E3h PID=0702h HS
: ^-- 2 device(s)
USB Device : HOST [00-09-0 VID=1033h PID=0035h (3782h-0035h) OHCI]
: ^-- nothing
USB Device : HOST [00-09-1 VID=1033h PID=0035h (3782h-0035h) OHCI]
: |-- VID=066Fh PID=4200h FS
: ^-- nothing
ASPI Device : ID:0 LUN:0 = IC25N010 ATDA04-0 0811
: ID:1 LUN:0 = E-IDE CD-ROM 48X/AKU T3A

Interpretation:
1. There are 2 OHCI and 1 EHCI controllers detected. All are running in MEMory map mode (not I/O mapped) with the respective address spaces displayed.
2. Two devices are mapped to the EHCI controller. The HS indicates they are running at High Speed.
3. One device is mapped to the 2nd OHCI controller. The FS indicates runs at Full Speed only. ^-- nothing indicates no USB storage devices were found.
4. Two of the devices connected are detected as storage devices. Each is mapped to an ASPI ID, and it's identifier is displayed.
5. This config has an IBM 10GB notebook HD & a 48x EIDE CD-ROM drive.

Notes:
1. The actual USB devices can be identified by referring to the 2-byte Vendor IDs and Product IDs.
2. Most of the configuration is automatically obtained from BIOS PnP info. Unfortunately, USBASPI.SYS does not identify IRQ's used.


Report •

#3
x86 June 28, 2003 at 11:22:27
Thankyou MadMaxUSB and for the posting at www.usbman.com/forum, great to see you are pushing USB for DOS as a realistic possibility. Lets hope the next version of CDRoast will extend the usefullness of still using DOS.

Report •

Related Solutions

#4
hwood June 30, 2003 at 20:37:55
Fantastic info people. Using the information in response one I created a Windows 98 boot disk (for FAT32 support) and the following CONFIG.SYS file:

DEVICE = USBASPI.SYS
DEVICE = DI1000DD.SYS
LASTDRIVE=Z

and the first time, right off the bat, I was able to access my USB Pen/Flash Drive from DOS.

Thanks again for the info. This will be very usefull.


Report •

#5
July 1, 2003 at 18:08:03
Does it work with memory card readers too?

I am going to buy a compact flash card (the price for 256 Mb has dropped to about 60 Euro at the time I write this).

I am planning to run Operating Systems like DOS, Windows 3.1x and possibly Windows 9x on it.

For this I already have bought a Compact Flash to PCMCIA converter and also a PCMCIA to PCI converter.

Another option would be to buy a cheap USB cardreader.

Will this USB solution work with the drivers described? If not do I need a specific brand of USB cardreaders?


Report •

#6
madmaxUSB July 1, 2003 at 18:37:04
Check how your desired USB card reader works with Windows ME, 2K or XP - if it's pure Plug&Play i.e. doesn't need you to load a proprietary driver to recognize the memory card installed, then in all probability it should work!

Report •

#7
July 3, 2003 at 19:32:13
Good suggestion! If I buy a USB cardreader it must be recognised without software.

My PCMCIA card reader did work ´true Plug & Play` in Windows 95, so I hope it does this too with DOS (with PCMCIA cardsofware installed ofcourse). Also the PCMCIA solution must be faster than USB 1.0 I guess, (I don´t have a computer with USB 2.0 yet). Of course in my case this speed is very important.....


Report •

#8
July 8, 2003 at 23:51:04
OK guys this are really great things.

But, what about the other USB devices and DOS.

Mouses and modems, for example?

(Mice: optical Logitech, modems: ZyXEL or that shi...umph, e-modem UM9100-W from HP?)



Report •

#9
madmaxUSB July 9, 2003 at 07:54:43
Of USB mice and modems ....

Sorry - those aren't mass storage devices so the USBASPI.SYS and DI1000DD.SYS drivers don't apply.


Report •

#10
fungko July 18, 2003 at 01:31:53
Hi, I'm using Iomega Zip CD 650 USB CD-RW.
The USBASPI.SYS can't found my CD-Rom at
the boot stage. Could you tell me what
is the suitable driver and where to get it?


Report •

#11
madmaxUSB July 20, 2003 at 19:48:55
I'd try the IOMEGA drivers first - there is an "Iomega Boot DIsk" at http://www.stefan2000.com/darkehorse/PC/DOS/Drivers/USB/iomega_usb_firewire_dos_driver_boot_disk.ZIP

If that still fails, do try Panasonic's USBASPI.SYS again, and tell us the error you get with /V option...

Remember you need to load USBASPI.SYS and then USBCD.SYS in config.sys, plus MSCDEX.EXE in autoexec.bat

Check out the thread at http://www.computing.net/dos/wwwboard/forum/13557.html

HTH

=VEGs


Report •

#12
fungko July 21, 2003 at 09:31:05
Thanks for the information. I've tried the
Iomega boot disk. The ASPIUHCI.SYS file can
detect my USB CD Drive and there is no
problem or error message at the start up stage.
However, when I tried to access my CD-ROM
under DOS, the disc need to be load for a
long time and return error message everytime.
The message is about
"Error reading CD... Abort, Retry, Cancel" .

Then I use the ASPIUHCI.SYS file (from Iomega)
and USBCD.SYS together (from Panasonic) to boot
again.
This time, I can suceessfully access my USB CD
Rom under DOS and Windows 3.1.

However, there is a limitation of doing that.
A disc must be put in to the CD-ROM before the
config.sys file load the device=aspiuhci.sys
command, otherwise, it will return
"Error reading CD... Abort, Retry, Cancel" error
without loading any disc.
Also, the disc cannot be taken out or the drive
door cannot be opened or change to the other one
after a disc was loaded,
otherwise the same error message will come out
and the CD-ROM will not read any disc again.

Do you have the same problem and can this bug be fixed? Thanks for advice.



Report •

#13
July 28, 2003 at 15:43:49

I have found a effect of the "/norst" switch with the USBASPI.SYS
(Panasonic USB to ASPI driver v2.06)

The situation: I have connected a USB mice (Logitech USB Wheel Mouse Optical
on the USB port, not with the PS/2 adapter).
(Mainboard: Shuttle AK38N; chipset: VIA KT333CF/8235)
The "USB Mouse Support" in the BIOS is Enabled, the mice works in DOS
with the BIOS PS/2 Emulation with a standard DOS mice driver.

If I load the usbaspi.sys with device=usbaspi.sys /V the LED of the
optical mice going off, when the usbaspi.sys scan the UHCI controller interface.
If I try now to load the mice driver under DOS the computer hang.
When I use device=usbaspi.sys /V /NORST, the LED of the mice going NOT OFF and
the mice works fine.

/norst make it apparent possible to use a USB mice with the BIOS PS/2 emulation

(When I use device=usbaspi.sys /E /V, without scanning the UCHI controllers,
the usbaspi.sys only scanning the EHCI controller and the mice works fine too,
but I can not use UHCI mass storage devices)

My questions:
1.) Can someone confirm this effect with other USB mices, chipsets or
with a USB keyboard ???
2.) Have someone found unfavorable effects with the /norst switch ???

_______________________________________________________________________________

The load of EMM386.EXE and the usage of DEVICEHIGH is not recommendable,
it can produce some problems!

Here my recommended configuration which I have tested on three computers
Shuttle AK38N: EHCI/UHCI ontroller
Gigabyte GA-5AA: OHCI controller
MSI MS-6191: OHCI controller
(works fine with a 256 MB USB pen drive (LEXAR JumpDrive 2.0 Pro),
tested under MS-DOS 7.10 with NC4, PartitionMagic 8.0, DriveImage 2002
and Norton Ghost 2003):

[config.sys]
DEVICE=HIMEM.SYS /TESTMEM:OFF
DOS=HIGH,UMB
SWITCHES=/F
BREAK ON
SHELL=COMMAND.COM /P /E:1024
FILES=60
BUFFERS=30
STACKS=9,256
Lastdrive=Z
DEVICE=oakcdrom.sys /D:MSCD001
DEVICE=USBASPI.SYS /V /NORST
DEVICE=USBCD.SYS /D:USBCD001
DEVICE=DI1000DD.SYS

[autoexec.bat]
@ECHO OFF
PROMPT $p$g
LH MSCDEX.EXE /D:MSCD001 /D:USBCD001 /M:20

_______________________________________________________________________________


Test Acer TravelMate 800 Notebook with USBASPI.SYS:
On a Acer Travelmate 800 (EHCI/UHCI; Intel 855PM chipset with ICH4-M)
the USB pen drive works too with DEVICE=USBASPI.SYS /V (or /NORST), but
PartitionMagic 8.0 can not identify the USB pen drive!
The USB mouse PS/2 Emulation in DOS per BIOS is not support in the Travelmate 800!
The USB pen drive works with /NORST only without the USB mice is connected!
The USB 2.0 pen drive can not connect with DEVICE=USBASPI.SYS /U /V on
the UHCI controller part! (at the AK38N it can force to connect with the UHCI controller)


Report •

#14
madmaxUSB July 30, 2003 at 01:01:07
Thank you Jag for your input.

WHat do you think NORST means
- NO ReSet is sent to USB devices. or
- NOt Removable STorage device is present?



Report •

#15
madmaxUSB July 30, 2003 at 01:08:28
fungko

I actually haven't observed any problems on disc loading/changing in DOS mode as I don't do much work on USB CD - could your CDRW be having problems detecting disc changes?

I'd suggest you try this on Windows environment to verify.

HTH



Report •

#16
January 2, 2006 at 11:43:12
Hope I can get help with the following:

I'm trying to freshly install windows on a pc with no cdrom drive so I need the usb cdrw to be recognised in DOS. I've downloaded the USBASPI.SYS and DI1000DD.SYS and made changes to config.sys and autoexec.bat but my cd drive is still not being recognised. After selecting option 1 to sart computer with usb cdrom support I'm getting the following;

This driver is provided by Oak Technology, Inc.,
OTI-91X ATAPI CD-ROM device driver, Rev D91XV352
(C)Copyright Oak Technology INc. 1987-1997
Device Name : MSCD001
No drives found, aborting installation


ASPI Manager for USB mass-storage Version 2.06
(C)Copyright Panasonic Communications Co., Ltd. 2000-2003

Controller :00-20-2 VID=8086h PID=7112h (0000h-0000h)UHCI
: I/O 2020h-203Fh
USB Device : HOST [00-20-2 VID=8086h PID=7112h (0000h-0000h) UHCI]
: ^--nothing
ERROR : Target USB device not found


USB CD-ROM Device Driver Version 1.00
(c)Copyright Panasonice Communications Co., Ltd. 2000-2003
ASPI Manager Not Installed.
CD-ROM Device Driver is not installed.

DI1000 ASPI DISK Driver Ver 2.00
Copyright(C)2001 NOVAC Co.,Ltd.

ASPI Manager not installed.

Microsoft RAMDrive version 3.06 virtual disk D:
Disk size: 2,048k
Sector size: 512 bytes
Allocation unit : 2 sectors
Directory entries : 64

File not found

I hope someone can tell me what I should do next to get the device to be recognised

Thanks


Report •


Ask Question