In case you wanted to run WordStar on your Mac, [Tom Harte] offers CP/M for OS/X, and it looks like it would be a lot of fun. Of course you might be happier running Zork or Turbo Pascal, and you can do that, too.
There are plenty of Z80 emulators that can run CP/M, but what we found most interesting about this one is that it is written in Objective C, a language with a deep history in the Mac and NeXT worlds.
The project is logically laid out if you’d like to read the code or attempt changes. There are sections for the BIOS, the processor, and RAM memory. There’s also a directory with the CP/M BDOS interface. Once you have that, it is relatively easy to boot CP/M on the virtual Z80 computer.
If you ever built a 64K memory board for a computer of this era, it is mildly unsettling to see the whole thing reduced to about 50 lines of code. The CPU is a little better at nearly 1500 lines of code. We remember puzzling out the BDOS and BIOS interfaces in the 1980s and it required reading assembly language. If you wanted to learn today, there are plenty of easy-to-read examples in C, C++, or Objective C.