Submitted by Steve Fewell
Set X to the current value of the REPEAT level (location &24).
If the current REPEAT level is greater than or equal to #&14 (20) then issue 'Too many REPEATs' error, as a maximum
of 20 REPEATs can be nested.
Call routine &9BBC to add the BASIC text pointer A offset (&0A) to the BASIC text pointer A base (&0B-&0C),
and reset the BASIC text pointer A offset to 1.
Store the current Program location (&0B-&0C) on the REPEAT start address stack (&0500-&0527), where the
MSB of the current program location (&0C) is stored at &0514 + X (where X is the current REPEAT level) and LSB of
the current program location (&0B) is stored at &0500 + X (where X is the current REPEAT level).
Increment &24 (the REPEAT level) to increase the number of nested REPEAT statements.
Jump to &900B to continue executing the program from the next statement after the REPEAT keyword.
|BA58||$||166 036||A6 24||LDX &24|
|BA5A||224 020||E0 14||CPX#&14|
|BA5C||176 167||B0 A7||BCS -89 --> &BA05 Too many REPEATs error|
|BA5E||032 188 155||20 BC 9B||JSR &9BBC Update BASIC Text pointer A (Add offset value & then reset offset to 1)|
|BA61||165 011||A5 0B||LDA &0B|
|BA63||157 000 005||9D 00 05||STA &0500,X|
|BA66||165 012||A5 0C||LDA &0C|
|BA68||157 020 005||9D 14 05||STA &0514,X|
|BA6B||$||230 036||E6 24||INC &24|
|BA6D||L||076 011 144||4C 0B 90||JMP &900B Process next BASIC program statement|