If you were Registered and logged in, you could reply and use other advanced thread options
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
simpler.
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
erased?
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!
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
simpler.
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
erased?
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!
FyberOptic wrote:
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.
dadiOH
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.
dadiOH
> When floppies were really floppy, one controlled the floppy by sending a
> code to the chip on the floppy - the floppy disk controller. =A0There wer=
en't
> code to the chip on the floppy - the floppy disk controller. =A0There wer=
> many code values, just a handful, but you had to know what they were and
> their function. =A0The 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 t=
o
> their function. =A0The 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 t=
> 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. =A0That was not the case after a
> read/write...the return was to a location you had to have previously set =
up.
> The first two FDC instructions returned to your code "in line"; i.e., the
> next line of your code was executed. =A0That was not the case after a
> read/write...the return was to a location you had to have previously set =
> 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
> memory - telling you whether it had been successful or if there had been =
> 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.
> dadiOH
> The above was simplest via assembly language but could be done via high
> leven languages as well.
> dadiOH
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!
Download
the details.
On Sat, 30 May 2009 16:04:58 -0700 (PDT), FyberOptic
<http://www.hartetechnologies.com/manuals/Tarbell/Tarbell%20Single%20Density%20Disk%20Controller.pdf>
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
>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
>simpler.
>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
>erased?
>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!
>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
>simpler.
>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
>erased?
>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!
- floppy drive help
- February 18, 2005, 8:44 pm
- floppy drive
- December 13, 2005, 10:05 am
- Floppy Problem?
- January 8, 2006, 8:11 am
- floppy emulation
- February 16, 2006, 3:24 pm
- SATA drivers on floppy?
- December 18, 2005, 11:06 pm
- Floppy Drive light always on
- October 9, 2006, 2:16 pm
- Wanted: 26 pin floppy drive for old NEC 486 system
- September 23, 2005, 3:51 pm
- Installing floppy drive in Packard Bell
- March 28, 2005, 12:26 pm
- cd can't see disk
- May 19, 2008, 6:58 pm
- Help: Book Disk Failure
- March 14, 2005, 9:25 am
- Help: Boot Disk Failure
- March 14, 2005, 9:49 am
- 10,000RPM hard disk
- August 12, 2005, 3:18 am
- Hard Disk Motor
- September 25, 2005, 7:48 am
- Low disk space warning
- September 25, 2005, 7:50 am
- Insert system disk??
- June 16, 2005, 11:02 pm





XML Sitemap
> 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
> simpler.
> 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
> erased?
> 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!