The following keywords form the entire vocabulary of the language.
The keywords must be written in UPPER case. Therefore PRINT
is a valid
command, while print
is not.
16BIT AAHS ABS ACCORDION ACOUSTIC ADD ADDRESS AGE AGOGO ALL ALT ALTO AND APPLAUSE ARRAY ARROW AS ASC ASM ASTERISK AT ATARI ATARIXL ATMOSPHERE AUTO BACK BACKGROUND BAG BANJO BANK BANKED BAR BARITONE BASS BASSOON BEG BEGIN BELL BELLS BELONG BETA BF BIN BINARY BIRD BIT BITMAP BITMAPS BLACK BLIT BLOWN BLUE BOOM BORDER BOTTLE BOWED BOX BRASS BREATH BRIGHT BRIGHTNESS BROWN BUFFER BUT BYTE CALL CALLIOPE CAN CAPS CAPSLOCK CASE CDOWN CELESTA CELLO CENTER CENTRE CHAR CHARANG CHIFF CHOIR CHR CHURCH CIRCLE CLARINET CLASS CLAVI CLEAN CLEAR CLEFT CLINE CLIP CLS CMOVE COCO CODE COLECO COLLISION COLON COLOR COLORMAP COLORS COLOUR COLOURMAP COLOURS COLUMN COLUMNS COMMA COMMODORE COMPLETE COMPRESS COMPRESSED CONST CONTRABASS CONTROL COPY COS COUNT CPC CRIGHT CRSR CRYSTAL CSPRITE CUP CURSOR CYAN CYCLES CYMBAL DARK DATA DEBUG DECLARE DEFAULT DEFINE DEGREE DELAY DELETE DESTINATION DIM DISABLE DISTANCE DISTORTION DIV DLOAD DO DONE DOUBLE DOWN DRAGON DRAW DRAWBAR DRUM DRUMS DTILE DTILES DULCIMER DWORD ECHOES ECM ELECTRIC ELLIPSE ELSE ELSEIF EMBEDDED EMPTY EMPTYTILE ENABLE END ENDIF ENDSELECT ENDSTORAGE ENGLISH ENSEMBLE EQUAL EVERY EXACT EXEC EXIT EXPAND EXPLICIT EXPLOSION FALSE FAST FI FIDDLE FIFTHS FILEX FILL FINGER FIRE FIRST FLIP FLOAT FLUTE FONT FOR FRAME FRAMES FREE FRENCH FRET FRETLESS FROM FUNCTION FX GAMELOOP GET GLOBAL GLOCKENSPIEL GOBLINS GOLD GOSUB GOTO GR GRAND GRAPHIC GRAY GREEN GREY GUITAR GUNSHOT HALO HALT HALTED HARMONICA HARMONICS HARP HARPSICHORD HAS HEIGHT HELICOPTER HEX HIDDEN HIDE HIT HOME HONKY HORIZONTAL HORN HSCROLL ID IF IGNORE IMAGE IMAGES IN INDEX INK INKEY INPUT INSERT INSTR INSTRUMENT INT INTEGER INVERSE IS JAZZ JDOWN JFIRE JLEFT JOY JOYCOUNT JRIGHT JUP KALIMBA KEY KEYBOARD KEYSHIFT KEYSTATE KILL KOTO LAVENDER LAYER LBOUND LEAD LEFT LEN LET LETTER LIGHT LINE LOAD LOCATE LOCK LONG LOOP LOWER MAGENTA MAP MARIMBA MASKED MAX MCM MELODIC MEMORIZE MEMORY METALLIC MID MILLISECOND MILLISECONDS MIN MINUS MMOVE MOD MODE MONOCOLOR MONOCOLOUR MOVE MSX MUL MULTICOLOR MULTICOLOUR MUSIC MUTED NAMED NEW NEXT NOISE NONE NOP NORMAL NOT NOTE NYLON OBOE OCARINA OF OFF OLIVE ON ONLY OOHS OPACITY OPTION OP_DEC OP_INC OR ORANGE ORCHESTRA ORCHESTRAL ORGAN ORIGIN OUT OVERDRIVEN OVERLAYED PAD PAGE PAINT PALETTE PAN PAPER PARALLEL PARAM PCLS PEACH PEEK PEN PER PERCUSSIVE PERIOD PI PIANO PICCOLO PICK PINK PIPE PIZZICATO PLAY PLOT PLUS PMODE POINT POKE POLYLINE POLYSYNTH POP POSITION POSITIVE POUND POWERING PRECISION PRESERVE PRESET PRESSED PRINT PROBABILITY PROC PROCEDURE PSET PURPLE PUT RADIAN RAIN RANDOM RANDOMIZE RASTER RATE RATIO RAW READ READONLY RECORDER RED REED REGISTER RELATIVE RELEASE REMEMBER RENDER REPEAT REPLACE RESOLUTION RESPAWN RESTORE RETURN REVERSE RGB RIGHT RING RND ROCK ROLL ROW ROWS RUN RUNSTOP SAFE SAWTOOTH SAX SCAN SCANCODE SCANSHIFT SCI SCREEN SCROLL SEASHORE SECOND SECTION SELECT SEMICOLON SEMIGRAPHIC SEPARATOR SEQUENCE SET SGN SHADES SHAKUHACHI SHAMISEN SHANAI SHARED SHIFT SHIFTS SHOOT SHOW SIGNED SIN SINGLE SITAR SIZE SLAP SLASH SLICE SOPRANO SOUND SOUNDTRACK SOURCE SPACE SPAWN SPC SPRITE SQR SQUARE STACK STANDARD STATE STEEL STEP STOP STORAGE STR STRING STRINGS SWAP SWEEP SYNTH SYNTHBRASS SYNTHSTRINGS SYS SYSTEM TAB TAIKO TAN TANGO TASK TELEPHONE TEMPORARY TENOR TEXT TEXTADDRESS TEXTMAP THEN THREAD THRESHOLD TI TICK TICKS TILE TILEMAP TILES TILESET TIME TIMER TIMPANI TINKLE TO TOM TONK TRANSPARENCY TRANSPARENT TREMOLO TROMBONE TRUE TRUMPET TUBA TUBULAR TURQUOISE TWEET TYPE UBOUND UNIQUE UNSIGNED UNTIL UP UPPER USE USING VAL VALUE VAR VARIABLES VARPTR VBL VERTICAL VIBRAPHONE VIDEO VIOLA VIOLET VIOLIN VISIBLE VOICE VOLUME VSCROLL WAIT WARM WEND WHILE WHISTLE WHITE WIDTH WITH WOODBLOCK WORD WRITE WRITING XCURS XGR XGRAPHIC XOR XPEN XTEXT XY XYLOPHONE YCURS YELLOW YGR YGRAPHIC YIELD YPEN YTEXT YX ZX
In ugBASIC (like CBM BASIC) you do not need to isolate keywords from each other or from other identifiers with any separator, like spaces.
Identifiers are used to give a name to labels, variables, constants, procedures and functions. You may choose any name for identifier. Anyway, you have to follow some rules:
$
) identify string variables;pippo
and pIPPO
are different symbols
Statements and commands can be separated using the colon symbol (:
)
character, and can end with LF or CR+LF characters. The separator is not required if there's only one statement in one
line, as the following example:
WHILE NOT finished : PRINT "continue" : WEND WHILE NOT finished PRINT "continue" WEND
If you begin a line with single quote (') character, or put it after
colon symbol, it will be considered a comment until the end of the line.
The same for the REM
command, that is used to begin a comment.
' comment REM comment line = 1 :' comment line = 1 :REM comment
Whitespace (e.g. spaces and tabs) are ignored, since they are not needed. You are encouraged to use them if you need to make make the program more readable, or to remove it if you need to join competitions where number of lines is an important factor.
Labels can be used to identify any point of the source code.
Labels are used by some statements, like GOTO
and GOSUB
statements.
Labels must be appended with a colon character (:
).
GOSUB subroutine1 END subroutine1: PRINT "subroutine1 has been called!" RETURN
As in traditional BASIC language, labels can be numeric, as well.
Line numbers are treated like special labels by ugBASIC, but they
must not followed by colon character (:
).
The underscore (_
) character at the end of the line
can be used to split a single line to multiple lines, in order
to be more readable.
' Write this very long line in a short one. DIM xx AS BYTE(32) = # { _ x1, x2, x3, x1, x2, x3, x1, x2, x3, x1, x2, x3, x1, x2, x3, x1, _ x2, x3, x1, x2, x3, x1, x2, x3, x1, x2, x3, x1, x2, x3, x1, x2, _ }