The Z80-MBC2 is a Z80-based computer which uses an ATMega32 microcontroller to mediate IO, memory access, etc. It runs CP/M (amongst other things). You can find out more here. Here are a few projects for the machine, designed to run in an 80x24 VT100/ansi terminal.
I use z88dk and Visual Studio Code to develop for the Z80-MBC2 in C, and YAZE-AG to test code before uploading to the Z80-MBC2 for final testing. Other on-Mac software (installed via The MacPorts Project): cool-retro-term, and minicom to provide serial communications and xmodem.
Quick download link: Old School IOS
The Z80-MBC2 is designed to work with "modern" Z80 chips, which are CMOS and running at 8MHz (with an option to run at 4MHz). This is a version of the IOS Arduino sketch S220718-R290823_IOS-Z80-MBC2 which increases the number of available frequency dividers, so that older Z80 chips can be used.
The frequency options are accessed using the user and reset keys, in the same way as all the other boot options. Select "6 [multifreq] Change Z80 type and clock speed", then choose Z80 type, then Z80 clock speed, then press the reset key to restart. The Z80 type just limits the upper frequency available: it's there as an extra step to minimize the chance of sending too high a frequency to an old chip.
I've used my machine with two ceramic Z80 chips from 1979: a Z80 at 2.7MHz and a Z80A at 4MHz. Both of these chips are NMOS, but I haven't had any problems and both ran ZEXALL successfully (if slowly). Still, be aware that, in theory, these chips aren't within the specifications of the Z80-MBC2. But, I mean, look at it.
Additional note: the Z80-MBC2 is usually built with a 16MHz crystal, but it can use a 20MHz crystal instead. This increases the reported frequencies, so the multifrequency sketch displays a warning message if it detects a 20MHz crystal.
You can set up a Raspberry Pi as a terminal for your Z80-MBC2. It works directly with a monitor and keyboard, but also over wifi, so you can use your Z80-MBC2 on computers and other devices connected to the same network. Details can be found on the Raspberry Pi page.
And if you want a standalone terminal experience, you can add an old tablet and bluetooth keyboard. Again, details can be found on the Raspberry Pi page.
HP45TERM is a simulator for the HP-45 calculator. Since it was a large project, and since the resulting executables are multi-platform, it has its own page, here.
Quick download link: Adventure
This is Mike Goetz's A02 version of Adventure (aka Colossal Cave Adventure) for CP/M, from 1980, which is very close to the original mainframe version by William Crowther and Don Woods. (Sourced from ifarchive.org.) I've made very few changes, through hex-editing rather than any recompilation. My changes are limited to fixing/clarifying the save procedure, which uses the CP/M SAVE command to dump memory to an executable. The zip file includes a Z80-MBC2 disk image, a folder of all the files on that image, and a folder of Goetz's original Fortran source and executables. There are also full installation and execution instructions, including how to use the save procedure.
Quick download link: Meadow
Meadow grows six different types of flowers on your terminal. Flower types and positions are chosen at random and once planted each flower grows, flowers, dies and slowly disappears. It's actually quite calming to watch. The zip file includes C code and the executable. Press the user key to return to the CP/M prompt.
Quick download link: Z80Clock
Z80Clock is, as the name suggests, a clock which runs on the Z80 and displays time, date and temperature on a terminal. The user can specify the date format to be used, and whether or not to create alerts, which flash the user LED for 30 seconds at regular intervals (so you can get up and walk around, for example). Alerts can be set to occur at intervals between 5 and 300 minutes, and the first alert can occur either after the first interval has past, or on the next quarter, half or full hour. There's also, possibly, an 'Easter egg'. The zip file includes C code and the executable. Press the user key to return to the CP/M prompt.
Quick download link: Call trans opt: received.
Exactly what you'd expect. Although somewhat limited by the use of an 80x24 VT100/ansi terminal screen, and a 8MHz-or-less Z80, it valiantly tries to emulate the Matrix 'character drop'. The character strings are of differing lengths, with differing numbers of the lowest few characters brighter than the rest. The zip file includes C code and the executable. Press the user key to clear the screen and return to the CP/M prompt.