[ale] Reading old XDF formatted floppies

Michael B. Trausch mbt at zest.trausch.us
Tue Oct 6 14:27:29 EDT 2009


On Tue, 2009-10-06 at 10:51 -0600, JK wrote:
> Is this the OS/2 eXtended Disk Format, or the Emulators Inc Xformer
> Disk Format?

It is IBM's XDF (eXtended Density Format).[1]

It would appear that fine-grained control of the FDC is required to read
the media.  I thought to boot up PC DOS 7 to try to read it by loading
the XDF.COM program after booting the OS, but it is also unable to read
the disks in the USB floppy drive that I have.

Because XDF uses variable-sized tracks _and_ variable-sized disk
sectors, attempting to read these disks in a device that only
understands the traditional 1.44 MB floppy format (that is, eighteen
512-byte sectors per track, 80 tracks, 2 heads) won't work.

It looks like these are my options:

 * Find a way to tell my USB floppy drive how to read the XDF disks.
The xdfcopy program in Linux can read these for normal floppy disk
drives that are attached to an Intel 82072A (or compatible) floppy disk
controller.
 * Acquire a floppy disk drive that attaches to one of these standard
controllers (as found on just about any motherboard).
> 
> In either case, I'd start by dd-ing an image of the floppy to a local
> file.  Then explore emulators or virtualized environments that
> understand
> that disk format.
> 
> http://www.faqs.org/faqs/atari-8-bit/faq/section-85.html 

Unfortunately, this will not work because XDF is a different physical
(low-level) disk format, not a filesystem format.  Because of the
different format of the disk, my current drive emits errors while
reading the diskettes.  This makes sense, because the tracks cannot be
found by the drive:

[ 8447.546504] sd 5:0:0:0: [sdg] Unhandled sense code
[ 8447.546515] sd 5:0:0:0: [sdg] Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE
[ 8447.546524] sd 5:0:0:0: [sdg] Sense Key : Medium Error [current] 
[ 8447.546536] Info fld=0x8
[ 8447.546539] sd 5:0:0:0: [sdg] Add. Sense: Recorded entity not found

The drive that I have is:

http://www.superwarehouse.com/SmartDisk_USB_Floppy_Drive_Titanium_Edition/FDUSB-TM2/p/284644

My (uneducated, at present) guess is that this drive (and other USB
floppy drives) do not expose a low-level enough programming interface to
be able to read media that is formatted in any format that isn't a
standard format (which means XDF, 2M, etc), whereas a standard FDC can
be programmed to read these formats from software.  I am trying to find
programming information that would enable me to get access to the
controller in this drive to see if I am able to read these disks then,
but I'm not entirely sure that's going to even be possible.

What I'd really like to have is a super-programmable controller that
lets software decide the encoding strategy for the disk (this would
make it possible for me to read Apple formatted 400K and 800K disks,
which the PC FDC cannot read since it does MFM encoding in hardware,
and the aforementioned Apple-formatted disks use GCR and constant linear
velocity instead of a static RPM for the drive.

It appears that the drive that I have is able to read Microsoft
DMF-formatted floppy disks (that is, 80 sectors, 512-byte sectors, 21
sectors per track) just fine, so it seems that the hardware does
implement more than just the standard PC formats, but not things like
XDF.  I do not have any 2M formatted floppies, but I probably cannot
read those either without finer-grained control of the drive's built-in
controller.

It looks as if the xdfcopy from fdutils uses ioctl calls to control the
FDC while working with XDF formatted floppies.  But, USB mass storage
devices (including floppy drives) do not expose a controller, so far as
I'm aware.

	--- Mike

-- 
Blog:  http://mike.trausch.us/blog/
Misc. Software:  http://mike.trausch.us/software/

“The greater danger for most of us lies not in setting our aim too
high and falling short; but in setting our aim too low, and achieving
our mark.” —Michelangelo



More information about the Ale mailing list