cjs
Veteran Member
I've long found the built-in machine-language monitors in my vintage computers frustrating, when they even have a monitor at all, and I've finally sat down to do something about this. So I've designed a new monitor, called "tmon," that I feel will be a more powerful and convenient to use yet still be fairly compact, suitable for dropping into a ROM in computers that have space for this (e.g., into the option ROM socket on a NEC PC-8001, or loading into the Language Card on an Apple II). Currently I have only an 8080 version, but I do intend to write 6800 and 6502 versions as well, and perhaps even 6809, 68000 and 8086 versions.
The goals of this project, as described in the README, are to have:
If you want to do me the favour of trying it out, attached is a ZIP file with the full README and TMONLVT.COM, which should run on any CP/M system. The ASCII display requires a VT100-compatible terminal supporting reverse and underline character attributes, but aside from that it will work fine on any output device that handles backspace, CR and LF in the expected way. There seem to be some bugs (do read the platform release notes at the end of the README); in particular the K "call" command works on my command-line CPU simulator but not on CP/M for some reason. The README describes where to find the source. (If you want to build from source and experiment with changing it, I'm happy to provide support for that, or even pair-program with you to get you started.)
I'm also happy to look at building machine-specific versions for whatever machine you'd like to use it on. As you can see in the TODO list, Kyocera-85 machines (NEC PC-8201, TRS-80 Model 100, etc.) are high on my list for ports in the near future, as is PC-8001, but I'm happy to look at anything else.
The goals of this project, as described in the README, are to have:
- Reasonably small code size: under 2 KB.
- Very minimal RAM usage: just 2-3 dozen bytes so it can run on e.g. a 6802 with only its 128 bytes of internal RAM.
- Significantly better features than many home computers' built-in monitors, including properly handling the usercode stack (or working without a valid usercode stack).
- A user interface focused on convenience. For example, remembering recently used addresses so you need not continually re-type them and allowing you to intersperse hex and ASCII data input.
- Efficient use of the display, allowing you to display just what you need and minimise non-informational printing to reduce useful information scrolling off the screen.
If you want to do me the favour of trying it out, attached is a ZIP file with the full README and TMONLVT.COM, which should run on any CP/M system. The ASCII display requires a VT100-compatible terminal supporting reverse and underline character attributes, but aside from that it will work fine on any output device that handles backspace, CR and LF in the expected way. There seem to be some bugs (do read the platform release notes at the end of the README); in particular the K "call" command works on my command-line CPU simulator but not on CP/M for some reason. The README describes where to find the source. (If you want to build from source and experiment with changing it, I'm happy to provide support for that, or even pair-program with you to get you started.)
I'm also happy to look at building machine-specific versions for whatever machine you'd like to use it on. As you can see in the TODO list, Kyocera-85 machines (NEC PC-8201, TRS-80 Model 100, etc.) are high on my list for ports in the near future, as is PC-8001, but I'm happy to look at anything else.