Floppy Drives - How did they work?

Sdílet
Vložit
  • čas přidán 21. 07. 2024
  • Let's look at how old-fashioned floppy disc drives worked - from the physical hardware to the electronic interface, and maybe see if we can read and write some data!
    00:00 Intro
    00:53 Minifloppy discs, drives, and Shugart
    04:17 Floppy disc anatomy
    06:46 Floppy drive components
    16:30 The Shugart bus interface
    23:05 Experimenting with the bus signals
    28:38 Hooking up an oscilloscope
    31:40 Reading from the disc
    39:15 FM encoding
    44:41 Writing to the disc
    51:20 Next steps
  • Věda a technologie

Komentáře • 52

  • @ecosta
    @ecosta Před rokem +9

    Oh my! This brings me so many memories from my childhood. I recall playing with old disks, and "protecting" new ones with a small sticker over the side notch. Those were the days! 😃

    • @GeorgeFoot
      @GeorgeFoot  Před rokem +6

      And sometimes cutting a notch in commercial disks that didn't have one!

    • @edgeeffect
      @edgeeffect Před rokem

      I rarely used the protection tabs on discs... they had a higher purpose: for write enabling cassettes.

    • @makeshift75303
      @makeshift75303 Před rokem +2

      Aah, the time spent trying to dig an aluminium write-protect tab out of a floppy drive with a pencil, or a wooden ruler, because it had come off the floppy disc inside the drive. 😊

  • @absurdengineering
    @absurdengineering Před rokem +5

    MFM can be read and written using nothing but a basic UART. Configure to 1 start bit, 6 data bits, 1 stop bit. It's exactly MFM, and will self-synchronize to clock pulses. 250k baud rate. Of course decoding the data requires some software, but a floppy controller is a bit of an overkill for most uses. I've been interfacing with floppy drives using UARTs for a long time. The read data needs a pulse stretcher to extend the pulses to 2us. Any microcontroller that can have its UART word width configured to 6 bits will work for that. Minimum UART clock is 4MHz or any multiple of it. The 16MHz clock used for Arduino UNO works well for that. If you want to be really fancy, the CPU clock can be slaved to the index pulse via a PLL, so that when the disc is rotating, there's an exact and fixed number of bits per revolution. ATmega 328P used in UNO has a uart that supports 6-bit data words. So the whole thing works out really well.

    • @PauloConstantino167
      @PauloConstantino167 Před 6 hodinami

      Thats an interesting idea. Would you help me to set this up for my homebrew computer?

  • @makeshift75303
    @makeshift75303 Před rokem +3

    I believe the momentary motor rotation of the spindle is to help seat the floppy disc centrally as the spindle segments of the head clamp the floppy. If the spindle was stationary, there would be far more chance of crimping the floppy.

  • @thorpejsf
    @thorpejsf Před rokem +3

    Those two little notches near the window are strain-reliefs 🙂 If the floppy is twisted, they prevent the window area from bending.

  • @Mik3yDatBoi
    @Mik3yDatBoi Před rokem +3

    I’m 22 and just fascinated by retired technology. More the fact my parents grew up in the era and of course my grandparents saw it all. Just fascinating to me. (I think floppy’s are still rarely used so maybe not fully retired)

  • @LifewithDavid1
    @LifewithDavid1 Před 2 lety +11

    George,
    Glad to see you back on CZcams! Nicely done. I built my own floppy disk interface for my 6502 computer back in 1980 using the FD1791 disk controller. As floppy disk technology progressed, the data format went from data between clock pulses to transitions signifying a one or a zero to increase the data density. Early disks had 17 index holes, for hard sectoring. 16 equally spaced sector holes, and 1 track hole halfway between holes "16" and "1". I only used one box of those before I converted to soft sectoring like your disk.
    I wrote a very basic DOS that allowed me to transfer data between the computer and drive. It was a challenge since it was all hand written in machine language (EAs, 20s, and A9s still are burned into my brain). I had to load the DOS into the computer using a cassette and then I could use the disk. Things are much more more civilized (meaning cheaper) now. I could barely afford one computer, now we've got dozens just for playing around. The discussion was spot on. Keep up the good work.

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +2

      Thanks David! It's interesting with the hard sectoring - I read about the extra holes the other day but I assumed they were at a different radius on the disc, I didn't realise they were mixed together. I found an old datasheet for an early Shugart drive that was an interesting mixture of useful and too old compared to the hardware I have here!
      I read about MFM as well, maybe one day I can pack as much data in as I can! For now though my goals are a bit less ambitious.

    • @GodmanchesterGoblin
      @GodmanchesterGoblin Před 2 lety +2

      @@GeorgeFoot Hard sectors were common early 8 inch floppies (late 70's). But I think they were on the way out by around 1980. I designed a couple of disk controller interfaces (complete with low-level with driver software) for proprietary computer systems in the mid 80's. Fun days!

    • @Dave5281968
      @Dave5281968 Před 2 lety +2

      @@GeorgeFoot You're smart to go with regular FM encoding initially since MFM encoding introduces some quirks in writing data to the disk. (Some bit sequences can generate bad reads/writes! I think it's because the signal frequency goes out of the allowable range for the read and/or write amplifiers.) I personally prefer the FM encoding since there are no special cases of data patterns to be handled, but MFM does nearly double the number of bits that will fit on a single track.

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +2

      @@Dave5281968 I read the WD1770 datasheet yesterday, including details of write compensation that might be what you're referring to? Also MFM vs MMFM which I guess were different ways to achieve the faster data rate.

    • @RogerBarraud
      @RogerBarraud Před rokem

      @@GeorgeFoot HD or bust! ;-)

  • @sail4life
    @sail4life Před 2 lety +3

    The spindle motor is a brushless DC permanent magnet type. The controller uses either an index magnet and a hall sensor or back EMF from the coils to keep track of the speed. Perhaps some used the index hole but I'm not sure.

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +1

      I think you're right as far as the drive motor speed regulation is concerned. There's a "ready" signal from the drive though which uses index pulses to check that a disc is present, and I believe host-side systems like the 8271 FDC also used index pulses to check things were good before trying to write data.

  • @mheermance
    @mheermance Před 2 lety +4

    Atari eight bit systems also used serial floppy drives. Their drives weren't quite as sophisticated as the Commodore drives, but the interface was higher level than other floppy drives. The engineer who designed their SIO bus went on to work on USB which has some similarities. I used to notch the opposing side to let me double side the floppy.

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +2

      That's interesting, I'm not very familiar with the Atari systems. I too used to cut extra holes in my discs and flip them over. Not very neatly!

  • @forbiddenera
    @forbiddenera Před 2 lety +2

    One of the other holes is so the drive knows the disk is right side up or not as some systems/drives would let you flip a disk before double sided drives were the normal

  • @ratmadness4858
    @ratmadness4858 Před měsícem +1

    James Sharman recommended this series.

  • @pepe6666
    @pepe6666 Před 10 měsíci +2

    man this was AWEESO_E!! sorry missed a bit

  • @captainboing
    @captainboing Před měsícem

    @41:50 maybe "soft sectors"?
    The Amiga used an encoding which resulted in a special byte pair (0x4489) that could not be generated by the encoding so if that ever occurs in the data stream you know it is a sector start. There are other combinations which got used in some disk protection systems. When it read a track, it didn't have to wait for the start of a sector, it just dropped the heads and read an entire track into a buffer. The cpu then looked for the soft index word and used the blitter to move the two halves of the buffer.

  • @stupossibleify
    @stupossibleify Před 2 lety +2

    Really good video! More please!

  • @SuburbanDon
    @SuburbanDon Před 10 měsíci +1

    Very interesting. My first computer was in 1982, an Apple 2+. Thanks for doing this.

  • @Aruneh
    @Aruneh Před 2 lety

    Very interesting! And good to see you back on CZcams, its been a while

  • @ianneill9188
    @ianneill9188 Před rokem +1

    Excellent! Very interesting and just what I was looking for, as I am starting to study floppy disks as I return to some of my retro computers. The Arduino is also my go to tool when I want to dig deeper into data and logic, so the next episode in your series is already calling me 😊 Thank you for sharing.

  • @francoisdastardly4405
    @francoisdastardly4405 Před 2 lety

    Very interested video. Many thanks !

  • @makeshift75303
    @makeshift75303 Před rokem

    Brilliant presentation, thank you, The head never made contact, but used to float above the surface of the floppy on a cushion of air, but at a height that was far less than the diameter of a human hair. I'm sure you can find a diagram to illustrate the type of clearance involved, but it was an unbelievably small tolerance as far as I was concerned , back in 82.
    I wish I still had my caddy of Apple II 5 1/4" Verbatim floppies.
    I gave everything away in the 90s when I was in the Army. Have re-purchased an Apple II (Platinum) and most recently an Osborne OCC1, which I always lusted after as a teen, but could never afford in 82.

  • @pauldourish
    @pauldourish Před 2 lety

    Great stuff -- fascinating!

  • @colejohnson2230
    @colejohnson2230 Před 2 lety +1

    This is exactly what I needed for my project!

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +1

      Great! What's the project?

    • @colejohnson2230
      @colejohnson2230 Před 2 lety +1

      @@GeorgeFoot I'm working on building a pipelined CPU and wanted to expand memory with some old tech like floppy's. I had a floppy drive lying around but no idea how to interface to it

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +1

      Awesome. I think it should be fairly easy to get some crude data reading working, maybe DMA a track at a time into RAM, but my main debate has been whether to go straight for the standard, more complex format.

  • @brettb.345
    @brettb.345 Před 2 lety +1

    Currently adding SD card support to my 6502 via a second 6522 VIA. I’m experimenting with an ATMEGA168 as the controller (got a bunch of those chips on the cheap). This was very informative on the possibility of interfacing a floppy drive. Thanks.

    • @GeorgeFoot
      @GeorgeFoot  Před 2 lety +2

      Nice, the ATMEGAs are actually quite simple to hook up if you set the fuses right, and you can program them in-system from an Arduino fairly easily. My first PCB design was based on one.

    • @brettb.345
      @brettb.345 Před 2 lety +1

      @@GeorgeFoot I built my own “Arduino Uno” board for it with ZIF socket rather than prying the chips out of the socket of an actual Uno. I also just finished a new Uno shield to program ATTINY 85, 84, and 861 - I use them a lot, as they are great for adding interfaces, such as I2C to LCDs or for keyboards.

  • @tonyfremont
    @tonyfremont Před 9 měsíci

    I think it spins as you're inserting it to help center the hub on the hole; thats what i heard back then.

  • @noureddinebenakrim5458

    Thank you so much

  • @Chriva
    @Chriva Před rokem +1

    Those weirdo notches at the top is just to relieve stress. No idea how the mechanics of it work but that's their official designation. :)

  • @iamdarkyoshi
    @iamdarkyoshi Před 3 měsíci

    I feel like the c64's floppy drive solution was the exact opposite answer to "How can we build a cheap, fast, and simple to use floppy drive"

    • @tonyfremont
      @tonyfremont Před 2 měsíci +1

      They were just ahead of their time. Everything is a serial interface now: USB, SATA or PCI express.

  • @Phoenix135tube
    @Phoenix135tube Před rokem +1

    Hi George Brilliant video. I watched this a couple of weeks ago, then have come full circle in that my Osborne Executive Floppy Drive B is giving me a BDOS Error and when I took it out to look at, using the strobe wheel on the bottom of the drive motor, the motor is running flat out, and a mate thinks it might be the index hole optical sensor. I have no technical drive documentation or schematic for the Executive and was looking to build a test box to plug the drive into, but the breadboard makes it easy to use with the CRO, rather than messing with the drive. I might have missed it in the video but are you using 150 ohm resistors on the breadboard? kind regards, Cam

    • @GeorgeFoot
      @GeorgeFoot  Před rokem +1

      I'm glad if it's useful.
      I think I used higher resistor values, but I think it's meant to be 150 for a 5.25 inch drive, yes.
      I don't think the index hole is used for speed control by the drive in fact, the motors are meant to have that built in.

  • @aydnsevincik1227
    @aydnsevincik1227 Před 4 měsíci

    "Hello,
    I want to do something like this. I have an old system that only has floppy drive and parallel port outputs. Data is read and written using floppy disks. I want to disable the floppy drive, connect Arduino to that port, and use the system as if writing to a floppy disk to save the data to an SD card. Do you think something like this is possible?"

  • @ms-ex8em
    @ms-ex8em Před 3 měsíci

    why did Acorn choose 640k, 800k and 1.6 mb for its floppy disc capacities ?? thanks....................

  • @ms-ex8em
    @ms-ex8em Před 3 měsíci

    i wonder why microsoft chose 1.44 mb and 1.2mb and 1.68 mb dmf for its floppy disc formats too? thanks.........

  • @vitobelflores6510
    @vitobelflores6510 Před 17 dny

    Busco como conectar floppy drive 3" interno A externo vía puerto paralelo, like the backpack cdrom parallel port, No via usb!. I have Oldis Pc's only with Parallel port it doesnt have enought power for ISA cards with usb 1.1 ports or pci. The LS120 SuperDisk (ext) is an option but i 've a many 3"1/2 fdrives (int) to use like an externals. Idont want a zip's iomega,
    Help pls.

  • @edgeeffect
    @edgeeffect Před rokem +2

    I always thought FM was.... y'know Frequency Modulation.... interesting to see I'm wrong.

    • @GeorgeFoot
      @GeorgeFoot  Před rokem +3

      I think in a way it is still a form of frequency modulation. A set bit is encoded as two cycles of 250kHz, while a clear bit is one cycle of 125kHz.

    • @RogerBarraud
      @RogerBarraud Před rokem

      @@GeorgeFoot Exactly right.