Floppy disk storage

The disk cabinet contains two 8″ floppy drives and their power supply. This unit is the heaviest of all with about 38 kg. Each floppy drive itself is just over 7 kg. Scroll down this page for an image gallery.

In the ECA system only drive 0 contains the circuitry to detect a write-enable tab. The other drive — lacking the sensor — is always write-enabled even when the notch in the floppy disk is visible. This is no great deal: you can write-protect the boot disk, but normally have no reason to write-protect the working disk.

The ECA system came with two floppy disks: a Signetics original system disk and a user’s disk. The HM system came with many more. See Disk images for the contents of these and other disks.

Disk format

The floppies use 77 tracks, with 32 sectors per track, of 128 bytes per sector. A group of 8 consecutive sectors forms a block (4 blocks per track). Files are allocated in multiples of blocks.

Filenames consist of 1 to 8 characters: letters, digits or one of the symbols ! " # % & ' * ; = ?. Files do not have a type or extension as such, but the convention is to use the character ; between the filename itself and the type of the file, e.g. RASM;S as an assembler source file and RASM;O as the corresponding output file. SDOS commands are stored on the disk as special files; the first letter of their filename is the byte 0x0f (Control-O). In Listings.txt above those characters are replaced by the @-sign.

Each disk contains a single list (directory) of files. The first track is reserved for this directory and for information such as the Disk Identity (the name of the floppy). The first tracks also contains a list of bad (unusable) blocks. The rest of the disk is available to files: 304 blocks (76 tracks with 4 blocks each).

Which of these 304 blocks is used for a particular file is indicated by a bitmap: a sequence of 304 bits (38 bytes exactly) where a 1 signifies that that block is used by the file.

The disk layout is shown below. Tracks and sector are indicated by (Tn-Sm), and offsets within a sector are shown in hexadecimal 00 to 7f; lengths are in decimal.

(T0-S0): disk information
00..01    2   millisecond timestap
02        1   number of files (appears to be sometimes off by one)
03..33   49   disk identity (ASCII characters, 0d terminated, null padded)
34..59   38   bad block bitmap
5a..7f   38   used block bitmap

(T0-S1) to (T0-S5): directory
00..07    8   filename for file 0, space padded; all null if the entry is unused
repeated for files 1 to 77; the last 16 bytes of sector (T0-S5) are null

(T0-S6) to (T0-S31): file block bitmaps
00..25   38   block bitmap for file 0
26..27    2   length of the file (number of sectors)
28        1   length of the last sector
29..4e   38   block bitmap for file 1
4f..50    2   length of the file (number of sectors)
51        1   length of the last sector
52..77   38   block bitmap for file 2
78..79    2   length of the file (number of sectors)
7a        1   length of the last sector
7b..7f    5   null padding
repeated for the remaining sectors

The directory can contain 78 filenames (5 sectors holding 16 filenames each, but the last two entries are unused). Also, the space for bitmaps is limited to 26 sectors containing 3 bitmaps each. The maximum number of files per disk is therefore 78.

The length of files can be computed by (length in sectors – 1) * 128 + length of the last sector.

Some pictures of the ECA system. This cabinet is now in working order.