Close

It runs CP/M now!

A project log for POLON 7880

8-bit microcomputer, based on the Polish CPU, manufactured thirty years ago.

marek-wicekMarek Więcek 07/10/2024 at 21:470 Comments

It's been a while since last update on this project, but it is certainly not dead.

Since beginning one of my goals was running CP/M on that piece of vintage Polish hardware. And I am happy to announce that this particular goal post had been finally reached today. I was finally able to but CP/M 2.2 and load/execute some programs under that OS.

I must admit it wasn't easy. First I had to prepare bootloader to fetch some some code from CF card and copy it to RAM. From software point of view interfacing Compact Flash card is quite easy task (it is certainly easier that connecting modern SD card to such vintage system) but for some reason initially I was unable to get stable and repeatable results. Some cards weren't working at all while some other were highly unstable, dropping some data during transfers. I was able to find only one card that appeared to be "compatible" with POLON. Fortunately with some help on on-line forums I was able to track down the reason behind such behavior. It turned out that I made a little mistake while designing hardware and omitted buffer on data lines between CPU and memory card. Single 74HC245 chip solved the problem.

While I was able to reliably copy the code between card and RAM, I began slow process of writing CP/M bios, bridging the gaps between my hardware and vintage OS. Implementing console and disk related I/O routines turned out to be relatively easy. After few days I saw prompt and was able to execute commands. Unfortunately at this point system had been extremely unstable. Finding and fixing all the bugs took me another few weeks.

I set myself a deadline. I decided it would be nice to had it running before 11th of July - 30th thirtieth anniversary of  death of  Garry Kildall - creator of CP/M. I thought that running his system on piece of historical Polish hardware would be a nice way to celebrate his memory.

At this point system is capable of running smaller programs and built in commands. There are still things to be done. At this point file system is read only, because wrote procedure haven't been implemented yet. I also need to add support of additional partitions on CF card, pretending to be additional drives. Memory use need to be optimized, because at this point CP/M only uses fraction of available resources.

Next "bigger" goal would be running some game, like "Zork" or "Collosal Cave Adventure" on my system.

I think it is worth to admit that POLON is still capable of running TinyBasic, that was his original "user interface" basically from the beginning. Desired mode can be selected by the user at boot time - we can either run Basic from EPROM or load CP/M from CF card.

Discussions