User:Tingo/Floppy machines

From NDWiki
< User:Tingo
Revision as of 13:20, 12 August 2018 by Tingo (talk | contribs) (→‎Hardware: better text for link)
Jump to navigation Jump to search

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 32-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.

References