What techniques were used for implementing breakpoints on the ZX81? Traditionally for the 8086
int 3h is used, for the 8080 on CP/M with DDT
RST 7 as single byte replacements, 6502 has the
I can't figure out what would be used for the ZX81 (or Spectrum) as it's barely possible to hook any of the interrupt vectors.
Obviously this could be done by physical hardware or by single stepping each instruction and intercepting
call / jr / jp etc but this would run much slower (but would also allow debugging ROM routines)
Sadly none of the online documentation I can find for the various debuggers / monitors explains how exactly they work. (I suspect from the ZXDB documentation it's using the single step instruction approach)