Great news today when Dave Dunfield gave permission to port his MON85 code over to the SBC-85 8085 based Single Board Computer. If you have not used Dave’s debug monitors before, you are in for a treat. When using the monitor, MON85 is loaded into the base 2732 EPROM and the monitor plays a supervisory role in the running of the application program either in RAM or (a bit trickier) in the expansion ROM. You can jump over directly to get the goodies here or read further to get a feel for what the diagnostic monitor does is to look at its commands seen below.
A ON/OFF - Enables/Disables auto register display.
B [0-7 address] - Sets/Removes/Displays breakpoints.
C <src> <dest> <size> - Copy memory
D <address> - Displays memory in disassembly format.
E <address> - Edit memory contents.
F <start> <end> <value> - Fill memory with a value.
G [address] - Begin/Resume program execution.
I <port> - Input from port
L [address] - Download from host
M <address> - Displays memory in dump format.
O <port> <data> - Output to port
R [rp value] - Sets/Displays register contents.
S ON|OFF - Enables/Disables subroutine tracing.
T ON|OFF - Enables/Disables TRACE mode.
U [address] - Set/Displays program base address.
? - Display command summary
As you can see from the command set, the diagnostic monitor allows you to set breakpoints in your program (at least that portion located in RAM), disassemble memory into 8085 mnemonics, copy / fill / display memory, port I/O, and trace the program as it executes while it displays register values with each instruction.
After getting the go-ahead from Dave this morning I ported the code (v1.2 with Roman Borik’s 2012 enhancements) over to the SBC-85 which required just a little bit of syntax manipulation for my assembler, swap out some code to use the SID and SOD rather than a USART. Finally, I had to trim it back a bit to fit into the 2K limit since the SID/SOD bloated the code compared to a USART.
Thanks again to Dave for yet one more contribution to the vintage computer toolbox!