Floppy Disk Direct-Write Procedure

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hey folks, I'm wanting to clarify how you would interface with a PC
floppy disk drive directly, so maybe somebody with this oldschool
knowledge can help shed some light on this for me!

Basically, I can't seem to find info on how you write to the disk.
For a 1.44 floppy, I know that you would be writing 1Mbps, since it's
2 MFM-encoded bits per data bit (hence a 500kbps data rate).  Now, my
assumption for actually writing is as follows: you pull the write gate
line low and hold it there for the duration of the write, and then for
every binary 1 in your MFM-encoded data, you reverse the signal on the
write pin (the flux reversal marking a '1' on the media).  Can anyone
tell me if this is correct?

When I asked elsewhere, someone commented that he didn't believe you
had to toggle the line to write a 1, that the floppy drive circuitry
handled this automatically.  He said he didn't know for sure, though.
But under that assumption, you could just output your MFM-encoded bits
directly into the write pin of the floppy, which would be much

I'm also curious what exactly happens when you pull the write gate
line low in general.  I think I read something once that activating it
turns on the erase head.  If that's the case, I'm curious how far
ahead of where data is written is data automatically erased?  Also,
what would happen if you wrote to the write pin without activating the
write gate?  Would data still be written, but the previous data not

I think that's all I meant to ask for now, as far as directly
interfacing the hardware goes.  I hope somebody still knows how this
stuff works!

Re: Floppy Disk Direct-Write Procedure

FyberOptic wrote:
Quoted text here. Click to load it

When floppies were really floppy, one controlled the floppy by sending a
code to the chip on the floppy - the floppy disk controller.  There weren't
many code values, just a handful, but you had to know what they were and
their function.  The general procedure...

1. code to FDC to start drive

2. code to FDC to position head to desired location

3. when FDC returned a "ready" code, point it to a buffer and send code to
read or write (as desired)

The first two FDC instructions returned to your code "in line"; i.e., the
next line of your code was executed.  That was not the case after a
read/write...the return was to a location you had to have previously set up.
The FDC stashed a code there - don't recall if it was in a register or
memory - telling you whether it had been successful or if there had been an
error; if error, the code told you what.

The above was simplest via assembly language but could be done via high
leven languages as well.


Re: Floppy Disk Direct-Write Procedure

Quoted text here. Click to load it

Unfortunately your info is for talking to a floppy disk controller,
which is external to the floppy drive, and is the part I was building
myself.  I just wanted to know how one talks directly to the floppy
drive itself, which is a rather "dumb" piece of equipment compared to
a FDC.  Thanks though!

Re: Floppy Disk Direct-Write Procedure

and read the Western  Digital FD1771 data sheet. It'll give you all
the details.

On Sat, 30 May 2009 16:04:58 -0700 (PDT), FyberOptic

Quoted text here. Click to load it

Site Timeline