If you want to run an old CP/M program — maybe you want to run WordStar or play StarTrek — you have several options. One is to acquire some classic hardware. You can also build a new computer using a Z80 or some other processor that will emulate a Z80. Finally, you can emulate old hardware on your current computer. The iz-cpm project from [ivanizag] takes this last approach. Unlike some emulators, iz-cpm doesn’t try to emulate everything in one simulated environment. Instead, it directly accesses your file system so it allows CP/M executables to run more as though they were a native program.
You can think of it as Wine for CP/M. The code is portable to Linux, Windows, or MacOS. The author mentions, though, that it won’t run on CP/M itself! The program can run an executable standalone which means you could set .COM files up to execute automatically if you wanted to.
The machine looks like a Kaypro and emulates an ADM-3A. There is a script to download interesting CP/M software, for instance WordStar, Basic, and Zork. You can trace calls and even CPU instructions if you want to debug things. Speaking of debugging, though, you might actually need to do that.
When trying out the program, we noticed that WordStar had some odd behavior. Saving files to drive A works, but if you save anywhere else, the file winds up on drive A, anyway. This confuses WordStar because it tries to reread the file from the other disk so it blanks out the text you were working on. We reported the problem on GitHub and in a couple of hours the author had it fixed. You have to love the open source community.
The program is written in Rust which seems to be gaining traction lately. The program is a great way to get into CP/M hacking, especially if you are interested in Rust programming.