The FLEX User's Group has documentation on the FLEX disk operating system for the 6800 and 6809.

A great tool for developing new software for FLEX is Michael Evenson's SWTPC 6800/6809 Emulator. I used this emulator to update all of my FLEX utilities and the software below. I have written a Windows Help file based on the 6809 FLEX Users Guide but I have added some information on the 6800 version.

FLEX OnLine Help (ZIP 32k)

Modifying SWTPC 6800 FLEX 2

The SWTPC MF-68 floppy disk system used a DC-1 or DC-2 controller card and single-sided 35-track
5.25-inch disk drives. SWTPC FLEX 2 was written for this system. This version will work with a 5.25-inch
double-sided 40-track drive (IBM 360K) but it will only use one side and 35 tracks. It will even work the
720K 3.5 inch drives.

To modify FLEX 2 to use 40 or 80 tracks the NEWDISK command must be changed to format more
tracks. The existing FLEX 2 will read the number of tracks from the formatted disk and use all of the space.
To modify FLEX 2 to read double-sided drives the disk driver routines must be changed in addition to the
NEWDISK command.

Modifying SWTPC 6800 FLEX 2 for the DC5 (PDF 49k)

Disk Drivers Source Double Sided (TXT 6K)

Newdisk Source Doubel Sided (TXT 15k)

Boot Loader Program

The floppy disk boot code in SWTBUG doesn't work as well as it should. (A few more bytes would have made it solid.) Here is a better boot loader.
Boot Loader Source Code

From your terminal emulator; press L to start a S1 download, then send this text file. The program starts at memory address 0300.
S1 Format Boot Loader

Original Source Code

Back in 1981 I disassembled the I/O and disk drivers for TSC FLEX 2.0 for SWTPC 6800 and added comments based on the 6809 FLEX Adaptation Guide. I also disassembled the NEWDISK program. I have compared the listing to the binaries and they seem to match byte for byte.

Disk Drivers Source (TXT 6K)

Newdisk Source (TXT 13K)


I created a floppy disk controller debugger that will read and write sectors and load a FLEX binary file. It can be in RAM or ROM. This version supports a double sided and is for a controller with a DRQ / IRQ status register. This includes the DC-3, DC-4, DDC16, or my DC-5.

 J  xxxx  Jump to location xxxx
 M  xxxx  Examine and alter memory location
 N    Examine next memory location
 V    Examine same memory location
 B    Examine previous memory location
 Z  xx  Select and restore drive xx to track 0
 T  ttss  Read sector ss on track tt into BUFFER and display it
 L  ttss  Load binary file starting at track tt and sector ss. Display transfer address.
 W  ttss  Write BUFFER into sector ss on track tt
 $    Return to SWTBUG

The source code is identical for both the 6800 and 6809 versions, just the hardware addresses change.

This 6800 version is located at $C000 so it can go in an EPROM on the MP-A2 CPU board. Use the SWTBUG Z command to jump to this monitor.

DiskBug $C000 Monitor Source (PDF 23K)

DiskBug $C000 Monitor Source (TXT 14K)

DiskBug $C000 Monitor S1 file (TXT 2K)

This 6809 version is located at $F000 so it can go in an EPROM or a RAM on the MP-09 CPU board.

DiskBug $F000 Monitor Source (PDF 24K)

DiskBug $F000 Monitor Source (TXT 14K)

DiskBug $F000 Monitor S1 file (TXT 2K)



I fixed the DIR and Date utilites so they work with dates past 1999.

DIR Source (TXT 9k)

DATE Source (TXT 3k)

Michael Holley's SWTPC Collection Home Page