132,133 100 GOSUB CALCULATE This can save a lot of bytes for a frequently called routine. But remember, each variable used for a GOSUB or GOTO address uses one of the 128 possible variable names. A disadvantage of using variable names for GOTO and GOSUB references is when you try to use a line renumbering program. Line renumbering programs will not change references to lines with variable names, only to lines with numbered references. Here's a small routine you can add to the start of your BASIC program (or the end if you change the line numbers) to print out the variable names used in your program. You call it up with a GOTO statement in direct mode: 1 POKE 1664, PEEK(130): POKE 1665, PEEK (131) 2 IF PEEK(1664) = PEEK(132) THEN IF PEEK(1665) = PEEK(133) THEN STOP 3 PRINT CHR$(PEEK(PEEK(1664) + PEEK (1665) * 256))); 4 IF PEEK(PEEK(1664) + PEEK(1665) * 256)) > 127 THEN PRINT""; 5 IF PEEK(1664) = 255 THEN POKE 166 4, 0: POKE 1665, PEEK(1665) + 1: GO TO 2 6 POKE 1664, PEEK(1664) + 1: GOTO 2 See COMPUTE!, October 1981. 132,133 84,85 VNTD Pointer to the ending address of the variable name table plus one byte. When fewer than 128 variables are present, it points to a dummy zero byte. When 128 variables are present, this points to the last byte of the last variable name, plus one. It is often useful to be able to list your program variables; using locations 130 to 133, you can do that by: 10 VARI = PEEK(130) + PEEK(131) * 2 56 :REM This gives you the start o f the table. 20 FOR VARI = VARI TO PEEK(132) + P EEK(133) * 256 - 1: PRINT CHR$(PEE K(VARI) - 128 * PEEK(VARI > 127)); CHR$(27 + 128 * PEEK(VARI) > 127) );:NEXT VARI 25 REM this finds the end of the va ri able name table (remember table is end + 1). then PRINTs ASCII cha