For reading data from MFM hard-disk I needed some other drive where I can copy files to. USB stick is most convenient. Despite the fact that DOS lacks architectural USB support, some unofficial drivers are available. They leverage the fact that USB mass storage uses SCSI command set. SCSI hard drives were readily available during golden years of MS-DOS. The USB driver simply emulates SCSI adapter.
Drivers for SCSI adapters are commonly associated with acronym ASPI which stands for Advanced SCSI Programming Interface. Therefore USB drivers come with name USBASPI. Several implementations exist, they are gathered on hiren website. I also include them here in case aforementioned website goes down: the ZIP archive.
For the demonstration I used MS-DOS 6.22 bootable floppy. First you have to check which USB host controller interface specification (OHCI or UHCI) your controller conforms to. I’ve got PCI USB controller based on chipset D720100AGM that conforms to OHCI and EHCI specifications.
To load the driver, you have to add entries in
config.sys in the following manner:
device=usbaspiX.sys [options] device=NJ32DISK.SYS
[options] are from the list below. You may try some drivers from this list and find
out which one works for you.
NJ32DISK.SYS is high-level SCSI driver which detects the hard drive
(or in our case, USB flash drive) and presents it to the DOS.
- usbaspi1.sys - Panasonic Communications Co. ASPI Manager for USB mass-storage (Universal Driver)
device=usbaspi1.sys /V /Efor EHCI USB 2.0
device=usbaspi1.sys /V /Ofor OHCI USB 1.1
device=usbaspi1.sys /V /Ufor UHCI USB 1.1
- usbaspi2.sys - Novac ASPI Manager for UHCI/OHCI USB mass-storage
- usbaspi3.sys - Medialogic ASPI Manager for USB mass-storage
- usbaspi4.sys - Iomega ASPI USB-OHCI 1.1
- usbaspi5.sys - Iomega ASPI USB-UHCI 1.0
DEVICE=HIMEM.SYS /testmem:off FILES=30 BUFFERS=20 device=USBASPI2.SYS device=NJ32DISK.SYS
After reboot the driver should display some information on the screen:
If you already have hard drive in your system, the USB mass storage should be visible as
D: drive. I formatted
format D: and became ready to go!