Jump to content

Floppy disk hardware emulator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Blackvisionit (talk | contribs) at 01:18, 10 August 2010 (New page). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:New unreviewed article

A hardware emulator, same size as a 3½ drive

Old PCs, keyboards and industrial automation equipment such as programmable machinery and industrial robots may not have a USB interface. Data and programs are still loaded from a floppy disk, which can be damaged in industrial environments. This outdated equipment may not be replaced due to cost, or requirement for continuous availability.

Hardware emulators with USB / SD / MMC interface

Unlike general-purpose desktop personal computers, existing software emulation and virtualization tools can't solve this problem

  • because of the lack of an operating system
  • because of the use of a customized / non-standard operating system

A hardware floppy disk emulator interfaces directly to a floppy disk controller (FDC), allowing users

FDC interface

PC and numeric control FDC standard interfaces differ in some signals, on which hosts may depend. Emulators, unlike real drives, can be designed to interact with both standards and even with other non-standard / custom FDC interfaces (e.g.: Japanese NEC PCs).

Pinout comparison: PC / Numeric control
Pin Direction PC NC
2 Out Density Select Disk Change
4 - - -
6 - - -
8 Out Index Hole Index Hole
10 In Motor A Drive 0
12 In Drive B Drive 1
14 In Drive A -
16 In Motor B Motor
18 In Step Direction Step Direction
20 In Step Pulse Step Pulse
22 In Write Data Write Data
24 In Write Enable Write Enable
26 Out Track 0 Track 0
28 Out Write Protect Write Protect
30 Out Read Data Read Data
32 In Head Select Head Select
34 Out Disk Change Ready

Raw data, received from the Write Data pin and sent to the Read Data pin, is MFM / FM / GCR encoded. A hardware PLL or a software-based filter component translates encoded data into physical sectors (identified by TRACK:SECTOR:SIDE), more compact and suitable for storage.

Numeric control signals are often affected by strong and regular disturbing sources. Emulators designed to handle such a high amount of glitches usually rely on software-based filters.

Data storage

Raw tracks (all sectors belonging to both sides of a track) are read from and written to a fast volatile internal RAM track buffer. The emulator, upon receiving a Step Pulse,

  • saves the current modified track to a permanent storage or sends it to a remote storage
  • changes the current track number according to the Step Direction
  • loads the new track from local or remote storage

Simple emulators are not equipped with an internal permanent storage and directly send data to a remote storage or to the data exchange module. Complete stand-alone emulators instead are equipped with flash memory with no need of a remote link or an external memory device always plugged in. Simple and complete emulators, however, share an intrinsic limit: a big seek time (> 12ms), due to current track saving and new track loading operations. Some hosts could reject any of these emulators.

Best emulators are equipped with FRAM memory, that replaces both RAM track buffer and flash memory, allowing permanent internal storage and minimum (< 1ms) seek time.

Data exchange

Data exchange from and to an user memory device can be implemented as

  • direct access to a special partition (e.g.: a 1.44Mb partition on a USB key)
  • floppy file system translation (e.g.: FAT12 floppy ←→ USB key folder)
  • ISO floppy image support (e.g.: raw floppy ←→ .iso USB key file)

All of these implementation can be extended to a multi-floppy support.

Direct access and ISO image implementations can also emulate system / non-standard floppies, whose file system can't be simply translated.

ISO image implementation can also be coupled with a virtual floppy drive to seamlessly emulate floppy drives on a laptop.