--- title: Function List slug: docs-sb4-function-list system: SmileBASIC 4 type: reference source: https://smilebasicsource.com/forum/thread/docs-sb4-function-list content_id: 19450 created: 2020-05-10 scraped: 2026-06-21 --- # Function List someone improve this later also these should be links | `ABS` | absolute value | | `ACCEL` | read accelerometer | | `ACLS` | reset graphics | | `ACOS` | inverse cosine | | `ANIMDEF` | define sprite/text animation | | `ARRAY#` | create float array | | `ARRAY$` | create string array | | `ARRAY%` | create int array | | `ARYOP` | array operation | | `ASC` | convert character to ascii value | | `ASIN` | inverse sine | | `ATAN` | inverse tangent | | `ATTR` | set text rotation attribute | | `BACKCOLOR` | set background color | | `BEEP` | play sound effect | | `BEEPPAN` | set beep pan | | `BEEPPIT` | set beep pitch | | `BEEPSTOP` | stop beep | | `BEEPVOL` | set beep volume | | `BGMCHK` | check music | | `BGMCLEAR` | clear song definition | | `BGMCONT` | unpause music | | `BGMPAUSE` | pause music | | `BGMPITCH` | set music pitch | | `BGMPLAY` | play music | | `BGMSET` | define song | | `BGMSETD` | define song with `DATA` | | `BGMSTOP` | stop music | | `BGMVAR` | get/set music variable | | `BGMVOL` | set music volume | | `BGMWET` | set music effector strength | | `BIN$` | convert number to binary string | | `BIQUAD` | apply biquadratic filter | | `BQPARAM` | generate `BIQUAD` filter | | `BREAK` | exit loop | | `BREPEAT` | set button repeat rate | | `BUTTON` | get button input | | `CALL` | call function by name | | `CALLIDX` | get sprite/text id in callback | | `CASE` | start CASE block | | `CEIL` | round number upwards | | `CHKCALL` | check if function exists | | `CHKCHR` | get charcater from text screen | | `CHKFILE` | check if file exists | | `CHKLABEL` | check if label exists | | `CHKMML` | check if MML is valid | | `CHKVAR` | check if variable exists | | `CHR$` | convert ascii value to string | | `CLASSIFY` | check if number is infinity or NaN | | `CLIPBOARD` | get/set editor clipboard | | `CLS` | clear text screen | | `COLOR` | set text color | | `COMMON` | define shared function | | `CONST` | define constant | | `CONTINUE` | jump to start of loop | | `CONTROLLER` | get controller status | | `COPY` | copy data between arrays | | `COS` | cosine | | `COSH` | hyperbolic cosine | | `DATA` | define data | | `DATE$` | get current date | | `DEC` | decrement variable | | `DEFARG` | get function argument | | `DEFARGC` | get function argument count | | `DEFOUT` | set function output | | `DEFOUTC` | get function output count | | `DEG` | convert radians to degrees | | `DELETE` | delete file | | `DIALOG` | display dialog | | `DIM` | create array, get array dimensions | | `DTREAD` | decode date string | | `EFCEN` | enable/disable effector | | `EFCSET` | set effector parameters | | `EFCWET` | set effector strength | | `ELSE` | | | `ELSEIF` | | | `END` | end function | | `ENDCASE` | end case block | | `ENDIF` | end if | | `ENDLOOP` | end loop | | `ENUM` | define enum | | `ENVFOCUS` | get/set envprogram focus | | `ENVINPUT$` | get direct mode history | | `ENVLOAD` | copy data from the main interpreter to the subprogram interpreter | | `ENVLOCATE` | ? | | `ENVPROJECT` | set subprogram project | | `ENVSAVE` | copy data from subprogram to main program | | `ENVSTAT` | get/set interpreter status | | `ENVTYPE` | check which interpreter is running | | `EXEC` | execute code in slot | | `EXP` | calculate power of /e/ | | `FADE` | set screen fade color | | `FADECHK` | check screen fade status | | `FFT` | fast fourier transform | | `FFTWFN` | generate FFT window | | `FILES` | get list of files | | `FILL` | fill array | | `FLOAT` | convert int to float | | `FLOOR` | round number down | | `FONTINFO` | get info about character | | `FOR` | for loop | | `FORMAT$` | string formatting | | `FREEMEM` | check free memory | | `GARRAY` | get graphics page array | | `GBOX` | draw unfilled rectangle | | `GCIRCLE` | draw unfilled circle | | `GCLIP` | set graphics drawing region | | `GCLS` | clear graphics page | | `GCOLOR` | set graphics drawing color | | `GCOPY` | copy graphics data | | `GFILL` | draw filled rectangle | | `GLINE` | draw line | | `GLOAD` | load data from an array to the graphics page | | `GOSUB` | run subroutine | | `GOTO` | goto | | `GPAINT` | fill enclosed area on graphics page | | `GPGET` | get color of pixel | | `GPSET` | draw pixel | | `GPUTCHR` | draw text on graphics page | | `GSAMPLE` | set graphics wrap mode | | `GSAVE` | save graphics data to array | | `GTARGET` | set current graphics page | | `GTRI` | draw filled triangle | | `GUPDATE` | update graphics after modifying `GARRAY` | | `GYROA` | get gyroscope angle | | `GYROSYNC` | reset gyroscope | | `GYROV` | get gyroscope velocity | | `HELPGET` | get data from manual | | `HELPINFO` | get data from manual | | `HEX$` | convert number to hexadecimal string | | `HSV` | convert color to HSV | | `IF` | if | | `IFFT` | inverse fast fourier transform | | `INC` | increment variable | | `INKEY$` | get keyboard input | | `INPUT` | input values | | `INSERT` | insert data into array | | `INSPECT` | display information about value | | `INSTR` | string search | | `INT` | convert number to integer | | `IRREAD` | read data from IR camera | | `IRSPRITE` | display IR camera image on sprite | | `IRSTART` | start IR camera | | `IRSTATE` | get IR camera state | | `IRSTOP` | stop IR camera | | `KEY` | set function key | | `KEYBOARD` | get raw keypresses | | `LAST` | last index in string/array (`LEN(x)-1`) | | `LAYER` | set layer mode | | `LCLIP` | set layer clipping region | | `LEFT$` | get characters from start of string | | `LEN` | get length of string/array | | `LFILTER` | set layer filter | | `LINPUT` | string input | | `LMATRIX` | set layer transform matrix | | `LOAD` | load program file into slot | | `LOADG` | load image onto graphics page | | `LOADV` | load string/array | | `LOCATE` | set text cursor position | | `LOG` | calculate logarithm | | `LOOP` | start of infinite loop | | `MAINCNT` | get frame count | | `MAX` | get maximum value in array/list | | `MBUTTON` | | | `METAEDIT` | | | `METALOAD` | | | `METASAVE` | | | `MID$` | get part of string | | `MILLISEC` | read millisecond timer | | `MIN` | get minimum value in array/list | | `MOUSE` | get mouse data | | `NEXT` | end of `FOR` loop | | `ON` | jump table | | `OPTION` | set compiler option | | `OTHERWISE` | default condition in CASE/WHEN block | | `OUT` | function output | | `PCMCONT` | unpause PCM | | `PCMPOS` | get/set PCM playback position | | `PCMSTOP` | stop pcm | | `PCMSTREAM` | set PCM array/sample rate | | `PCMVOL` | set PCM volume | | `PERFBEGIN` | start performance timer | | `PERFEND` | stop performance timer | | `POP` | remove last item from array | | `POW` | exponent | | `PRGDEL` | delete line from slot | | `PRGEDIT` | choose slot/line to edit | | `PRGGET$` | get line from slot | | `PRGINS` | insert lines in slot | | `PRGNAME$` | get slot name | | `PRGSEEK` | | | `PRGSET` | set line in slot | | `PRGSIZE` | get slot size | | `PRINT` | display text | | `PROJECT` | get/set current project folder | | `PUSH` | add item to end of array/string | | `PUSHKEY` | add keypress to input buffer | | `RAD` | convert degrees to radians | | `RANDOMIZE` | seed randomizer | | `READ` | read `DATA` | | `REM` | comment | | `REMOVE` | remove data from array | | `RENAME` | rename file | | `REPEAT` | start of `REPEAT`/`UNTIL` loop | | `RESIZE` | resize array | | `RESTORE` | set `DATA` read position | | `RESULT` | get result of LOAD/DIALOG/etc. | | `RETURN` | return from function/GOSUB | | `RGB` | convert between color and separate RGB channels (0-255) | | `RGBF` | convert between color and separate RGB channels (0-1) | | `RIGHT$` | get characters from end of string | | `RINGCOPY` | copy data to(?) ringbuffer | | `RND` | get random integer | | `RNDF` | get random number from 0-1 | | `ROUND` | round number to nearest | | `RSORT` | sort an array from largest to smallest | | `SAVE` | save slot | | `SAVEG` | save graphics | | `SAVEV` | save string/array | | `SCROLL` | shift data in text screen | | `SGN` | get sign of number | | `SHIFT` | remove item from beginning of string/array | | `SIN` | sine | | `SINH` | hyperbolic sine | | `SNDMSBAL` | set subprogram sound balance | | `SNDMVOL` | set master sound volume | | `SNDSTOP` | stop all sounds | | `SORT` | sort array from smallest to largest | | `SPANIM` | start sprite animation | | `SPCHK` | check sprite animation status | | `SPCHR` | set sprite to definition | | `SPCLR` | delete sprite | | `SPCOL` | set sprite collision settings | | `SPCOLOR` | set sprite color | | `SPCOLVEC` | set sprite collision vector | | `SPDEF` | define sprite definition | | `SPFUNC` | set sprite callback function | | `SPHIDE` | hide sprite | | `SPHITINFO` | get collision information | | `SPHITRC` | check collision between sprite and rectangle | | `SPHITSP` | check collision between sprites | | `SPHOME` | set sprite origin | | `SPLAYER` | set sprite layer | | `SPLINK` | link sprites | | `SPOFS` | set sprite position | | `SPPAGE` | set sprite graphics page | | `SPROT` | set sprite rotation | | `SPSCALE` | set sprite scale | | `SPSET` | create sprite | | `SPSHOW` | unhide sprite | | `SPSTART` | unpause sprite animation | | `SPSTOP` | pause sprite animation | | `SPUNLINK` | unlink sprites | | `SPUSED` | check if sprite exists | | `SPVAR` | get/set sprite variable | | `SQR` | square root | | `STICK` | get analog stick position | | `STOP` | stop program | | `STR$` | convert number to decimal string | | `SUBST$` | replace part of string | | `SWAP` | swap the values of 2 variables | | `SYSPARAM` | get system parameter | | `TALK` | speech synthesis | | `TALKCHK` | check talk status | | `TALKSTOP` | stop speech synthesis | | `TAN` | tangent | | `TANH` | hyperbolic tangent | | `TANIM` | start text screen animation | | `TARRAY` | get text screen data array | | `TBLEND` | | | `TCBIKE` | | | `TCFISHING` | | | `TCHK` | | | `TCHOUSE` | | | `TCOLOR` | | | `TCOPY` | | | `TCPIANO` | | | `TCROBOT` | | | `TCVISOR` | | | `TFILL` | fill region of text screen | | `TFUNC` | set text screen callback function | | `THEN` | if/then | | `THIDE` | hide text screen | | `THOME` | set text screen origin | | `TIME$` | get current time | | `TLAYER` | set text screen layer | | `TLOAD` | load data from text screen to array | | `TMREAD` | decode time string | | `TOFS` | set text screen position | | `TOUCH` | read touch screen data | | `TPAGE` | set text screen graphics page | | `TPRINT` | print to text screen | | `TPUT` | set tile on text screen | | `TROT` | set text screen rotation | | `TSAVE` | copy data from text screen to array | | `TSCALE` | set text screen scale | | `TSCREEN` | set text screen size | | `TSHOW` | unhide text screen | | `TSTART` | unpause text screen animation | | `TSTOP` | pause text screen animation | | `TUPDATE` | update text screen after modifying TARRAY | | `TVAR` | get/set text screen variable | | `TYPEOF` | get type of value | | `UIMASK` | | | `UIPUSHCMPL` | | | `UISTATE` | | | `UNSHIFT` | insert item at start of string/array | | `UNTIL` | end of REPEAT loop | | `VAL` | convert string to number | | `VAR` | create variable, get variable from name | | `VIBRATE` | set joycon vibration settings | | `VSYNC` | wait for start of frame | | `WAIT` | delay | | `WAVSET` | define custom instrument from string | | `WAVSETA` | define custom instrument from array | | `WEND` | end of WHILE loop | | `WHEN` | condition in CASE block | | `WHILE` | WHILE/WEND loop | | `XCTRLSTYLE` | | | `XSCREEN` | set screen resolution | | `XSUBSCREEN` | |