diff options
Diffstat (limited to 'unprotbas.rst')
-rw-r--r-- | unprotbas.rst | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/unprotbas.rst b/unprotbas.rst index d0ba0dc..3143baf 100644 --- a/unprotbas.rst +++ b/unprotbas.rst @@ -163,9 +163,9 @@ Variable name table scrambling Bad next-line pointer Every line of tokenized BASIC contains a line length byte, which - BASIC uses as a pointer to the next line of code. Before printing - the READY prompt, BASIC iterates over every line of code in the - program, using the next-line pointers, in order to delete any + BASIC uses as a pointer to the next line of code. Before executing + an immediate mode command, BASIC iterates over every line of code in + the program, using the next-line pointers, in order to delete any existing line 32768 (the previous immediate mode command). If any line's pointer is set to zero, that means it points to itself. @@ -178,9 +178,9 @@ Bad next-line pointer (due to END, STOP, an error, Break key, or even System Reset), BASIC will get stuck again. - This doesn't *have* to be done with the last line in the - program. The "poisoned" line could be followed by more lines of - code, though they could never actually execute. + This doesn't *have* to be done with the last line in the program, + though it normally is. The "poisoned" line could be followed by more + lines of code, though they could never actually execute. Line 32100 in the example above does this job, taking advantage of the STMCUR pointer used by BASIC, which holds the address of the |