Classic Mac experts – do you know if/where the contents of the system error handler area on a Mac Plus (so using 128kB ROMs) are defined?

This area runs from 0x3FFC80 to 0x3FFCFF – between the primary frame buffer and the sound/PWM buffer – on a 4MB system. Memory locations 0x3FFC80-0x3FFCBF seem to be used to store all 16 CPU registers, but the rest seems difficult to figure out.

#mac #marchintosh #system7 #apple #retrocomputing

@me_ The standard DSAT handler in ROM doesn’t have much use for the contents of registers; they’re never displayed to the user.

But MicroBug, which started shipping in the 128KiB ROM, does.

@me_ Starting around offset 0x1452 in the 128KiB ROM is the implementation for MicroBug. It indeed uses the area from 0x3FFC80 to 0x3FFCBF for register contents storage, and then the rest appears to be for variables and storage used by MicroBug itself.
@me_ For example, 0x3FFCFC seems to be a location containing the address from which the `DM` (Dump Memory) command should start printing values. The `TD` (Total Display) command loads this with 0x3FFC80 and then jumps to the entry point for the `DM` command. See: https://preterhuman.net/macstuff/technotes/tn/tn1136.html
TN 1136: MicroBug: The ROM Debugger

@me_ 0x3FFCC0 looks to be where MicroBug keeps PC, and 0x3FFCC4 looks to be where MicroBug keeps SR.
@me_ The rest can probably be sussed out looking at MicroBug's disassembly. 0x3FFCD4 has something to do with the serial port(s)...