Hi folks, just got to a good spot with my latest project and thought I'd share. I shared this on the s100computers group recently but thought comp.os.cpm might appreciate it too.
I've recently soldered up an Altair 8800c using a repro CPU card, Mike Douglas's 8800c case and front panel, and the
s100computers.com Serial IO and RAM+ROM cards (including some modifications to get the latter working with front panel deposits). Once the Altair was running great I wanted to play with CPM, but I didn't want to set about building or acquiring floppy drives and disks.
So I modified Lifeboat CPM 2.2 and wrote a python script to exchange drive data over serial, making the PC into a virtual floppy drive. Its working well so I thought I'd share.
Please note this idea isn't really new. There is already APE and the FDC+ which both do similar. But I don't have the FDC+ card and I wanted something running on Linux...and it was a fun challenge in its own right.
Also, this shares the console and the disk data over the same serial connection. Basically a 0xFF is sent to trigger a command sequence when disk access is performed, which the PC side intercepts and exchanges the correct info, otherwise anything else sent over serial is passed to the terminal.
Please find the code and some prebuilt binaries at
https://github.com/barberd/altair-cpm-serialdisk.
Right now its coded to use the Serial IO card USB module, but it would be trivial to modify the asm files to use other serial cards like the MITS SIO/2SIO cards. Would welcome pull requests for such.
Hope its helpful to someone...or at least interesting.
Don