Microsoft KB Archive/36314
Changing ROM BIOS Disk Media Types between 1.2 Meg. and 360K ID Number: Q36314
3.x 4.00 MS-DOS
When switching the disk drive from a 1.2-megabtye disk in a 1.2-megabyte drive to a 360K disk in a 1.2-megabyte drive and back again, we are running into problems. After the media change, subsequent disk I/O results in a MS-DOS “General Failure” error. Is this a problem with MS-DOS? Under what conditions will this occur? Is there a known fix?
MS-DOS file control block (FCB) or file-handle based I/O does not have this problem. A program that uses handle or FCB-based I/O does not need to be concerned with the disk media type.
However, an application that uses ROM BIOS interrupt 13H disk I/O services needs to be concerned with the disk media type. If you use these low-level disk I/O services, you should retry your I/O operations. Normally, retrying enables your code to allow the ROM BIOS to reset the media type. If the last access of a disk was as a 360K disk, and then a 1.2-megabyte disk is inserted, your code will need to retry the next low-level I/O operation while the ROM BIOS adjusts the media type to a 1.2-megabyte disk in a 1.2-megabyte drive. (On some systems, such as Compaq systems, this change is noticeable, since the drive light changes from green to red when different media is inserted in the drive.)
According to some OEM ROM BIOS technical reference manuals, when using interrupt 13H, if you receive a disk error, you should reset the disk controller and retry the operation. A specified number of retries should be required on most I/O operations.
For more IBM (and 100-percent compatible) ROM BIOS information, refer to the “IBM PS/2 and PC BIOS Interface Technical Reference,” part number 68X2260, available from IBM by calling (800) IBM-PCTB. Another reference that contains similar material is the Microsoft Press book, “Programmer’s Quick Reference Series: IBM ROM BIOS,” by Ray Duncan, ISBN 1-55615-135-7. For OEM ROM BIOS extensions, refer to your OEM’s hardware and technical reference manuals.