User:Tingo/Floppy machines
My variation of the ND media reader project.
Machine for 5.25 inch floppies
This is an old machine which I got around 2009 or so.
Hardware
The hardware is
- Dell OptiPlex[1] GX300
- cpu: Intel Pentium III @ 733 MHz (the motherboard has space for a second processor, but I don't have that or the required VRM module)
- memory: 2 slots, type RIMM, 512 MB (2 modules of 256 MB, max 1 GB)
- hard drive: ad4: 476940MB <WDC WD5000AAKS-00TMA0 12.01C01> at ata2-master UDMA100 SATA 1.5Gb/s (was: 190782MB <Seagate ST3200822AS 3.01> at ata2-master SATA150)
- optical drive: acd0: CDRW <Hewlett-Packard CD-Writer Plus 9500/1.0e> at ata1-master UDMA33
- floppy drive: 3.5 inch 1..44 MB drive (A:, fd0)
- floppy drive: 5.25 inch 1.2 MB drive (B:, fd1)
- network - wired: xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xec00-0xec7f mem 0xfafff800-0xfafff87f irq 18 at device 12.0 on pci2
The floppy drives are connected to the machine in the usual way, with a normal (PC style, with a twist between first and second floppy connector) floppy cable.
Software
When selecting a machine for this purpose Dave Dunfield's[2] TestFDC program is useful. This is a (MS-)DOS program, but it runs easily from a floppy.
Operating system: FreeBSD[3] i386, version 8.2-stable from 2011. This machine is only used for reading and writing media, so there is no need to upgrade to a newer version of FreeBSD.
tingo@kg-t2$ uname -a FreeBSD kg-t2.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #1: Mon Sep 26 13:09:55 CEST 2011 root@kg-t2.kg4.no:/usr/obj/usr/src/sys/GENERIC i386
I use fdcontrol[4] to view or set parameters for the floppy drives and dd[5] to read and write floppies. I use ndfs[6] to check if the floppy is in a standard ND format[7].
Usage
I usually ssh into the machine after it is powered up, and do all my work from a shell.
Workflow for reading a floppy
- insert a floppy in the floppy drive
- use fdcontrol to set correct format (only needed the first time, and when you change format)
- (optional) use ndfs to check if the floppy is in a ND standard floppy format.
- use dd to read floppy
- transfer the image off the machine via scp[8].
repeat until you have imaged all the floppies you want to image.
The steps for writing are similar, but the order changes, and the direction changes for some of them.
Using fdcontrol
Use fdcontrol to view the settings (note: you need a floppy in the drive for this to work!), as user root do fdcontrol -vF /dev/fd1
(or /dev/fd0
for the first floppy)
example
# fdcontrol -vF /dev/fd1 /dev/fd1: 1200 KB media type Format: 15,512,0xff,0x1b,80,500,2,0x54,1,0,+mfm,+auto Sector size: 512 Sectors/track: 15 Heads/cylinder: 2 Cylinders/disk: 80 Transfer rate: 500 kbps Sector gap: 27 Format gap: 84 Interleave: 1 Side offset: 0 Flags <MFM,AUTO>
this shows the default format as 1.2 megabyte PC format.
To change to ND format 17b: as user root fdcontrol -f 1232 /dev/fd1
. If you view the settings you get:
# fdcontrol -vF /dev/fd1 /dev/fd1: 1232 KB media type Format: 8,1024,0xff,0x35,77,500,2,0x74,1,0,+mfm Sector size: 1024 Sectors/track: 8 Heads/cylinder: 2 Cylinders/disk: 77 Transfer rate: 500 kbps Sector gap: 53 Format gap: 116 Interleave: 1 Side offset: 0 Flags <MFM>
To change to ND format 0b: as user root fdcontrol -s 8,512,0xff,40,77,500,1,80,0,0,-mfm /dev/fd1
. This format looks like this:
# fdcontrol -vF /dev/fd1 /dev/fd1: 308 KB media type Format: 8,512,0xff,0x28,77,500,1,0x50,0,0 Sector size: 512 Sectors/track: 8 Heads/cylinder: 1 Cylinders/disk: 77 Transfer rate: 500 kbps Sector gap: 40 Format gap: 80 Interleave: 0 Side offset: 0 Flags <>
If you get errors from fdcontrol, you might have specified a floppy format that your controller and / or floppy drive can't handle.
Using dd
If you get errors when you use dd you should check that the resulting image is of the expected size and that it is readable. Errors from dd usually means
- you set wrong format with fdcontrol
- there are read errors on the floppy itself
TestFDC results
Here are the TestFDC results for this machine.
Drive A: (fd0)
tingo@kg-t2$ date; cat fdc_dell_a.txt Sun Jul 1 12:44:29 CEST 2018 Report on FDC capabilities, issued 1/07/2018 12:38:36: Single-Density at 250 kbps ............................ Passed Single-Density at 300 kbps ............................ Not tested Single-Density at 500 kbps ............................ Passed Double-Density at 250 kbps ............................ Passed Double-Density at 300 kbps ............................ Not tested Double-Density at 500 kbps ............................ Passed Double-Density at 250 kbps / 128 byte sectors ......... Passed Double-Density at 300 kbps / 128 byte sectors ......... Not tested Double-Density at 500 kbps / 128 byte sectors ......... Passed
Drive B: (fd1)
tingo@kg-t2$ date; cat dellfdc.txt Sun Mar 25 00:11:25 CET 2018 Report on FDC capabilities, issued 24/03/2018 23:54:34: Single-Density at 250 kbps ............................ Not tested Single-Density at 300 kbps ............................ Passed Single-Density at 500 kbps ............................ Passed Double-Density at 250 kbps ............................ Not tested Double-Density at 300 kbps ............................ Passed Double-Density at 500 kbps ............................ Passed Double-Density at 250 kbps / 128 byte sectors ......... Not tested Double-Density at 300 kbps / 128 byte sectors ......... Passed Double-Density at 500 kbps / 128 byte sectors ......... Passed
Machine for 8 inch floppies
This is an old machine, I don't remember when I bought it, the earliest history I have written down is from 2007.
Hardware
The hardware is
- MSI Hermes 845GV[9]
- cpu: Intel(R) Pentium(R) 4 CPU 2.66GHz
- memory: 1024 MB (2 slots, 2 x 512MB DDR DIMM)
- hard drive: ad0: 114498MB <SAMSUNG SP1213N TL100-24> at ata0-master UDMA100
- network - wired: fxp0 - Intel 82801DB/DBL (ICH4/ICH4-L) PRO/100 VE Network Connection
- floppy drive: (external) Tandon TM848-2E, 8-inch, double sided, 48 tpi, 77 tracks per side, 360 rpm, data transfer 500k bits per second
- other: FDADAP[10] adapter, external 24 VDC power supply
The floppy drive is connected to the FDADAP with a straight 50-pin cable, the FDAPAP is connected to the PC with a straight 34-pin cable. 24 V to the floppy drive from the external PSU, 5V from the PC. The floppy is set to 5.25 inch in BIOS.
Software
Operating system: FreeBSD i386, version 8.4-stable, from 2018
tingo@kg-htpc$ uname -a FreeBSD kg-htpc.kg4.no 8.4-STABLE FreeBSD 8.4-STABLE #0 r335840: Sun Jul 1 19:46:09 CEST 2018 root@kg-htpc.kg4.no:/usr/obj/usr/src/sys/GENERIC i386
The tools used are as for the 5.25 inch machine: fdcontrol, dd and ndfs.
Usage
I usually ssh into the machine after it is powered up, and do all my work from a shell.
Workflow for reading a floppy
- insert a floppy in the floppy drive
- use fdcontrol to set correct format (every time after changing floppy in the drive)
- (optional) use ndfs to check if the floppy is in a ND standard floppy format.
- use dd to read floppy
- transfer the image off the machine via scp[11].
repeat until you have imaged all the floppies you want to image.
The steps for writing are similar, but the order changes, and the direction changes for some of them. (Note: I haven't tried writing an 8-inch floppy yet)
Using fdcontrol
Use fdcontrol to view the settings (note: you need a floppy in the drive for this to work!), as user root do fdcontrol -vF /dev/fd0
example
root@kg-htpc# fdcontrol -vF /dev/fd0 fdcontrol: open(/dev/fd0): Device not configured
This is the usual response you get until you have set the correct format.
Change to ND format 0b: as user root fdcontrol -s 8,512,0xff,40,77,500,1,80,0,0,-mfm /dev/fd0
to verify:
root@kg-htpc# fdcontrol -vF /dev/fd0 /dev/fd0: 308 KB media type Format: 8,512,0xff,0x28,77,500,1,0x50,0,0,+auto Sector size: 512 Sectors/track: 8 Heads/cylinder: 1 Cylinders/disk: 77 Transfer rate: 500 kbps Sector gap: 40 Format gap: 80 Interleave: 0 Side offset: 0 Flags <AUTO>
Change to ND format 17b: as user root fdcontrol -f 1232 /dev/fd0
, verify
root@kg-htpc# fdcontrol -vF /dev/fd0 /dev/fd0: 1232 KB media type Format: 8,1024,0xff,0x35,77,500,2,0x74,1,0,+mfm Sector size: 1024 Sectors/track: 8 Heads/cylinder: 2 Cylinders/disk: 77 Transfer rate: 500 kbps Sector gap: 53 Format gap: 116 Interleave: 1 Side offset: 0 Flags <MFM>
TestFDC results
Here are the TestFDC results for this machine.
with a (temporary) 3.5 inch floppy drive
tingo@kg-t2$ date; cat fdc_msi_hermes_3.5.txt Sun Jul 1 13:27:02 CEST 2018 Report on FDC capabilities, issued 20/10/2004 0:05:41: Single-Density at 250 kbps ............................ Passed Single-Density at 300 kbps ............................ Not tested Single-Density at 500 kbps ............................ Passed Double-Density at 250 kbps ............................ Passed Double-Density at 300 kbps ............................ Not tested Double-Density at 500 kbps ............................ Passed Double-Density at 250 kbps / 128 byte sectors ......... Failed Double-Density at 300 kbps / 128 byte sectors ......... Not tested Double-Density at 500 kbps / 128 byte sectors ......... Failed
History
- 2018-08-11
- I created this page.
- 2018-07-02
- 8 inch machine - I connected the Tandon TM848E to the machine, as only the floppy. I used the FDADAP and a 24V power supply, and took 5V from the machine. Cables - straight 50-pin between TM848E and FDADAP, straight 34-pin between FDADAP and floppy controller in computer. The floppy is set to 5.25 inch in BIOS.
- 8 inch machine - I installed mtools[12], compiled ndfs, then I tested reading a few ND format floppies.
- 2018-07-01
- 8 inch machine - I started setting up the machine for the 8 inch floppy drive.
- 8 inch machine - I upgraded FreeBSD on the machine to the latest FreeBSD 8.4-stable.
tingo@kg-htpc$ uname -a FreeBSD kg-htpc.kg4.no 8.4-STABLE FreeBSD 8.4-STABLE #0 r335840: Sun Jul 1 19:46:09 CEST 2018 root@kg-htpc.kg4.no:/usr/obj/usr/src/sys/GENERIC i386
- 2011-09-26
- 5.25 inch machine - I upgraded the machine to FreeBSD 8.2-stable, using csup and make world.
root@kg-t2# uname -a FreeBSD kg-t2.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #1: Mon Sep 26 13:09:55 CEST 2011 root@kg-t2.kg4.no:/usr/obj/usr/src/sys/GENERIC i386
- 2011-09-25
- 5.25 inch machine - I did some testing with fdcontrol and fdformat. Whenever you have changed settings by using fdformat or fdcontrol, you need to change the setting back again after inserting a new floppy.