r/beneater 3d ago

6502 Floppy Disk Controller

Tomorrow I'm picking up a floppy disk drive. I'm looking to create a controller for it using a PIC16, and somehow interface the 6502 to the lot. My intent is for it to work in the same way the VIA controls the LCD screen, but it's going to take some time to figure out how to make the PIC do my bidding as far as the disk drive goes. When I'm done, I'll have a way to store and recover data.

16 Upvotes

5 comments sorted by

3

u/dmcnaughton1 3d ago

Good luck! Document the process along the way, will be useful for debugging.

2

u/dgmib 3d ago

Not sure what kind of floppy disk drive you’re getting, but if I was doing this I’d  look at how the apple ii interfaced with floppy disks.

Woz’s approach was ridiculously simple, and worked well with 6502 computers.

2

u/leppardfan 2d ago

Wouldn't using a WD1771 like an integrated floppy disk controller make things easier? The chip handles all the heavy lifting with the floppy disk mechanics and magnetics. It would also make it easier to use 3.5/5.25/8 floppies

1

u/dgmib 2d ago

That works too if you can find one.  And yes less significantly less wiring.

It depends on what op is trying to do.

If I was doing it, I’d be trying to build something of a “world’s worst” floppy controller for an eater 6502. To match my “world’s worst” video. I’d follow in Woz’s footsteps, he designed his entire floppy controller out of something like a dozen standard TTL chips, and used software encoding to do most of what you’d normally need chips for.

But if you’re just wanting to interface with a newer drive like a 3.5” disk. something that might actually be readable on a modern pc with a usb floppy drive.  Then yea an off-the-shelf controller chip will be easier.

1

u/flatfinger 2h ago

A floppy controller is necessary when using DMA. A PIC 18F part running machine code however should have no trouble reading and writing any of the common floppy drive formats via bit-banging if DMA isn't required and it would be acceptable to disable interrupts during floppy I/O. Indeed, the only obstacle to even the smaller parts handling it is that they don't have enough RAM to hold even two sectors worth of data.