In order of importance:
I only have 8kB to work with of course... so it's in order of importance.
If I keep using software interrupts, it's a given that some minimal number of BIOS routines will need to be implemented. I can always fake some of them while developing (example, I could return a conservative value for amount of memory).
That said, except for screwing with video routines, I do not see how breaking within ISR will require me to perform my own custom I/O... of course I could be missing something important and it's nearly midnight where I am. By design, the debugger will destroy the screen contents (on invocation!).
For games, this might not be a big deal since the screen will likely be updated again after debugging is done (and yes, the current video mode will have to be saved too). For text user interfaces... probably not so much. It might be possible to circumvent this by using a serial port, but I can't be sure.
Or, I could just use the glyphs within the ROM BIOS itself at all time and say 'screw using BIOS interrupts for output' .
- Invoke on keypress- implies break/step anywhere under any circumstance
- Step through/over subroutines (I think that's the exact reason int 0x01 and 0x03 exist)
- Allow loop to finish then break (a.k.a 'break when CX = 0')
- Peek and Poke
- Break 'x' instructions from current IP. Gets around breakpoint problem on a small scale .
- (Optionally) create a new stack frame and jump to arbitrary code (akin to g=c800:0005, for example).
I only have 8kB to work with of course... so it's in order of importance.
If I keep using software interrupts, it's a given that some minimal number of BIOS routines will need to be implemented. I can always fake some of them while developing (example, I could return a conservative value for amount of memory).
That said, except for screwing with video routines, I do not see how breaking within ISR will require me to perform my own custom I/O... of course I could be missing something important and it's nearly midnight where I am. By design, the debugger will destroy the screen contents (on invocation!).
For games, this might not be a big deal since the screen will likely be updated again after debugging is done (and yes, the current video mode will have to be saved too). For text user interfaces... probably not so much. It might be possible to circumvent this by using a serial port, but I can't be sure.
Or, I could just use the glyphs within the ROM BIOS itself at all time and say 'screw using BIOS interrupts for output' .