Post by JorgeWhat's "NEWSTT"?
NEWSTT = (assembly) label for Next/New Statement. Read the source, Luke.
http://jamtronix.com/files/applesoft.html#NEWSTT
*--------------------------------
* PERFORM NEXT STATEMENT
*--------------------------------
D7D2- BA NEWSTT TSX REMEMBER THE STACK POSITION
D7D3- 86 F8 STX REMSTK
Or see Microsoft's original assembly
http://www.pagetable.com/docs/M6502.MAC.txt
NEWSTT
WHENEVER A STATEMENT FINISHES EXECUTION IT
DOES A "RTS" WHICH TAKES
EXECUTION BACK TO "NEWSTT". STATEMENTS THAT
CREATE OR LOOK AT SEMI-PERMANENT STACK ENTRIES
MUST GET RID OF THE RETURN ADDRESS OF "NEWSTT" AND
JMP TO "NEWSTT" WHEN DONE. "NEWSTT" ALWAYS
CHRGETS THE FIRST CHARACTER AFTER THE STATEMENT
NAME BEFORE DISPATCHING. WHEN RETURNING
BACK TO "NEWSTT" THE ONLY THING THAT
MUST BE SET UP IS THE TEXT POINTER IN
"TXTPTR". "NEWSTT" WILL CHECK TO MAKE SURE
"TXTPTR" IS POINTING TO A STATEMENT TERMINATOR.
IF A STATEMENT SHOULDN'T BE PERFORMED UNLESS
IT IS PROPERLY FORMATTED (I.E. "NEW") IT CAN
SIMPLY DO A RETURN AFTER READING ALL OF
ITS ARGUMENTS. SINCE THE ZERO FLAG
BEING OFF INDICATES THERE IS NOT
A STATEMENT TERMINATOR "NEWSTT" WILL
DO THE JMP TO THE "SYNTAX ERROR"
ROUTINE. IF A STATEMENT SHOULD BE STARTED
OVER IT CAN DO LDWD OLDTXT, STWD TXTPTR RTS SINCE THE TEXT PNTR
AT "NEWSTT" IS ALWAYS STORED IN "OLDTXT".
THE ^C CODE STORES [CURLIN] (THE
CURRENT LINE NUMBER) IN "OLDLIN" SINCE THE ^C CHECK
IS MADE BEFORE THE STATEMENT POINTED TO IS
EXECUTED. "STOP" AND "END" STORE THE TEXT POINTER
FROM "TXTPTR", WHICH POINTS AT THEIR TERMINATING
CHARACTER, IN "OLDTXT".