; > Variables ; Handle BASIC variables ; CLEAR - Clear heap ; ================== ; LOMEM=TOP ; VAREND=TOP ; DATAPTR=PAGE ; STACK=HIMEM ; Clear dynamic variables .cmdCLEAR ; Fall through .VarsHeapInit ; &BBAC mov SV_TOP,SV_LOMEM ; LOMEM=TOP, start of heap mov SV_TOP,SV_VAREND ; VAREND=TOP, end of heap ;.VarsXXX jsr pc,VarsXXX .VarsClear adr SV_VARS,r1 ; Point to variables addresses mov #(SV_FNPTR+2-SV_VARPTR)/2,r0 ; Number of addresses .VarsClearLp ; jsr pc,Debug_DumpRegsHex clr (r1)+ ; Clear this pointer dec r0 bne VarsClearLp ; Loop for all pointers rts pc .VarsXXX ; &BBCF mov SV_PAGE,SV_DATA ; DATAPTR=PAGE, start of program mov SV_HIMEM,SV_STACK ; Clear BASIC stack rts pc