Floppy Disk IF

Floppy Disk IF

Interface 5.25" single-sided Shugart floppy drives (and Gotek emulators) to any 6502 computer. Based on the Elektor Junior FDC.

What is it?

A Printed Circuit Board for a floppy disk controller. It interfaces 5.25-inch single-sided Shugart-type floppy disk drives to generic 6502 computers. Also fully compatible with Gotek floppy emulators running FlashFloppy firmware and .HFE disk images.

Why did I make it?

I have a love of 6502-based systems from around 1979 when I built my first kit computer (UK101) and expanded it with a floppy disk drive. I still had my original 5.25" disks and wanted to recover the software I had written 40 years ago. This interface is not available elsewhere, so I had to research and design the PCB myself.

After completing the build I connected my old Teac 504 drive and attempted to boot from a 40-year-old master diskette. After a few tick-ticks from the drive, OS65D3.0 booted perfectly!

What makes it special?

Based on the Elektor Junior FDC, designed for OSI-65D and Shugart 5.25" floppy disks. The PIA and ACIA are memory-mapped as per the OSI standard:

Device Address
PIA (6821 or 6521) $C000
ACIA (6850) $C010

Bill of Materials

Component Quantity Value / Part
ACIA 1 6850
PIA 1 6821 or 6521
Bus Transceiver 1 74LS245
Decoder 2 74LS138
Monostable 1 74LS123
Flip-flops 1 74LS74
Logic gates Various 74LS series
Capacitors 13 0.1µF
Capacitors 2 1nF
Capacitors 2 47µF
Resistors 5 150Ω
Resistors 1 1KΩ
Resistors 3 4.7KΩ
Resistors 1 6.8KΩ
Variable resistors 2 10KΩ
Diode 1 1N4148
Headers 4 16-pin
Headers 2 17-pin
Headers 1 36-pin right-angle

36-Pin Bus Connector

D7 D6 D5 D4 D3 D2 D1 D0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 NC PHI2 R/W NC NC NC NC NC GND NC NC +5V

Hardware Versions

Version 2.3A note: If you have an early v2.3A board, a strap is required between D1 cathode and pin 16 of the 74LS123. Later boards have this resolved.

OSI Superboard / UK101 users: If connecting to an original Superboard or UK101 that already has expansion boards, you may need to bypass the 8T88-buffered connections. Because my SBC uses a serial terminal for input/output, the OSI DOS versions are slightly modified to use a relocated port. (The UK101/Superboard 2 have their ACIAs at $F000, I chose to have mine at $8000 to make it easier for address decoding.) In order for the Floppy Interface to work with my 6502 SBC, the 'bootloader' needs to be modified. It is easy to do if you wish to do it yourself: With a genuine OS65D3.1 or 3.3 disk or image loaded, reset SBC and select 'D'. After disk activity has finished reset SBC and select 'M' Copy the address and data text from below:

##Mods

Data
.2277/7F
.2286/35
.2300/7F
.2321/01
.2322/01
.2AC6/01
.24D0/80
.24DC/80
.24F8/80
.24D8/80
.2501/80
.2547G

and paste to host or your comms program's equivalent. You should then have A* as a prompt.

Schematics & Images

![Floppy Disk IF Circuit Diagram](/images/Floppy Disk IF.jpg) Version 1 Board Layout Version 2.3A Layout