CP/M Running :)

A project log for Pocket-Sized Imsai-Style Z80 Board

Similar to the old IMSAI 8080, but small enough to fit in your pocket :)

nickNick 04/12/2021 at 18:260 Comments

Been a while since I logged here, but have been working on lots of things. Downloaded the assembly source for CP/M 2.2, designed an interface board for talking to an Arduino (nano), wrote a bit of BIOS code for console and disk access, and got everything running :)

I had this working through the nano's USB port, but again, that means having an extra computer involved, which feels like it defeats the point! So now IO have a PS/2 keyboard hooked directly to the nano, as well as a 20x4 LCD display.

The floppy drive is actually a uSD card (32G lol). Each floppy is in its own directory (a, b, c, d) and each directory has 77 files (00-76), one per track. Each file is 128*26 bytes, storing the 26 sectors of the track. seek()/read()/write() commands from the Arduino access these sectors within the appropriate file.

I also wrote a bootloader to read the loaded CP/M bytes off track 0 from floppy a. This bootloader is saved on the Z80 board in file 0x20, which can be loaded from the front panel, and, when run, will copy CP/M from disk a/track 0 into memory and then jump to the CP/M boot code.