DOS USB Drivers

There are several ways techies are getting their USB CDroms, Hard Drives, and other drives to work in DOS. One is using what's known as DUSE driver system. The second method is using what looks somewhat like standard CDrom driver files and a USB driver. Both methods appear to require loading an usbaspiX.sys file first in config.sys in most cases. The third method is a bootdisk from a USB vendor.

METHOD 1 - The DUSE System

Example 1 Using DUSE

[config.sys]
device=a:\himem.sys
devicehigh=a:\emm386.exe
device=a:\usbaspi.sys
dos=high,umb

[autoexec.bat]
@echo off
duseldr a:\duse.exe
MSCDEX /D:USBCDROM /S /M:15 /V

Example 2 Using DUSE

[config.sys]
device=a:\himem.sys
DEVICE=a:\duse.exe

[autoexec.bat]
MSCDEX /D:USBCDROM /S /M:15 /V


METHOD 2 - The usbaspi.sys/usbcd.sys System - Example 1

As noted, this method seems just like loading IDE drivers, with the added entry of the usbaspiX file. The following are the relevant portions taken from a modified config.sys and autoexec.bat file which was designed to work with a Windows 98 OEM Bootdisk with the ramdrive.

The complete config.sys and autoexec.bat replacement files are available for download below, and you might want to start first with just copying them to your OEM bootdisk along with the relevant drivers and then experiment later with getting them to work on your Customized disk.

[config.sys - example 1]
device=himem.sys /testmem:off
device=usbaspiX.sys
device=usbcdX.sys /D:mscd001

[config.sys example 2 - USB Floppy in only port, "sometimes" allows switching to CDrom after boot]
device=himem.sys /testmem:off
device=ramfd.sys
device=usbaspiX.sys /W
device=usbcdX.sys /D:mscd001

[autoexec.bat]
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%


METHOD 2 - The usbaspi.sys/usbcd.sys System - Example 2

[config.sys]
device=himem.sys /testmem:off
devicehigh=usbaspi1.sys
devicehigh=di1000dd.sys
devicehigh=usbcd2.sys /d:USBCD001
LASTDRIVE = Z

[autoexec.bat]
The standard Win98X autoexec.bat worked as is.


METHOD 2 - The usbaspi.sys/usbcd.sys System - Example 3

By using the files from the "virtual" DOS drive ghost03 makes when you run interactive mode. It uses IOmega USB drivers and Guest.exe. It alowed you to use any external USB HD in DOS.

[config.sys]
LASTDRIVE=Z
DEVICE = usbaspi4.sys /int /all
DEVICE = usbaspi5.sys /int /all
DEVICE = usbaspi5.sys /int /all /D1
DEVICE = usbcdX.sys /D:cd2
DEVICE = OAKCDROM.SYS /D:cd1 [For his IDE CDrom]


Files:
DUSE 4.4 With Excellent Docs


Here's the latest update on switch settings for USBASPI.SYS - a USB to ASPI driver that enables USB storage devices (hard disks, flash memory/disks, DVD/CD-ROM & writers) to be accessed in DOS - much the same way as ASPI drivers for SCSI devices.
It is provided for troubleshooting and reference purposes only.

USBASPI.SYS Panasonic(TM) USB to ASPI driver v2.06

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

Supports UHCI/OHCI/EHCI and is compatible with onboard USB as well as PCI and some Cardbus add-on implementations from major chipset manufacturers like INTEL, VIA, NVIDIA, SiS and NEC for integrated, onboard, PCI bus or CardBus USB2.0 ports.

When used in conjunction with an ASPI Mass Storage Driver, it allows USB storage devices - particularly USB 2.0 hard disks or flash disks - 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...)
Furthermore, with a USB CD-ROM Driver, it allows USB optical drives (DVD, CD-ROM) to be used in DOS once 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.1 (Other USBASPI.sys versions are actually for USB 1.1 only)
2. Compatible with many USB chipset implementations, including Intel, NEC, VIA, NVidia and SIS
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 HW manufacturers DON'T provide support for their USB DOS drivers.
============================================

Recommended Usage:

> To detect your USB Mass storage device (.e.g. a USB 2.0 external hard drive) put this line in your boot diskette 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.
/norst
/noprt
/f


===========
Download Source:

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/driver/kxlrw40an.exe

These are Japanese files for their CD-R/RW drive. USBASPI.SYS is extracted from the F2H subdirectory, and works OK in English version Windows.


===========
Examples and Other Files:

Here are some useful device drivers that complement USBASPI.SYS, and configuration examples:

From http://www.driver.novac.co.jp/driver/mhairudos.zip is an ASPI Mass Storage to DOS driver
DI1000DD.SYS v2.00 from Novac, ASPI Mass Storage Device Driver {reportedly drive needs to be ATA66 or faster)

> If you want to enable only the high-speed USB controller and external hard disk drives, try

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

From the same Panasonic driver file, in the F2H subdirectory are other important drivers
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.

> 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 optical drive and an external 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


===========
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.


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


===========
N.B.

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:
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.
Iomega(TM) USB & Firewire drivers also support USB2.0 (via ASPIEHCI.SYS) and is also used in Norton/Symantec GHOST but has limited compatibility.


METHOD 3 - The datoptic System

A USB 4 DOS bootdisk has been posted here called dat.exe

The key driver files in dat.exe include:

usbaspi.sys 37,090 bytes
nj32disk.sys 15,808
sbp2aspi.sys 28,836

datoptic.com recommends the following config.sys for it's USB/1394 products. It's been reported tho that their drivers also work for other brands as well.

[menu]
menuitem=USB,USB Boot
menuitem=1394,1394 Boot
menudefault=USB,30
menucolor=7,0

[USB]
DEVICE = USBASPI.SYS

[1394]
DEVICE = SBP2ASPI.SYS

[COMMON]
DEVICE = NJ32DISK.SYS /R
LASTDRIVE=Z

 


2001 Tecumseh Consulting. All Rights Reserved
Use of this site indicates you accept Terms of Use
All other logos or trademarks are the property of their respective owners.
Tecumseh Consulting makes no claim of ownership to any logos or trademarks found on this site

Click Here!