Optimizing BASIC programs
Index
Saving memory
- Every line can use the maximum amount of 80 bytes. If you enter commands in a line, fill it up to the end and then press ENTER, the commands are converted to internal format and you can go on adding some bytes
String expressions at the end of a line can be written without the ending ": PRINT "Text
- Memory wasting 2-character name
variables can be deleted with CLEAR <name>: CLEAR AB
- You never need to write a THEN after an IF command, you only have to write LET for a following variable operation: IF X=10 PRINT X but IF X=10 LET X=0
- Brackets round expressions are only necessary if the command needs more than one expression (like MID$(...), RIGHT$(...) but CHR$ 13)
- INPUT and PRINT can take more than one expression with "," but PRINT writes the values in two columns and you can't use a semicolon ";": PRINT X,Y or PRINT X;":";Y or INPUT "Text: ";X$,"Text2: ";Y$
- CURSOR becomes smaller with a single counter: 0 = 0,0; 95 = 23,3: CURSOR 24 instead of CURSOR 0,1
- For small memory usage use the single-letter variables A-Z($)
- Delete unused arrays with ERASE
- You can use DIM and ERASE with more arrays with ",": DIM I$(0)*80,F(9) und ERASE I$,F
- IF conditions can be written without brackets around them: IF X<9 AND y>10 ...
- IF accepts numbers and variables as conditions: <=0 false, >0 true: IF X PRINT...
- INKEY$ can be used like a normal string variable, i.e. in IF-conditions, it's empty when no key was pressed: IF INKEY$="" GOTO...
- GOTO and GOSUB can jump to numbers and letters which are given through variables: GOTO X$ (X$="A") or GOSUB X (X=10)
- ON ... GOTO/GOSUB can be used for case selections
- Sending data over the serial interface can be made with a LPRINT command after OPEN, too
- Lines on screen can be put together with LINE (x0,y0)-(x1,y1): LINE -(x2,y2): LINE -(x3,y3)
Operator sequence: INT, MDF, STR$, CHR$, ABS, SGN, PEEK, etc. are used before + - * / and logical operators
- Operators + - * / are executed before AND OR NOT
- LINE sequence: LINE (X1,Y1)-(X2,Y2)(,X)(,pattern in
hexadecimal format)(,B/BF)
- PRINT and GPRINT with a ";" at the end of the expression counts the cursor one position forwards (breaks the line with PRINT)
- Use the RESERVE mode to save time (@ makes such commands executed like enter!): F: IF or N: NEXT X@
- GOTO and GOSUB can jump to a string expression at the start of a line: GOTO "Calc" ... 100 "Calc"
- With some "," you can leave values in expressions unchanged while you change a certain one: OPEN ",,,,,&1A"
- The DEF key can start programs fast, labels can be written like this: 10 "A" CLS : WAIT 0 ...
- AREAD Var$ gives Var$ the value of the last printed value on the screen: DEF + A : 10 "A" AREAD I$
- You can save space when using PRINT = LPRINT to print your results. PRINT = PRINT stops this
- Variable definitions are faster with , as separator: A=1,B=2,C=4
The fastest commands of PC-1360:
- Use multiplikation instead of power (^)
- FOR .. NEXT (STEP ..)
- ASC, CHR$
- AND, OR, NOT
- INT, MDF, SGN, ABS
- GPRINT
- ON .. GOTO/GOSUB
- GOTO
- USING
- VAL, STR$
Copyright © Simon Lehmayr (Parts of my page were made with the help of Laurent Duveau)
If this page has no navigation, click here.
Impressum