Floppy Disk Drive Parameter Table

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Skeletonz33
Posts: 1
Joined: Fri Oct 16, 2026 9:09 am
Libera.chat IRC: Skeletonz33
GitHub: https://github.com/Skeletonz33

Floppy Disk Drive Parameter Table

Post by Skeletonz33 »

Does anyone know how to find documentation for the "drive parameter table". I found this when I was reading Ralf Brown's Interrupt List entry for INT 13h/AH=08h (read drive params)
In the return section, es:di being a pointer to a drive parameter table is mentioned, but I don't know how to find it and what format it uses.

The most promising piece of info on that page is
(Table 00242)
Values for diskette drive type:
01h 360K
02h 1.2M
03h 720K
04h 1.44M
05h ??? (reportedly an obscure drive type shipped on some IBM machines).
2.88M on some machines (at least AMI 486 BIOS)
06h 2.88M
10h ATAPI Removable Media Device

But that just says "table 00242", which may not be the drive parameter table, although that table is for floppy disks.
Octocontrabass
Member
Member
Posts: 6277
Joined: Mon Mar 25, 2013 7:01 pm

Re: Floppy Disk Drive Parameter Table

Post by Octocontrabass »

Skeletonz33 wrote: ↑Sun Oct 18, 2026 2:38 pmDoes anyone know how to find documentation for the "drive parameter table".
Why do you want it?

Anyway, since floppy disks are ancient, a good place to check is IBM's BIOS Interface Technical Reference. (Newer BIOS functions are usually standardized elsewhere.)
Skeletonz33 wrote: ↑Sun Oct 18, 2026 2:38 pmBut that just says "table 00242", which may not be the drive parameter table, although that table is for floppy disks.
If you're looking in RBIL, you want table 01264.
User avatar
BenLunt
Member
Member
Posts: 1040
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: Floppy Disk Drive Parameter Table

Post by BenLunt »

I too am curious as to why you are looking for this floppy parameter table.

Who has a floppy anymore anyway? Oh wait, I have a few, plus an 8in one wrapped up in plastic. :-)

If you are looking to program the FDC, others may disagree, but I believe the FDC is a great piece of hardware to learn how to communicate with the computer's hardware. You have to learn interrupts, how to set up the DMA, how to send and receive commands, as well as timing of these commands. A proper FDC/DMA driver(s) is a great learning experience so that when you move to more modern hardware, you can see where technology has improved the process, using more hardware/firmware and less software to complete the task.

Anyway, back to the table you are looking for. It was used by the BIOS and for the BIOS to keep track of what type of floppy disk was in the drive. As you might know, or will learn to know, a floppy disk, though physically identical, can be formatted many different ways, needing different timings. For example, the BIOS needs to know how long to wait for the head(s) to move from one cylinder to the next and things like this. This type of information was stored and then modified when a disk change is made, to keep track of these items.

Emulators, such as Bochs and QEMU, still emulate the FDC allowing you to write such a driver without having to have a physical drive to test with.

- Ben
https://www.fysnet.net/osdesign_book_series.htm
Post Reply