CP/M
Implementing CP/M on the V6Z80P
I became interested in the V6Z80P after I had bought an old Z80 SBC via Ebay. I connected it to a power supply and to the two 5,25“ drives I still had lying around and yes - it did work. Not all of the time, and the floppies weren't that reliable. So I went looking for a Z80 to IDE interface and found Phil's solution for it.
I also found the V6Z80P and immediately ordered it. The idea of having a 16 Mhz Z80 to play with was too tempting.
I am not a game person - that is I never took the time to understand the world of sprites and bit-planes (but I do use Microsoft FSX and the Condor Soaring simulator rather a lot) - so for the time being those qualities of the V6Z80P are wasted on me. The ability to reprogram the OSCA also intrigues me, but will require further study. Implementing CP/M seemed a feasible project - I had done that before, although many, many years ago.
I had recently downloaded the original CP/M source and the SBC had come with the official Digital Research manuals. I had all the necessary stuff, and thought it could be done within a number of days. It should just be a matter of adapting Disk I/O and character I/O.
However implementing CP/M took much more time than I had expected. I had to refamilarize myself with different assemblers and linkers and had to study the documentation to be able to adapt the original CP/M files for the V6Z80P. I had to find a way to use old 8080 assembly language source on a modern PC. I also had to understand the FLOS routines: to use (parts) of them for the CP/M system.
Besides that: I had forgotten how addictive assembler programming can be. And how easy it is to make tiny but disastrous mistakes!
In The project archive is a working CP/M 3.0 or Plus for the V6Z80P. You will need a terminal emulator and a serial connection from your PC to the V6Z80P. There is some extra stuff, like Wordstar and Basic in the archive. You will have 4 virtual disks of each 8 Mb. Seems nothing nowadays, but it is more than enough for CP/M.
The archive also contains pdf's of the original manuals.
I will upload the source and a description of how I assembled it all, what programs to use etc. later on.
Next step will be to make a banked version, which would free some memory and use some more of V6Z80P's amazing capabilities.
I am also working on a program that will let you copy files between FLOS and CP/M.
The purpose of this project was to see if it could be done. CP/M gives acces to a lot of retro software and it is an easy operating system if you have the documentation available.
However this could not have been done without FLOS; it provided a solid bridge to the PC-environment. This has been fun and very instructive. Thanks to Phil for designing such a nice little Z80 machine.
If only we could have a 100 Mhz Z80…