I wrote:
>Here is another irritating one... the ON ERROR handling is absolutely
>APPALLING!
Well fortunately I've sorted that one out rather quickly.
1. The difference between "GO TO 80" and "fred" is that "fred" is an
instruction which calls a procedure and then terminates, whereas "GO
TO 80" is an instruction which alters some system variables and then
terminates (after that, the system interprets the system variables and
goes to 80). In other words, there is a breakpoint between "GO TO 80"
and line 80 but no breakpoint between "fred" and the first instruction
of fred.
ON ERROR GOTO 80 is useless for trapping Escape because when you press
Escape an error occurs, it executes GO TO 80, and then even before it
has thought about actually going to line 80 it reads the Escape key
again and breaks in.
ON ERROR fred is quite useful, however, because the first instruction of
fred can disable the Escape key before the system gets another chance to
read it.
2. When the ROM searches for the ON ERROR instruction after an error
has occurred, it forgets to save the page number in CHADP. After
that it seems that something somewhere is selecting page CHADP and
thus blasting the ON ERROR statement away. Fortunately this can be
fixed by installing a simple routine in CMDV which saves the current
page in CHADP (at least I think so - I haven't noticed anything going
wrong so far).
imc