Commodore PET BASIC Quick Reference COMMODORE PET BASIC QUICK REFERENCE CARD --------- --- ----- ----- --------- ---- (adapted from Commodore 64 Programmer's Reference Guide from Project 64) Link: Project 64 Page SIMPLE VARIABLES Type Name Range Real XY +/- 1.70141183E+38 +/- 2.93873588E-39 Integer XY% +/- 32767 String XY$ 0 to 255 characters X is a letter (A-Z), Y is a letter or number (0-9). Variable names can be more than 2 characters, but only the first two are recognized. ARRAY VARIABLES Type Name Single Dimension XY(5) Two-Dimension XY(5,5) Three-Dimension XY(5,5,5) Arrays of up to eleven elements (subscripts 0-10) can be used where needed. Arrays with more than eleven elements need to be DIMensioned first. SYSTEM VARIABLES Time TI Display the system clock in jiffy ticks TI$ Display/Set the system time in 24 hour clock format i.e. TI$="030012" ("HHMMSS") I/O Status ST Tape/File access status number. Pi (¼, Pi symbol) Value of Pi. 4.0 BASIC Disk Status DS Reads Current Disk Error Condition from dev 8 DS$ Reads Complete Error Condition to string "##, ERR TXT, Track, Sect" ALGEBRAIC OPERATORS RELATIONAL AND LOGICAL OPERATORS = Assigns value to variable = Equal - Negation < > Not Equal To ^ Exponentiation < Less Than * Multiplication > Greater Than / Division <= Less Than or Equal To + Addition >= Greater Than or Equal To - Substraction NOT Logical "Not" AND Logical "And" OR Logical "Or" Expression equals 1 if true, 0 if false SYSTEM COMMANDS LOAD"NAME" Loads a program from tape SAVE"NAME" Saves a program on tape LOAD"NAME",8 Loads a program from disk SAVE"NAME",8 Saves a program to disk VERIFY"NAME" Verifies that program was SAVEd without errors RUN Executes a program RUN xxx Executes program starting at line xxx STOP Halts execution END Ends execution CONT Continues program execution from line where program was halted PEEK(X) Returns contents of memory location X POKE X,Y Changes contents of location X to value Y SYS xxxxx Jumps to execute a machine language program, starting at xxxxx WAIT X,Y,Z Program waits until contents of location X, when EORed with Z and ANDed with Y, is nonzero. USR(X) Passes value of X to a machine language subroutine can also return value from m/l subroutine (is used like a function i.e. Y=USR(X)) EDITING AND FORMATTING COMMANDS LIST Lists entire program LIST A-B Lists from line A to line B REM Message Comment message can be listed but is ignored during program execution TAB(X) Used in PRINT statement. Spaces X positions on screen SPC(X) PRINTs X blanks on line POS(X) Returns current cursor position EDITING AND FORMATTING KEYS CLR/HOME Positions cursor to left corner of screen SHIFT+CLR/HOME Clears screen and places cursor in "Home" position SHIFT+INST/DEL Inserts space at current cursor position INST/DEL Deletes character at current cursor position CTRL When used with numeric color key, selects text color. May be used in PRINT statement. CRSR keys Moves cursor up, down, left, right on screen SHIFT Access Graphics characters in upper case/graphics mode and upper case characters in upper/lower case mode. ARRAYS AND STRINGS DIM A(X,Y,Z) Sets maximum subscripts for A; reserves space for (X+1)*(Y+1)*(Z+1) elements starting at A(0,0,0) LEN(X$) Returns number of characters in X$ STR$(X) Returns numeric value of X, converted to a string VAL(X$) Returns numeric value of X$, up to first non-numeric character CHR$(X) Returns ASCII character whose code is X ASC(X$) Returns ASCII code for first character of X$ LEFT$(A$,X) Returns leftmost X characters of A$ RIGHT$(A$,X) Returns rightmost X characters of A$ MID$(A$,X,Y) Returns Y characters of A$ starting at character X INPUT/OUTPUT COMMANDS INPUT A$ or A PRINTs "?" on screen and waits for user to enter a string or value INPUT "ABC";A PRINTs message and waits for user to enter value. Can also INPUT A$ GET A$ or A Waits for user to type one-character value; no RETURN needed DATA A,"B",C Initializes a set of values that can be used by READ statement READ A$ or A Assigns next DATA value to A$ or A RESTORE Resets data pointer to start READing the DATA list again PRINT"A= ";A PRINTs string "A=" and value of A ";" suppresses spaces - "," tabs data to next field PROGRAM FLOW GOTO X Branches to line X IF A=1 TO 10 IF assertion is true THEN execute following part of statement. IF false, execute next line number FOR A=1 TO 10 STEP 2 Executes all statements between FOR and corresponding NEXT, with A going from 1 to 10 by 2. Step size is 1 unless specified NEXT A Defines end of loop. A is optional GOSUB 2000 Branches to subtoutine starting at line 2000 RETURN Marks end of subroutine. Returns to statement following most recent GOSUB ON X GOTO A,B Branches to Xth line number on list. If X=1 branches to A, etc. ON X GOSUB A,B Branches to subroutine at Xth line number in list