Because the monitor is now only called from system_breakpoint_handler
(which already saves and restores all of the registers), it is now
unneccessary to save and restore all of the registers in the monitor.
Modifies system_breakpoint_handler so that all fox32 registers are saved
on the stack in a predictable order, and they are printed using a loop.
Also comments out two seemingly unneccessary additions in the monitor's
hex printing functions.
The ROM is the same before and after this commit:
$ sha256sum fox32-orig.rom fox32.rom
75b169dafbf7dc77cd114f7d05d9c1e8459122bc2bd4178a90aba6fd8dc7372e fox32-orig.rom
75b169dafbf7dc77cd114f7d05d9c1e8459122bc2bd4178a90aba6fd8dc7372e fox32.rom
The conversion was performed with a few sed commands and manually
unrolled in monitor/keyboard.asm:
find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0$/data.strz \1/g'
find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0 /data.strz \1 /g'
find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0x00 /data.strz \1 /g'