Morrow Designs Micro Decision
Projects and Customisations
- flexfd -- A UNIX (Specifically
FreeBSD 5.x) utility for reading and writing floppies to and from raw and teledisk
Flexfd is a FreeBSD 6.x utility to
read and write floppies to/from teledisk
images. It is an active development project constantly undergoing
change.
Currently, flexfd can perform
the following functions:
- Create a (standard compression) teledisk
image from a floppy or raw floppy image.
- Create a floppy from a teledisk
image.
- Convert between Advanced
Compression teledisk image and Standard
Compression images.
- Convert between diskimage(IMD) image and floppy or teledisk(TD0).
- Create a raw disk file from a teledisk
image.
- Automatically scan a floppy for sector size, sector count, number
of tracks, number of sides, recording method (FM or MFM), Interleave,
spanning (Osborne, etc), starting sector number (0 for Osborne, 1 for
most others), etc.
- On-the-fly formatting of diskettes being written.
- Config-file-driven floppy image parameter definitions.
- Verification of teledisk
files.
- Duplicate floppies.
Flexfd
can
handle most any floppy format, from 90k 8" and 180k 5.25" FM-recorded
CP/M diskettes to 3.5" MSDOS and musician synthesizer formats.
NOTE: Floppies must be
fixed-format. That is, they must have a constant sector count,
sector size and recording format (i.e. no changes from FM to MFM
recording among tracks). In particular, flexfd cannot accomodate
DEC RX02 or other such diskettes that have a first track recorded in
FM, with remaining tracks in MFM.
To accomodate the functionality needed to support some of the more
esoteric floppy formats (sector numbers starting with zero,
side-spanning of tracks, 8-inch drive support, etc.), some enhancements
are necessary to the FreeBSD fdc.c kernel floppy driver and associated
utility programs such as fdformat(1), fdread(1), fdwrite(1) and fdcontrol(1). FreeBSD 6.x as of October 2004
includes the basic functionality to make flexfd possible.
Work is currently underway to support the generation of Advanced Compression teledisk
images. This effort is proving to be difficult, as the LZH/LZSS compression algorithm used
by teledisk has not been duplicated exactly yet.
Efforts will also be made to port flexfd to the following, however they
are low-priority since their kernel floppy drivers will require
significant changes. The biggest problems are accessing sector
IDs and formatting tracks from the userland:
- linux 2.6+
- NetBSD 2.0+
- OpenBSD 3.5+
The
following are yet-to-be-documented projects:
- Adding
a 3.5-inch 720k floppy to your Morrow Rev. 2 MD2 or MD3 microcomputer.
Giving
your Morrow MD2 or MD3 the capability of 3.5-inch 720k floppy drives is
surprisingly easy.
- Using
TELEDISK 2.15 for
archiving and recreating floppies.
The
Ins and Outs of using teledisk
under MSDOS/PCDOS/DRDOS.
Some bugs and problems to watch for, as well as some practical tips for
using teledisk effectively.
- Successes
in interfacing and reading 8-inch diskettes on a PC Compatible running DOS.
How to
access 8-inch floppy drives using teledisk,
anadisk and 22dsk DOS utilities.
- Interfacing
and accessing 8-inch diskettes on a PC Compatible running FreeBSD 6.x.
YES,
this can be done! Since the FreeBSD
6.x kernel floppy driver was rewritten in the fall of 2004, FreeBSD now
has superb capabilities in handling the 8-inch drive beasts. A
bit of tweaking the kernel floppy driver, a little cable magic, and you
too can have a FreeBSD system reading your old CP/M disks.
- Adding
an IDE disk to an MD2
This
off-and-on project (mostly off due to time) is a pursuit in providing
the Morrow MD3 with hard disk via another project's Z80 IDE expansion
circuitry.
- Reconstruction
of the MD2 ROM Version 1.3
One
cold and snowy day, I disassembled, reworked and managed to produce a
fully documented and compilable MD2 ROM version 1.3 assembler source.
- Adding
an External Floppy Drive to a Revision 1 MD2
One
not-so-cold, but rainy day, I converted an old Sun 411 tape drive case
into an external floppy for one of my Morrow MD2s. This project
will describe the conversion of the drive case (you can probably use
most any external self-powered case, actually), the cabling and the
CP/M regeneration to add such a drive to your own system.