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 ADDC ADDRESS AFTER AGE AGOGO ALL ALLOW ALPHA ALT ALTO AND ANIMATE ANIMATING ANIMATION APPLAUSE ARRAY ARROW AS ASC ASCII ASCIICODE ASM ASTERISK ASYNC AT ATARI ATARIXL ATLAS ATMOSPHERE AUDIO AUTO AVAILABLE AY8910 BACK BACKGROUND BAG BANJO BANK BANKED BAR BARITONE BASIC BASS BASSOON BECKER BEG BEGIN BELL BELLS BELONG BETA BF BIG BIN BINARY BIRD BIT BITMAP BITMAPADDRESS BITMAPS BLACK BLIT BLOCK BLOWN BLUE BOOLEAN BOOM BORDER BOTTLE BOTTOM BOUNCE BOWED BOX BRASS BREATH BRIGHT BRIGHTNESS BROWN BUFFER BUT BY BYTE BYTES C128 C128Z C16 C64 C64REU CALL CALLIOPE CAN CAPS CAPSLOCK CASE CDOWN CELESTA CELLO CENTER CENTRE CGOTO CHAIN CHANNEL CHAR CHARANG CHECK CHIFF CHOIR CHR CHURCH CIRCLE CLAMP CLARINET CLASS CLAVI CLEAN CLEAR CLEFT CLINE CLIP CLOSE CLR CLS CMOB CMOVE COARSE COCO COCO1 COCO2 COCO3 CODE COLECO COLLISION COLON COLOR COLORMAP COLORS COLOUR COLOURMAP COLOURS COLUMN COLUMNS COMBINE COMMA COMMODORE COMPILE COMPLETE COMPRESS COMPRESSED COMPRESSION CONFIGURE CONNECTED CONSOLE CONST CONTRABASS CONTROL COPPER COPY COS COUNT CPC CPU6309 CPU6502 CPU6510 CPU6809 CPU7501 CPU8086 CPU8501 CPU8502 CPUSC61860 CPUSM83 CPUZ80 CREATE CRIGHT CRSR CRYSTAL CSET CSPRITE CSV CUP CURS CURSOR CYAN CYCLES CYMBAL DAC1 DARK DATA DEC DECLARE DEFAULT DEFDGR DEFINE DEGREE DELAY DELETE DESTINATION DESTROY DETECTION DEVICE DIALECT DIGITS DIM DIRECTION DISABLE DISTANCE DISTORTION DIV DLOAD DO DOJO DOJOKA DOUBLE DOWN DOWNB DOWNW DRAGON DRAGON32 DRAGON64 DRAW DRAWBAR DRUM DRUMS DSAVE DTILE DTILES DULCIMER DUP DWORD DYNAMIC EASEIN EASEOUT ECHOES ELECTRIC ELLIPSE ELSE ELSEIF EMBEDDED EMPTY EMPTYTILE EMULATION ENABLE END ENDCOPPER ENDIAN ENDIF ENDPROC ENDSELECT ENDSTORAGE ENDTYPE ENGLISH ENSEMBLE ENVELOPE EQUAL ERROR EVERY EXACT EXEC EXIT EXITIF EXP EXPAND EXPLICIT EXPLOSION F1 F2 F3 F4 F5 F6 F7 F8 FADE FALSE FAST FCIRCLE FELLIPSE FHEIGHT FI FIDDLE FIFTHS FILESIZE FILEX FILL FINAL FIND FINGER FIRE FIRST FLASH FLIP FLOAT FLUTE FONT FOR FORBID FRAME FRAMES FREE FREEZE FRENCH FRET FRETLESS FROM FSIZE FUJINET FUNCTION FWIDTH FX GAMELOOP GB GET GLOBAL GLOCKENSPIEL GMC GOBLINS GOLD GOSUB GOTO GR GRAND GRAPHIC GRAPHICS GRAY GREEN GREY GUITAR GUNSHOT HALO HALT HALTED HARMONICA HARMONICS HARP HARPSICHORD HAS HDBDOS HEIGHT HELICOPTER HEX HIRES HIT HOME HONKY HORIZONTAL HORN HSCROLL HTTP IAF ID IF IGNORE IMAGE IMAGEREF IMAGES IMPLICIT IN INC INCLUDE INCREMENTAL INDEX INK INKB INKEY INPUT INSERT INST INSTR INSTRUMENT INT INTEGER INTERRUPT INVERSE IS JAZZ JDOWN JFIRE JLEFT JMOVE JOY JOYCOUNT JOYDIR JOYSTICK JOYX JOYY JRIGHT JSON JUP KALIMBA KEY KEYBOARD KEYGET KEYSHIFT KEYSTATE KILL KOTO LATENCY LAVENDER LAYER LBOTTOM LBOUND LCASE LEAD LEFT LEFTB LEFTW LEN LET LIGHT LINE LITTLE LOAD LOCATE LOCK LOG LOGIN LONG LOOP LOWER MAGENTA MARIMBA MASKED MAX MELODIC MEMCLR MEMCONT MEMDEF MEMLEN MEMLOAD MEMOR MEMORIZE MEMORY MEMPEEK MEMPOS MEMRESTORE MEMSAVE MESSAGE METALLIC MID MIDI MILLISECOND MILLISECONDS MIN MINUS MMOB MMOVE MO5 MOB MOD MODE MONOCOLOR MONOCOLOUR MOVE MOVEMENT MOVING MSPRITE MSX MSX1 MUL MULTI MULTICOLOR MULTICOLOUR MUSIC MUTED NAME NAMED NARROW NEW NEWLINE NEXT NIBBLE NOISE NONE NOP NORMAL NOT NOTE NRM NTSC NUMBER NYLON OBOE OCARINA OF OFF OFFSET OLIVE ON ONLY OOHS OPACITY OPEN OPTION OR ORANGE ORCHESTRA ORCHESTRAL ORGAN ORIGIN OUT OVERDRIVEN OVERLAYED PAD PAGE PAINT PAL PALETTE PAN PAPER PARALLEL PARAM PARSE PASSWORD PATH PAUSE PC128OP PC1403 PCLS PEACH PEEKD PEEKW PEN PER PERCUSSIVE PERIOD PI PIANO PICCOLO PICK PING PINK PIPE PIZZICATO PLACE PLAY PLOT PLOTR PLUS PLUS4 PMODE POINT POKED POKEW POKEY POLYLINE POLYSYNTH POP PORT POSITION POSITIVE POST POUND POWERING PRECISE PRECISION PRESERVE PRESET PRESS PRESSED PRINT PROBABILITY PROC PROCEDURE PROGRAM PSET PSG PURPLE PUT QUERY RADIAN RAIN RANDOM RANDOMIZE RANGE RASTER RATE RATIO RAW READ READONLY READY REC RECEIVE RECORDER RECT RED REED REGISTER RELATIVE RELEASE RELOC REMEMBER REPEAT REPLACE RESET RESIDENT RESOLUTION RESPAWN RESTORE RESUME RETRIES RETURN REVERSE RGB RIGHT RIGHTB RIGHTW RING RLE RND ROCK ROLL ROT ROTATE ROUNDS ROW ROWS RUN RUNNING RUNSTOP SAFE SAVE SAWTOOTH SAX SBYTE SC3000 SCALE SCAN SCANCODE SCANSHIFT SCI SCREEN SCROLL SEASHORE SECOND SECTION SEEK SELECT SEMICOLON SEMIGRAPHIC SEND SEPARATOR SEQUENCE SERIAL SET SG1000 SGN SHADES SHAKUHACHI SHAMISEN SHANAI SHARED SHIFT SHOOT SHUFFLE SID SIGNED SIMPLE SIN SINGLE SIO SITAR SIZE SJ2 SLAP SLASH SLEEP SLICE SLOT SN76489 SOPRANO SOUND SOUNDTRACK SOURCE SPACE SPAWN SPC SPEED SPEN SPRITE SQR SQUARE STACK STANDARD START STATE STATIC STATUS STEADY STEEL STEP STOP STORAGE STORE STR STRING STRINGS STRIP STRPTR SUBSTRING SUCCESS SUM SUSPEND SWAP SWEEP SYNC SYNTH SYNTHBRASS SYNTHSTRINGS SYS SYSTEM TAB TAIKO TAN TANGO TARGET TASK TED TELEPHONE TEMPORARY TENOR TEXT TEXTADDRESS TEXTMAP THEN THREAD THRESHOLD TI TICK TICKS TILE TILEMAP TILES TILESET TIME TIMER TIMPANI TINKLE TO TO8 TOM TONK TPS TRANSPARENCY TRANSPARENT TRAVEL TREMOLO TRIANGLE TROMBONE TRUE TRUMPET TSB TUBA TUBULAR TURQUOISE TWEET TYPE UBOUND UCASE UGBASIC UNBANKED UNFREEZE UNIQUE UNSIGNED UNTIL UP UPB UPDATE UPPER UPW USE USING VAL VALUE VALUES VAR VARBANK VARBANKPTR VARIABLES VARPTR VBL VCENTER VCENTRE VECTOR VERTICAL VG5000 VHCENTER VHCENTRE VIBRAPHONE VIC VIC20 VIDEO VIOLA VIOLET VIOLIN VIRTUALIZED VISIBLE VOICE VOLUME VSCROLL VZ200 WAIT WARM WAVE WEND WHILE WHISTLE WHITE WIDE WIDTH WITH WITHOUT 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, _
}