Z80Pack by Udo Munk is a great CP/M emulator. It will emulate a number of hardware architectures including the Altair and IMSAI systems, but I primarily use it CP/M development environment. I can quickly write or edit CP/M programs and on my MacBook and then transfer them over to my Kaypro or Z-100 for testing. My favorite CP/M 2.2 environment to work in is NZ-COM, also known as Z-System. NZ-COM is sort of like CP/M on steroids. It adds directory naming, clock support and instant OS footprint rescaling just to name a few. I have it installed on my Apple II CP/M partition but unfortunately, NZ-COM is for Z80 PCs only so it won’t run on my 8085-based Z-100. Udo’s guide to installing Z80Pack is straightforward and Classiccmp already has a great tutorial on setting up NZ-COM within Z80Pack, so nothing new for me to add there.
However, if you’re using Z80Pack on a Mac, you’ll want to alter your terminal escape character sequences to work within the CP/M environment. Otherwise, your backspaces and arrow keys will not work. You can a Z80Pack-compatible terminal profile for your Mac here. With this profile, you can launch a program like ZFiler and navigate through the file list with your arrow keys now instead of having to remember control character combinations.