The use of RST instructions fails to work on the CP/M platform because the RST vectors typically conflict with the area of memory used by the BDOS or CCP, corrupting them and causing a crash.
If I change the line in plat/cpm/build.py
cflags = ["-DUSE_I80_RSTS"]
to
cflags = [""]
then my CP/M programs work correctly. Can you make this the default on the CP/M platform?