How to define a new Disk Drive Type for the AT&T 6386/25 WGS BIOS

The 6386 was built back when the MFM/RLL encoding was in its prime. Disk drives have long since left that standard in their wake (and gotten much bigger in the process). This is a problem since the disk drive table lists only old drives you can hardly find anymore. But wait!

The system BIOS allows you to define two new types (type 48 and 49 in the drive table). You can then use setup to specify one of these types for your drive.

You will need a CMOS editor to define the new type(s). The 6386 diagnostic programs (still available from NCR at  http://www.ncr.com/support/support_drivers_patches.asp?Class=pc_library_63xx ) include a CMOS RAM editor.
Or, duh, just download the one you need here: 6386_25.zip or 6386_33.zip

I have been playing around with this and have figured out how the CMOS bytes map to the disk parameters. Remember, there are ESDI, IDE, and SCSI types, some drives are just plain too big for the BIOS, and, some controllers have their own BIOS to contend with. But, this should get some newer drives to work with the 6386.

I know of no documentation generally available for the 6386 with the CMOS layout, so here are the necessary bytes
(I derived this on an 80386 Rom BIOS Plus Version 1.10). Just map your drive's parameters to the necessary hexadecimal bytes needed for type 48 or 49, then edit the CMOS, then run setup and set the drive type to 48 or 49.
 

TABLE 1 - CMOS Bytes

HDU Type 48 CMOS Byte # 20 21 22 23 24 25 26 27
HDU Type 49 CMOS Byte # 35 36 37 38 39 3A 3B 3C
Hex Byte Reference to Table 2 AB CD EF GH IJ KL MN OP

TABLE 2 - Disk Parameters

Disk Parameter Hexadecimal Value
(see Table 1 bytes)
Decimal Value
# Cylinders CDAB C*4096 + D*256 + A*16 + B
# Heads EF E*16 + F
# Sectors/Track OP O*16 + P
Precomp Cylinder IJGH I*4096 + J*256 + G*16 + H
(max value is 4095, that is, 'I' will always be 0)
Landing Cylinder MNKL M*4096 + N*256 + K*16 + L
Rate n/a n/a
Ctrl n/a n/a

Note: the Precomp and Landing cylinders are often n/a or automatic on newer drives. I would just make those values 0. Also, Rate and Ctrl are not settable as far as I can tell. 1