GOSUB 文を使っていると、FOR 文の中から、GOSUB した時に、FOR 文で使っていた変数を上書きしてしまうミスをよくします。
@MAIN
FOR X=0 TO 10
LOCATE X,0:PRINT X
GOSUB @SUB
NEXT
END
@SUB
FOR X=0 TO 3
PRINT X
NEXT
RETURN
DEF文はGOSUB と同じ様に、いった先の処理をして、戻ってくるものですが、いった先で作った変数は、移動前の変数とは別に管理されます。
@MAIN
FOR X=0 TO 10
PRINT X
CALL "SUB"
NEXT
END
DEF SUB
FOR X=0 TO 3
PRINT X
NEXT
END