DRIVPARM and DRIVER.SYS (Was: IBM PC-DOS 2.10 explorations

Fred Cisin cisin at xenosoft.com
Sun Oct 4 12:54:41 CDT 2020

When 5150, 5160, and 5170 first came out, 3.5" drives did not yet exist.
OEMs that were early adopters of them used MS-DOS 2.11.  The disk format 
was not always the same as what IBM used starting with DOS 3.20.
For example, GAVILAN MS-DOS 2.11 supported 720K 3.5", but with a different 
format until version 2.11K (by which time the company had collapsed)

When IBM introduced their 720K 3.5" drives, along with PC-DOS 3.20, they 
also started selling add-on 3.5" drives!   First an external with DC37 
connector, and then later externals for PS/2.  Those could be connected to 
the external floppy port of 5150 and 5160.

BUT, DOS didn't know from 720K, and would do a 360K image on the drive.
Until TOLD otherwise.

DRIVER.SYS was an installable device driver, starting with DOS 3.20, for 
using unexpected drive types (such as not included in the AT CMOS), since 
5150, 5160, 5170 all had hardware that could handle 720K 3.5".
And 5170 hardware could handle 1.4M before that was included in early 

DEVICE = DRIVER.SYS /D:1 /F:2 told DOS to create a new additional 
drive letter for 720K in the physical second FLOPPY drive.

/D: specified drive (0 - 255, although stock controller only did 0 - 3)

/F: specified drive type
0 - 160 K/180 K or 320 K/360 K
1 - 1.2 megabyte
2 - 720 K (3.5" disk or 80 cylinder low density 5.25 (NOT used in USA))
3 - SD 8"    (not supported on all)
4 - DD 8"    (not supported on all) 
5 - Hard disk
6 - Tape
7 - 1.44 MB (3.5" disk)
8 - Read/write optical disk
9 - 2.88 MB (3.5" disk)

drive type could also be specified by /T:, /S:, /H: for cylinders, sectors 
per track, and sides; BUT it would NOT let you create as needed; it only 
used that data to look for a match in the existing list.  For example, if 
you told the 5170 that the 8" drive was a 1.2M (not all recognized type 3 
and 4), could you tell it 77 tracks V 80?  (Similar situation in FORMAT)
And some later systems permitted /F:720, etc., since "who can remember 
drive type NUMBER?"

On SOME systems, you could substitute
DRIVPARM = /D:1 /F:2 for similar effect.
Same switches as DRIVER.SYS.
EXCEPT, DRIVPARM would alter the parameters for existing drive letter, NOT 
create a new drive letter.  See also, LASTDRIVE
(With 4 floppies, CD-ROM(s), HDD(s), parallel port drive(s), Floptical(s) 
on SCSI, RAMDISK(s), etc., didn't want to waste drive letters)

DRIVPARM was not documented in PC-DOS

I still don't understand:
On a 5170, with IBM BIOS ROMs using MS-DOS, DRIVPARM would produce an 
On a 5170, with IBM BIOS ROMs using PC-DOS, DRIVPARM would produce an 
On a 5170, with NON-IBM BIOS ROMs using MS-DOS, DRIVPARM would work 
would work correctly.
Notice that with the NON-IBM BIOS, it would work with MS-DOS OR PC-DOS. 
"Lack of existence in PC-DOS" was NOT an issue.
With the IBM BIOS ROMs, it would not work, disunirregardless of MS-DOS V 
Therefore, it seems that it was present in BOTH versions of DOS (albeit 
undocumented in PC-DOS), but had a strange incompatability with the IBM 
BIOS ROMs.  And, especially strange that the error message seemed to 
clearly be an OS problem.

All of the software changes for 720K 3.5" would also work for 5.25" low 
density 80 track per side 720K drives.  (What had the comical "QUAD 
DENSITY" name in many CP/M systems)  Drives such as Tandon TM100-4, TEAC 
55F, Shugart/Panasonic/Matsushita 465.

Grumpy Ol' Fred     		cisin at xenosoft.com

More information about the cctech mailing list