Info resources for diy floppy controller - Page 1
Forum section: electronics / projects

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 23, 2019, 04:15:30 am
content: I have been building a 6502 homebrew computer. I plan to do removable storage initially with an AVR controlled SD reader, but would love to do a home rolled floppy controller. To give you an idea of how fundamental I'm willing to go, my video is a VGA controller done with nothing but 7400 logic. I don't HAVE to go that medieval for the floppy controller, but it's not off the table.I have no need for my disk format to be compatible with anything. Something a modern computer could read would be convenient, but not remotely a requirement.Also, I'm open to everything from trying to bypass the USB interface on a modern drive, to using a vintage commodore or apple drive. The latter is probably preferable, and I assume more feasible. I think I've read old Apple 2 drives had most of the controller logic built in, whereas commodore drives didn't. I could have that backwards or wrong altogether.Long story short, I'm having trouble finding resources on how to talk to drives. Any links, or even better, books to look for? I freely admit I'm a crappy Googler, but I have been trying! (Trying to head off the "just Google it" answers at the pass 🙄).My hope is something I can do with a simple 8 bit MCU. I'm open to basic logic chips too. I've never used an FPGA before. Not against it, but I don't want a pre manufacture FPGA board on my build, and I clearly don't want to try and solder a BGA! I thing FPGAs are out.I've kinda rambled a bit here. Mostly just want some direction to resources so I can begin my research.

author: mariush
author_rank: Super Contributor
timestamp: March 23, 2019, 05:02:00 am
content: edit: this may also help:*https://wiki.osdev.org/Floppy_Disk_Controller*http://www.intel-assembler.it/portale/5/intel_8272_floppy_disk_controller/tecnical_manual.aspI have tons of reference, docs, datasheets, catalogues here:ftp://helpedia.com/pub/temp/manuals_reference_datasheets_old/Download index.txt if you wish to search for some keywords.Use Filezilla FTP client or other ftp clients if you wish.Here's filenames with "floppy" in them:Code:\cdc\discs\floppy\\ibm\floppy\\micropolis\metafloppy\\panasonic\floppy\\pertec\floppy\\waveMate\Bullet\floppy\\amd\multibus\00680108rC_95-6110_SDfloppy.pdf\apple\disk\sony\Sony_Microfloppy_Interface_May83.pdf\att\3b1\reference_manual\3b1_floppy_tape.pdf\ccs\2422\CCS_2422B_Floppy_Controller_May81.pdf\cdc\discs\_appNotes\Worden_Floppy_Jun78.pdf\cdc\discs\floppy\75897465_9404B_floppyMaint.pdf\cipher\Cipher_525_FloppyTapeProdDescr.pdf\cipher\Cipher_Series_525_FloppyTape_Product_Description_Nov84.pdf\codata\Codata_3300_System_Floppy_Restore_Jan86.pdf\computerAutomation\schematic\75-53566_Floppy_Controller.pdf\convergent\miniframe\floppy.c\convergent\ngen\pictures\A-60-00187-00_Floppy_Disk_Controller_II.jpg\convergent\ngen\pictures\A-60-00191-00_Floppy_Hard_Disk_Controller_1984.jpg\corvus\service\7100-04702_FloppySvc_Jul83.pdf\dec\pdp11\xxdp\listings\AC-E736E-MC_CXRXAE0-RX01-floppy-disk_Sep78.pdf\dg\software\diag\068-000442-05_6038-6039-floppy-reliability.pdf\dg\software\diag\068-000443-02_6038-6039-floppy-formatter.pdf\dg\software\diag\068-000445-03_6038-6039-floppy-diagnostic.pdf\dg\software\diag\068-001138-00_6096-6101-6102-moving-head-disk-floppy-reliabi.pdf\dg\software\diag\068-001139-00_6096-quad-density-floppy-moving-head-disk-diag.pdf\dg\software\diag\096-000442-00_6030_6039_Floppy_Disk_Rel.pdf\dg\software\diag\096-000445-00_6038_6039_Floppy_Disk_Diagnostic.pdf\digitalMicrosystems\digitalMicrosystems\DSC-3_Floppy_Disk_Test_Program.pdf\digitalMicrosystems\digitalMicrosystems\ZSBC-3_CPM_Floppy_Bootstrap.pdf\digitalMicrosystems\digitalMicrosystems\ZSBC-3_Floppy_Formatter.pdf\dtc\pictures\DTC-6282-24_ESDI_Floppy.jpg\evansAndSutherland\novoview_sp1t\901181-392_Floppy_Quad_Disk_Storage_System_Engineering_Drawings_and_Associated_Lists_Dec1989.pdf\futureDomain\pictures\Future_Domain_TMC-1670_SCSI_Floppy.jpg\hp\64000\hardware\64941-90902_floppySvc_Apr83.pdf\ibm\system32\System32_floppy_ch8.txt\intel\_dataSheets\82078_CHMOS_Single-Chip_Floppy_Disk_Controller_Jan94.pdf\intel\iPDS\163238_Mini-Floppy_Diskette_Considerations.pdf\intel\iPDS\164498-001_iPDS_External_Floppy_Jul83.pdf\intel\MDS2\9800425-02B_MDS_II_Double-Density_Floppy_Schematic_1980.pdf\intel\MDS2\9800885_MDS_Double_Density_Floppy_Brochure_Nov78.pdf\intel\MDS3\9800967-01_Siemens_Floppy_Maint_Nov79.pdf\interdata\periph\29-506_FloppyPgmg_May77.pdf\ithacaInterSystems\firmware\DPS-1_Floppy_BOOT_1280.BIN\memorex\disc\2944.010_650floppyOEM.pdf\memorex\disc\651.60-05_651floppyOEM.pdf\mfe\MFE_700_750_Floppy_Drive_Brochure.pdf\micropolis\metafloppy\1084-02_Micropolis_Floppy_Disk_Subsystem_Maintenance_Manual_Feb79.pdf\micropolis\metafloppy\MetaFloppy_Brochure.pdf\microTechnology\MXV21_floppyCtlr.pdf\mitsubishi\M2894-63_FloppySpec.pdf\morrow\artwork\PC_Floppy_Controller_1985.pdf\motorola\_appNotes\AN917_Reading_and_Writing_In_Floppy_Disk_Systems.pdf\national\_dataSheets\DP8473\AN-505_Floppy_Disk_Data_Separator_Design_Guide_for_the_DP8473_Feb89.pdf\national\_dataSheets\DP8473\AN-653_DP8473_Implementation_into_the_PS2_Floppy_Controller_Design_Sep89.pdf\national\_dataSheets\DP8473\DP8473_Floppy_Disk_Controller_PLUS-2_Jul90.PDF\nec\_dataSheets\uPD372_Floppy_Disk_Controller_Addendum_Apr77.pdf\nec\_dataSheets\uPD372_Floppy_Disk_Controller_Mar77.pdf\pertec\floppy\Pertec_5_Inch_Floppy_Brochure.pdf\pertec\floppy\Pertec_8_Inch_Floppy_Brochure_Sep78.pdf\plessey\peripheral\qbus\703530_XCV21_floppyCtlr.pdf\pro-log\std_bus\7387_Floppy_Disk_Controller_Mar82.pdf\pro-log\std_bus\7387_Floppy_Disk_Controller_Nov81.pdf\r2e\photos\Floppy_Disk_Controller.jpg\remex\112670-108e_Remex20_24_40_48_floppy_1979.pdf\remex\112670-109H_RFS2410_floppy_1980.pdf\shugart\_appNotes\Lesea_Floppy_May78.pdf\sigmaInformationSystems\400255-C_SDC-RXV31_Floppy_Ctrl_Man_Aug86.pdf\sigmaInformationSystems\SDC-RX50_Floppy_Ctrl_Man_Jun87.pdf\sigmaInformationSystems\SDC-RXV21_Floppy_Ctrl_Man_Feb81.pdf\sony\Sony_Microfloppy_Disk_Drive_OA-D32W_OA_D32V_OEM_Manual_Sep83.pdf\sony\Sony_OA-D32_Microfloppy_Service_Nov83.pdf\standardMicrosystems\TN6-1_9216_Floppy_Disk_Data_Separator_Jun82.pdf\tektronix\85xx\firmware\160-0412-00_8550_Floppy.bin\tektronix\85xx\PCB\8550_Floppy_B.jpg\tektronix\85xx\PCB\8550_Floppy_T.jpg\ti\_dataBooks\TMS279X_Floppy_Disk_Formatter_Jun84.pdf\vectorGraphic\Vector_8_Inch_Floppy_Disk_Controller_Jan81.pdf\westernDigital\WD57C65_Floppy_Disk_Subsystem_Controller_May88.pdf\xerox\820-II\610P72377_MS-DOS_OS_Handbook_for_8_Inch_Floppy_Disks_Nov83.pdf\yeData\FDAA-522041_YD-702D-6639D_3.5_Floppy.pdf\yeData\FDZ-529022_YD-702J-6637J_Super_Slim_3.5_Floppy.pdf

author: MarkF
author_rank: Super Contributor
timestamp: March 23, 2019, 05:05:55 am
content: Where are you going to get floppies?Anyway, the old Apple II's provided schematics for their motherboard, serial interface, parallel interface and the floppy drive.I can't find my floppy documentation but was able to dig up a Apple III circuit from Google.

author: MarkF
author_rank: Super Contributor
timestamp: March 23, 2019, 05:38:36 am
content: FOUND IT!Here is the Apple II Floppy Controller from the DOS manual.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 23, 2019, 05:55:09 am
content: Tons of good stuff to dig through. Thanks guys!You can certainly still get 3 1/4 inch disks on Amazon. Just got some for my old HP logic analyzer. I haven't looked, but I bet 5 1/2s are still there to be had too.

author: sleemanj
author_rank: Super Contributor
timestamp: March 23, 2019, 08:10:27 am
content: The C64 floppy drive (1541) had everything built into it, and I mean everything, it had a full 6502 microprocessor and associated ram and rom inside it which handled low level controlling the drive and the high level disk operating system and protocol to talk to the attached computer.Communication to the 1541 was effectively by way of a serial connection (commodore bus) with the C64 issuing commands to the drive, the drive doing them, and returning the results.It was really more like an attached network storage if you think about it! A very very slow network.

author: helius
author_rank: Super Contributor
timestamp: March 23, 2019, 08:14:59 am
content: Quote from: Dan Moos on March 23, 2019, 04:15:30 amYes, that is quite wrong. The Commodore PET and C64 floppy drives had their own microprocessors, and the DOS or Disk Operating System ran on the drive. In the 8250 drives for the PET, the drive contains two microprocessors, twice as many as the computer! They communicate with the host using a serial"IEC" buswhich is a GPIB bus narrowed down to one data bit. You could easily interface to this using a microcontroller: the host sends commands to the drive and receives file data back.The Apple II drives were the first to be totally without any internal controller, which was what made them cheaper than any offered for sale before. They were entirely controlled by software running on the computer, and they were fast. Interfacing to these drives is extremely difficult without the original Apple II hardware.

author: TheNewLab
author_rank: Frequent Contributor
timestamp: March 23, 2019, 08:29:43 am
content: I don't know it this will helpA youtuber called the 8-bit guy might have some stuff that might help, or just contact himhttps://www.youtube.com/channel/UC8uT9cgJorJPWu7ITLGo9Ww

author: DDunfield
author_rank: Regular Contributor
timestamp: March 23, 2019, 09:53:40 am
content: Back in the 80's I built a "from scratch" 6809 based portable system, hardware and software.This included a disk subsystem based on the NEC 765/Intel 8272.All of the information about it is up on my site, you can find it at:http://www.classiccmp.org/dunfield/d6809/index.htmIf you look under "Documentation" -> "My minimal Hardware Notes" there is a schematic of the disk controller there (6 or 7 ICs IIRC).The source code is available "Full CUBIX package with source code".Look at OS\SAMPLE.SYS for sample drivers which include the disk interface (in 6809 assembly language).That will get you low level Initialize/Format/Read-sector/Write-sector.Most of the code that implements the higher level file system is in FILESYS.OSThis was one of my earlier projects and one of my first disk controllers.. If you decide to use it and have questions, PM me I can probable help.Dave

author: helius
author_rank: Super Contributor
timestamp: March 24, 2019, 08:22:26 am
content: This document includes some basic information about floppy drives and low-level formats. When using a FDC (floppy drive controller chip), you are limited to the capabilities of the chip, but your software doesn't need to handle such low-level details. The document concentrates on "Shugart-bus" drives that were used in PCs and other machines. Commodore and Apple used other arrangements.