TurboMON is a Z80 monitor and toolkit for the SAM Coupé. It provides a controlled execution environment for SAM programs, supporting single-stepping, tracing, breakpoints, as well as a selection of utility functions.
To allow the execution of code in ROM and RAM, and in any memory configuration, we must maintain full control at all times. The Z80's lack of debug registers leaves little choice but to interpret the target Z80 code to execute it. While this reduces execution speed to around 2% of normal SAM speed, it is fast enough to allow most programs to be used almost normally, instead of single-stepping everything.
As the name suggests, the monitor is optimised for speed, running over 100 times faster than an existing SAM monitor program. A number of common instruction blocks are recognised, allowing faster execution without a separate decode stage for each. Common delay and sound loops are also short-circuited to improve overall speed, when not single-stepping.
TurboMON was written in the 6 months after finishing University, and in parallel with work on Pac-Man. Shortly after finishing TurboMON in early 1994, I left to work in Thailand for 6 months. The program was left in the capable hands of Steve Nutting, who released it for me as part of the SC_Monitor Pro pack.
Version 1.0, last updated January 1994.
The startup screen, in monitor mode:
The main utility functions: Number View, Text View, Memory Search, System Status, Memory Graph and Expression Evaluation: