' RP2040 and RP2350 1865 lines 24/2/2026 files: 61791 bytes help.txt. V6.02.00
' *** Commands ***
~'
'
/* 'Begin and end of multi-line comments.
*/

Rem String
~#
#DEFINE ' With CMM2 LOAD fname$ [,R] and CMM2 RUN fname$
#INCLUDE
#COMMENT START/END
#MMDEBUG ON/OFF
~.
' Commands for writing inline PIO assembler programs. .program name
.end program [list]
.side set n
.label label
.line n of NEXT
.wrap n
.wrap target n

Jmp n
In n
Out n
Push n
Pull n
Mov n
Nop n
IRQ NEXT n
IRQ PREV n
IRQ SET n
IRQ WAIT n
IRQ CLEAR n
IRQ NOWAIT n
IRQ n
Set n
Wait n
Wait n IRQ next n
Wait n IRQ prev n

~ADC
' The ADC commands provide an alternative method for registering
' analog inputs. ADC CLOSE
ADC FREQUENCY freq
ADC OPEN freq, n_channels [, interrupt]
ADC START array1!() [, array2!()] [, array3!()] [, array4!()]
ADC START array1!() [,array2!()][,array3!()][,array4!()][,Chan4arr!()][,C1min]
' [,C1max][,C2min][,C2max][,C3min] [,C3max] [,C4min] [,C4max]
ADC RUN array1%(), array2%)
~ARRAY
Array Add In(), value, Out()
Array Insert targetarray(), [d1] [,d2] [,d3] [,d4] [,d5] , sourcearray()
' This is the opposite of ARRAY SLICE.

Array Set value, array()

Array Slice sourcearray(),[d1] [,d2] [,d3] [,d4][,d5] destinationarray()

~ARC
Arc x, y, r1, [r2], a1, a2[, c]

' Draws a circular arc with a specific color and width between two
' radians (defined in degrees).

' Parameters for the ARC command are
' x : X-cord of arc center
' y : Y-cord of arc center
' r1: Inner radius of arc
' r2: Outer arc radius can be omitted if 1 pixel wide. ' a1: Start angle of arc in degrees
' a2: End angle of arc in degrees
' c : Color of the arc (if omitted, it will default to the foreground color)

~ASTRO
ASTRO
ASTRO object alt, az [, ra_out, dec_out]
ASTRO alt, az, ra, dec [, pm_ra, pm_dec] [, ra_out, dec_out]

~Autosave
Autosave
Autosave APPEND
Autosave CRUNCH
AUTOSAVE N
~Backlight
Backlight n [,DEFAULT] 'Sets the display backlight.
Backlight n [,FreqInHz]
~BEZIER
BEZIER x%(),y%() [,n] [,colour]
~BIT
Bit(var%, bitno) = value 'Sets a Bit(0-63) in an integer variable. ~BITBANG
' BITBANG
' BITBANG=Device 'Replace with the command DEVICE or your own command.

~BITSTREAM
BITSTREAM
BITSTREAM pin, count, array()
BITSTREAM pin, count, array(), mode
BITSTREAM pin1, count1, array1(), mode1, pin2, count2, array2()
BITSTREAM pin1, count1, array1(), mode1, pin2, count2, array2(), mode2
BITSTREAM pin1, count1, array1(), mode1, pin2, count2, array2(), mode2, logic

~BLIT
Blit
Blit x1, y1, x2, y2, w, h
' Copy a section of the screen to another part of the screen. Blit CLOSE [#] b
Blit COMPRESSED address%, x, y [,col]
Blit FLASH from, To, xin, yin, xout, yout, width, height [,colour]
Blit FRAMEBUFFER from, To, xin, yin, xout, yout, width, height [,colour]
Blit LOAD [BMP] [#]b, fname$ [,x] [,y] [,w] [,h]
Blit LOAD JPG [#] b, fname$ [, x] [, y] [, w] [, h]
Blit LOADBMP [#] b, fname$ [, x] [, y] [, w] [, h]
Blit Memory address, x, y [,col]
Blit MERGE color, x, y, w, h
Blit READ [#] b, x, y, w, h
Blit WRITE [#]b, x, y [, mode]%, x, y [,col]
BLIT WRITE [#]b, x, y [, mode]

~BOX
Box x, y, w, h [, lw] [, c] [, fill]
' x=MM.HRES\2, y=VRES\2, w=WIDE, h=HIGH, lw=1(WH), c=RGB(green), fill=-1(0-15)
' fill= 0=black,1=blue,2=myrtle,3=cobalt,4=midgreen,5=cerulean,6=green,

' 7=cyan,8=red,9=magenta,10=rust,11=fuchsia,12=brown,13=lilac,14=yellow,15=white
' If one chooses RGB(colour), use the English name. ~BYTE
Byte
Byte(var$, byteno) = value 'Sets a specific byte in a string to
'an integer.

~CALL
Call usersubname$ [, usersubparameters, ....]
~CAMERA
Camera
Camera OPEN XLKpin, PLKpin, HSpin, VSCpin, RETpin, D0pin
Camera CAPTURE [scale, [x , y]]
Camera CLOSE
Camera CHANGE image%(), change! [,scale [, x, y]]
Camera TEST tnum
Camera REGISTER reg%, data%
~CAT
Cat S$, N$
~CASE
Case testexp [[, testexp]?] see also SELECT CASE
Case Else
~CHAIN
Chain fname$[cmdline$]
~CHDIR
Chdir dir$
~CIRCLE
Circle x, y, r [, lw] [, a] [, c] [, fill]
' lw=1(linewidth), a=1.0(aspect), c=RGB(green), fill=-1(EMPTY)(COLOR:0-15)
~Clear
Clear
~Close
Close [#] fnbr [, [#] fnbr]
~CLS
CLS
CLS [colour]
~CMM2
CMM2 Load fname$ [,R]
CMM2 Run fname$
~COLOR
Color fore [, back]
' fore=RGB(red), back=RGB(black) or 0=black,1=blue,2,3,4,5,6,..14=yellow,15=white
~COLOUR
Color fore [, back]
Color Map inarray%(), outarray%()[, colormap%()]
~Configure
Configure cfg
Configure LIST
~CONST
Const id = expression [, id = expression] etc
~Continue
Continue
Continue DO
Continue For
~COPY
Copy fname1$ To fname2$
Copy fname$ To dirname$
Copy "a:/fname" To "b:/fname/"
Copy "a:/*.*" To "b:/backup/"
Copy "b:/backup/*.*" To "a:/"
Copy A2B fname1$ To fname2$
Copy B2A fname1$ To fname2$
~CPU
CPU RESTART
CPU SLEEP n
~CSUB
CSub name [type [, type] ] hex[[ hex [] hex [[ hex[] END CSUB
~CtrlVal
CtrlVal
CtrlVal(#ref) = nbr
~DATA
Data
Data constant [, constant] ... see also READ
~Date$
Date$ = "DD-MM-YY [YY]" 'This is the output for all. Date$ = "DD/MM/YY [YY]" 'Shorten with Left$(Date$,5) = DD-MM
Date$ = "YYYY-MM-DD"
Date$ = "YYYY/MM/DD"
~DefineFont
DefineFont #Nbr hex [[ hex[...] hex[[ hex[...] END DEFINEFONT
~Device
Device BITSTREAM pinno, n_transitions, array%()
Device CAMERA
Device GAMEPAD
Device HUMID
Device KEYPAD
Device MOUSE
Device LCD
Device SERIALTX pinno, baud rate, ostring$
Device SERIALRX pinno, baudrate, istring$, timeout_in_ms, status% [,nbr]
' [,terminators$]
Device WII
Device WS2812
~DIM
Dim [type] decl [,decl]... 'decl=var[length] [type] [init] var=variable name.
Dim nbr(50)
Dim INTEGER nbr%(50) ' a% = Integers 64 bits.
Dim FLOAT nbr!(50) ' a! = floating point numbers.
Dim STRING nbr$(50) ' a$ = Names and numbers 0 - 255.
Dim name As STRING
Dim a, b$, nbr(100), strn$(20)
Dim a(5, 5, 5), b(1000)
Dim strn$(200) LENGTH 20
Dim STRING strn(200) LENGTH 20
Dim a = 1234, b = 345
Dim STRING strn = "text"
Dim x%(3) = (11, 22, 33, 44)
~DO
Do <statements> RUN
Do While expression <statements> LOOP
Do <statements> LOOP Until expression
Do <statements> LOOP While expression
~DRAW3D
Draw3D
Draw3D CAMERA n, z_viewplane[,x_camera [,y_camera] [,PAN_X] [,PAN_Y]
Draw3D CLOSE n [,n1 [,n2...]]
Draw3D CLOSE ALL
Draw3D CREATE n,nv,nf,camera,vertices(),fc(),faces(),colours(),edge()[,fill()]
Draw3D DIAGNOSE object no, x, y, z
Draw3D HIDE n [,n1 [,n2...]]
Draw3D HIDE ALL
Draw3D RESET n [,n1 [,n2...]}
Draw3D ROTATE q(), n [,n1 [,n2...]}
Draw3D SHOW n, x, y, z [,nocull] ] [,usefurthest]
Draw3D WRITE n, x, y, z [,nocull] [,usefurthest]
~DRIVE
Drive drive$ 'Drive$ can be "A:" or "B:".

Drive "A:" or > A: is the FLASH drive.
Drive "B:" or > B: is the SDCARD.

Drive "A:/FORMAT" only the first time.
~EDIT
Edit
Edit File
Edit fname$
Edit File fname$
~Else
Else
Else If expression Then
ElseIf expression Then
~END
End
End [noend]
End cmd$
End CSub
EndDefineFont
End Function
EndIf
End Select
End Sub
EndIf
~ERASE
Erase variable [, variable]...
~ERROR
Error [error_msg$]
~Execute
Execute command$
~EXIT
Exit Do
Exit For
Exit Function
Exit Sub
~FILES
Files [fspec$] [, sort]
~Fill
Fill x, y, color
~Flag
Flag(n%) = value
Flags = value%
~Flash
Flash ALL
Flash CHAIN nr [1-3]
Flash DISK LOAD nr, fname$ [,O[VERWRITE]] Flash slot 3 is also for LIBRARY. Flash ERASE ALL
Flash ERASE nr
Flash LIST nr [, all]
Flash LOAD nr [1-3]
Flash LOAD IMAGE flashno, filename$ [,O/OVERWRITE]
Flash OVERWRITE nr
Flash RUN nr
Flash SAVE nr
~FLUSH
Flush [#] fnbr
~FONT
Font [#] font - number, scaling 'Font:1-8,Scale:x1-15 Degrees:Chr$(&H60) Dec96
' 1=8x12, 2=12x20, 3=V16x16, 3=H16x24, 4=10x16, 5=24x32, 6=32x50, 7=6x8, 8=4x6
~For
For counter = start To finish [ Step increment]
~FRAMEBUFFER
FRAMEBUFFER 'NO VGA or HDMI VIDEO**
FRAMEBUFFER CLOSE [which]
FRAMEBUFFER COPY from, To [,b]
FRAMEBUFFER CREATE
FRAMEBUFFER CREATE 2
FRAMEBUFFER LAYER
FRAMEBUFFER LAYER [colour]
FRAMEBUFFER LAYER TOP [colour]
FRAMEBUFFER MERGE
FRAMEBUFFER MERGE col
FRAMEBUFFER MERGE col, A
FRAMEBUFFER MERGE col, B
FRAMEBUFFER MERGE col, R [,updaterate]
FRAMEBUFFER MERGE [colour] [,mode] [,updaterate]
FRAMEBUFFER SYNC
FRAMEBUFFER WRITE F
FRAMEBUFFER WRITE where / where$
FRAMEBUFFER WAIT
FRAMEBUFFER 'HDMI AND VGA VERSIONS ONLY
FRAMEBUFFER CREATE
FRAMEBUFFER CREATE 2
FRAMEBUFFER LAYER [colour]
FRAMEBUFFER LAYER TOP [colour]
FRAMEBUFFER WRITE where/where$
FRAMEBUFFER CLOSE [which]
FRAMEBUFFER COPY from, To [,b]
FRAMEBUFFER WAIT
~Function
Function xxx(arg1[,arg2, ])[As <type>} <statements> 'xxx = <return value>
' End Function
~GAMEPAD
Gamepad COLOR channel, colour
Gamepad HAPTIC channel left, right
Gamepad INTERRUPT ENABLE channel, int [,mask]
Gamepad INTERRUPT DISABLE channel
Gamepad MONITOR
Gamepad CONFIGURE vid, pid,i0,c0,i1,c1,i2,c2,i3,c3,i4,c4,i5,c5,i6,c6,i7,c7,i8,
c8,i9,c9,i10,c10,i11,c11,i12,c12,i13,c13,i14,c14,i15,c15
~GoSub
GoSub
' You may not jump into or out of a function with commands such as GOSUB,GOTO
~GoTo
GoTo target
' This will have undefined side effects, including ruining your day. ~GUI
GUI AREA #ref, startX, startY, width, height
GUI BCOLOUR color, #ref1 [, #ref2, #ref3, etc.]
GUI BARGAUGE #ref, StartX, StartY, width, height, FColour, BColour, min, max,
' c1, ta, c2, tb, c3, tc, c4
GUI BITMAP x, y, bits [, width] [, height] [, scale] [, c] [, bc]
GUI BUTTON #ref, caption$, startX, startY, width, height [, FColour] [,BColour]
GUI CALIBRATE
GUI CALIBRATE a, b, c, d, e
GUI CAPTION #ref, text$, startX, startY [, align$] [, FColour][, BColour]
GUI CHECKBOX #ref, caption$, startX, startY [, size] [, colour]
GUI DELETE #ref1 [, #ref2, #ref3, etc.]
GUI DELETE ALL
GUI DISABLE #ref1[,#ref2, #ref3, etc.]
GUI DISABLE ALL
GUI DISPLAYBOX #ref, startX, startY, width, height, FColour, BColour
GUI ENABLE #ref1[, #ref2, #ref3, etc.]
GUI ENABLE ALL
GUI FCOLOUR color, #ref1 [, #ref2, #ref3, etc.]
GUI FRAME #ref, caption$, startX, startY, width, height, color
GUI FORMATBOX #ref, Format, startX, startY, width, height,FColour,BColour
GUI FORMATBOX ACTIVATE #ref
GUI FORMATBOX CANCEL
GUI GAUGE #ref, StartX,StartY,Radius,FColour,BColour,min,max,nbrdec,units$,
' c1, ta, c2, tb, c3, tc, c4
GUI HIDE #ref1[, #ref2, #ref3, etc.]
GUI HIDE ALL
GUI INTERRUPT down [, up]
GUI LED #ref, caption$, centerX, centerY, radius, color
GUI NUMBERBOX #ref, startX, startY, width, height, FColour, BColour
GUI NUMBERBOX ACTIVATE #ref
GUI NUMBERBOX CANCEL
GUI PAGE #n [, #n2, #n3, etc]
GUI RADIO #ref, caption$, centerX, centerY, radius, color
GUI REDRAW #ref1[, #ref2, #ref3, etc.]
GUI REDRAW ALL
GUI RESET LCDPANEL
GUI SETUP #n
GUI SHOW #ref1[, #ref2, #ref3, etc.]
GUI SHOW ALL
GUI SPINBOX #ref, startX, startY, width, height, FColour, BColour, Step,
' Minimum, Maximum
GUI SWITCH #ref, caption$, startX, startY, width, height, FColour,BColour
GUI TEXTBOX #ref, startX, startY, width, height, FColour, BColour
GUI TEXTBOX ACTIVATE #ref
GUI TEXTBOX CANCEL
GUI BITMAP x, y, bits [, width] [, height] [, scale] [, c] [, bc]
GUI CALIBRATE
GUI RESET LCDPANEL
GUI TEST LCDPANEL
GUI TEST TOUCH
~HELP
Help "search text" 'After HELP command or function. First time, place help.txt in A:
' F1=HELP F2=RUN F3=LIST F4=EDIT F5=MP3 NEXT F6=MP3 STOP F7=MP3 F8=OPTIONS F9=FM
' F1=HELP F2=RUN F3=LIST F4=EDIT F5=COMMAND F6=FUNCTION F7=PINS F8=OPTIONS F9=FM
~HUMID
Humid pin, tvar, hvar [,DHT11]
~I2C
I2C CHECK addr
I2C CLOSE
I2C OPEN speed, timeout
I2C READ addr, option, rcvlen, rcvbuf
I2C SLAVE
I2C WRITE addr, option, sendlen, senddata [, senddata ....]
I2C2 CHECK addr
I2C2 CLOSE
I2C2 OPEN speed, timeout
I2C2 READ addr, option, rcvlen, rcvbuf
I2C2 SLAVE
I2C2 WRITE addr, option, sendlen, senddata [, senddata ....]

~I2CLCD
I2CLCD 'With a standard I2C module, SDA and SCL are 5V, so use a level shifter.
' Or swap the PullUp resistors to 3V3. Preferably on the RP module pins

I2CLCD INIT address 'Example: I2CLCD INIT &H20
' Initialize the LCD screen at the specified I2C address. The address is usually

' &H27 or &H3F for most modules. PCF8574 uses &H20-&H27, PCF8574A

' uses &H38-&H3F. Requires that OPTION SYSTEM I2C be configured first. ' A degree symbol is automatically created at character code 0. Chr$(0)

I2CLCD CLOSE ' Closes the LCD screen and turns off the backlight.

I2CLCD CLEAR ' Clears the screen and returns the cursor to the home position.

I2CLCD BACKLIGHT state ' Turns the backlight on (1) or off (0).

I2CLCD CURSOR state [, BLINK] ' Controls the visibility of the cursor.

' State can be ON/OFF or 1/0.

' BLINK parameter (or 1) enables blinking of the cursor.

I2CLCD CREATECHAR code, d0, d1, d2, d3, d4, d5, d6, d7

' Define a custom character at code (0-7). The 8 data bytes (d0-d7)

' define the 5x8 pixel pattern, where each byte represents one row
' (values 0-31, only lower 5 bits used).

I2CLCD CMD byte [, byte ...]

' Send raw command byte(s) directly to the LCD controller.

I2CLCD DATA byte [, byte ...]

' Send raw data byte(s) directly to the LCD controller.

I2CLCD line, position, string$
' Display text on line (1-4) starting at position (1-40).

I2CLCD line, Cn, string$
' Display centered text on line (1-4).

' Cn specifies the display width: C8, C16, C20, or C40. ~IF

If expr Then stmt [: stmt]

If expr Then stmt Else stmt
If expression Then <statements> [ELSEIF expression Then <statements>]
' [Else <statements>] ENDIF
~INC
Inc var [, increment]
~INPUT
Input ["prompt$";] var1 [,var2[,var3[,etc.]]] 'Will take a list of values.

Input #nbr, list of variables 'See above, input from a serial port.

~INTERRUPT
Interrupt [myint] 'This command triggers a software interrupt. ~IR
IR dev, key, int
IR CLOSE
IR SEND pin, dev, key
~IReturn
IReturn '(Returns from a break)
~JPG
LOAD JPG file$ [, x] [, y] [,mode] [,ximage] [,yimage]
' x, y: Position to start drawing on the screen(default zero)
' MODE -1: No dithering(processes the image as is, default)
' MODE 0: Floyd Steinberg RGB121
' MODE 1: Floyd Steinberg RGB332
' MODE 2: Atkinson RGB121
' MODE 3: Atkinson RGB332
ximage,yimage: Position in the image to draw. ~KEYPAD
Keypad var, int, r1, r2, r3, r4, c1, c2, c3 [, c4] 'RP2040 and RP2350.
Keypad keymapmap!(),var!,int, startcolpin, nocols, startrowpin, norows
' Option base 1 ' Keypad keymapmap!() 'Only for RP2350.
' Dim keymap(3, 4) = (1,4,7,10, 2,5,8,0, 3,6,9,11)
' Keypad keymap(), keyret, myint, gp1, 3, gp4, 4
' Do
'Loop
' Sub myint
' Print keyret
' End Sub
Keypad keymap(), keyret, myint, gp1, 3, gp4, 4
Keypad CLOSE
~KILL
Kill file$ [,all] ' kill "test.bas" delete the file test.bas
~LCD
LCD INIT d4, d5, d6, d7, rs, en 'See also I2CLCD now with two pins. LCD line, Pos, text$
LCD CLEAR
LCD CLOSE
LCD CMD d1 [, d2 [, etc]]
LCD DATA d1 [, d2 [, etc]] 'variable = expression
~Library
Library DELETE
Library DISK SAVE fname$
Library DISK LOAD fname$
Library LIST
Library LIST ALL
Library SAVE
~LINE
Line AA x1, y1, x2, y2 [, LW [, C]]
' x1=MM.HRES\2,y1=MM.VRES\2,x2=MM.HRES\2-x,y2=MM.VRES\2-y,lw=LineB,c=RGB(GREEN)
Line GRAPH x(), y(), color
Line Input [prompt$,] string variable$
Line Input #nbr, string variable$
Line PLOT ydata([,nbr] [,xstart] [,xinc] [,ystart] [,yinc] [,colour])
Line x1, y1, x2, y2 [, LW [, C]]
~LIST
List
List ALL [fname$]
List COMMANDS
List [fname$]
List FUNCTIONS
List PINS
List SYSTEM I2C
List VARIABLES [s%()]
~LMID
LMID(array%(),start [,num])=string$
~LOAD
Load CONTEXT [KEEP]
Load DITHERED fname$ [,xdisplay] [,ydisplay] [,mode] [,xfile] [,yfile]
'Mode 0: FloydSteinberg RGB121
' Mode 1: FloydSteinberg RGB332
'Mode 2: Atkinson RGB121
' Mode 3: Atkinson RGB332

Load file$ [, R] 'Load the file into memory and start immediately.(RUN)

Load "FILE$"
Load "A:/FILE$"
Load "B:/PROG/FILE$"
Load IMAGE file$ [, x] [, y]

Load IMAGE/BMP fname$ [,x] [,y] [,mode] [,ximage] [,yimage]
' // Format IDs - bits 0 and 1
' #define FORMAT_RGB121 0
' #define FORMAT_RGB222 1
' #define FORMAT_RGB332 2
' #define FORMAT_RGB565 3
' // Method IDs - bit 2
' #define METHOD_FLOYD_STEINBERG 0
' #define METHOD_ATKINSON 1
'
' BMP file processing. This affects:

' LOAD IMAGE, FLASH LOAD IMAGE, BLIT LOAD and SPRITE LOADBMP
'
' 1-bit (monochrome) - 2 colors with palette
' 4-bit - 16 colors with palette
' 8-bit - 256 colors with palette
' 16-bit - usually 5-5-5 RGB or 5-6-5 RGB
' 24-bit - 8-8-8 RGB (true color, most common)
' BI_RGB (0) - uncompressed (most common)
' BI_RLE8 (1) - 8-bit run-length encoding
' BI_RLE4 (2) - 4-bit run-length encoding
Load JPG file$ [, x] [, y]

Load PNG fname$ [, x] [, y] [,transparent] [,alphacut]
~LOCAL
Local variable [, variables]
~LOCATION
LOCATION '(Latitude/Longitude) and time. See ASTRO manual.
~LongString
LongString AES128 ENCRYPT/DECRYPT CBC/ECB/CTR key$/key!/%](), in%(), out%() 
[,iv$/iv [!/%]()]
LongString APPEND array%(), string$
LongString BASE64 ENCODE | DECODE in%(), out%()
LongString CLEAR array%()
LongString COPY dest%(), src%()
LongString CONCAT dest%(), src%()
LongString LCASE array%()
LongString LEFT dest%(), src%(), nbr
LongString LOAD array%(), nbr, string$
LongString MID dest%(), src%(), start, nbr
LongString PRINT [#n,] src%()
LongString REPLACE array%(), string$, start
LongString RESIZE addr%(), nbr
LongString RIGHT dest%(), src%(), nbr
LongString SETBYTE addr%(), nbr, data
LongString TRIM array%(), nbr
LongString UCASE array%()
~LOOP
Loop
Loop [Until expression]
~MAP
Map 'Map HDMI VERSION RP2350
Map(s) = rgb%
Map MAXIMITE
Map GREYSCALE
Map SET
Map RESET
MAP 'PICOMITE RP2350 BUFFERED DRIVERS ONLY
MAP(n) = rgb%
MAP SET
MAP RESET
Map 'VGA VERSION
Map(s) = rgb%
Map MAXIMITE
Map SET
Map RESET
~MATH
Math ADD in(), num, out()
Math AES128 ENCRYPT/DECRYPT CBC/ECB/CTR key$/key(),in$/in(),out$/out(),iv$/iv()
Math C_MULT a%(),a%(),a%()
Math C_ADD array1%(), array2%(), array3%()
Math C_SUB array1%(), array2%(), array3%()
Math C_MUL array1%(), array2%(), array3%()
Math C_DIV array1%(), array2%(), array3%()
Math C_ADD array1!(), array2!(), array3!()
Math C_SUB array1!(), array2!(), array3!()
Math C_MUL array1!(), array2!(), array3!()
Math C_DIV array1!(), array2!(), array3!()
Math FFT INVERSE FFTarray!(), signalarray!()
Math FFT MAGNITUDE signalarray!(), magnitudearray!()
Math FFT PHASE signalarray!(), phasearray!()
Math FFT signal array!(), FFTarray!()
Math INSERT targetarray(), [d1] [, d2] [, d3] [, d4][, d5], sourcearray()
Math INTERPOLATE in1(), in2(), ratio, out()
Math M_INVERSE array!(), inversearray!()
Math M_MULT in1(), in2(), out()
Math M_PRINT array()
Math M_TRANSPOSE in(), out()
Math PID INIT channel, pid_params!(), callback
Math PID START channel
Math PID STOP channel
Math POWER inarray(), power, outarray()
Math Q_CREATE theta, x, y, z, outRQ()
Math Q_EULER yaw, pitch, roll, outRQ()
Math Q_EULER sets q()
Math Q_INVERT inQ(), outQ()
Math Q_MULT nQ1(), iinQ2(), outQ()
Math Q_ROTATE, RQ(), inVQ(), outVQ()
Math Q_VECTOR x, y, z, outVQ()
Math (RAND)
Math RANDOMIZE [n]
Math SCALE in(), scale, out()
Math SENSORFUSION type ax,ay,az,gx,gy,gz,mx,my,mz,pitch,roll,yaw [,p1][,p2]
Math SET nbr, array()
Math SHIFT inarray%(), nbr, outarray%() [,U]
Math SINC x_in(), y_in(), n , m, window, freq, x_out(), y_out()
Math SINC x_in(), y_in(), n, window, freq, x_out(), y_out()
Math SLICE sourcearray(), [d1][, d2][, d3][, d4][,d5], destinationarray()
Math V_CROSS inV1(), inV2(), outV()
Math V_MULT matrix(), INV(), outV()
Math V_NORMALISE INV(), outV()
Math V_PRINT array() [,hex]
Math V_ROTATE x, y, a, xin(), yin(), xout(), yout()
Math WINDOW in(), minout, maxout, out() [,minin, maxin]

~MEMORY
Memory
Memory COPY FLOAT source address, destination address, number of plunders
' [, source increment][, destination increment]
Memory COPY INTEGER source address, destination address, number of integers
' [, source increment][, destinationincrease]
Memory COPY sourceaddress, destinationaddress, numberofbytes
' [,sourceincrement][, destination increment]
Memory COPY INTEGER sourceaddress, destinationaddress, numberofintegers
' [ ,sourceincrement] [, destination increment]
Memory COPY FLOAT source address, destination address, number of integers
' [,sourceincrement] [,destinationincrement]
Memory INPUT[#]fnbr, nbr, address% |array()
Memory PACK
Memory PACK inarray%(),array%(), 4096, 16
Memory PACK source%() | sourceaddress%, dest%() | destaddress%, number, size
Memory PRINT #]fnbr, nbr, address%/ array()
Memory SET address, byte, numberofbytes
Memory SET BYTE address, byte, numberofbytes
Memory SET FLOAT address, floatingvalue, numberoffloats [, increment]
Memory SET INTEGER address, integervalue, numberofintegers [, increment]
Memory SET SHORT address, short, numberofshorts
Memory SET WORD address, word, numberofwords
Memory UNPACK
Memory UNPACK source() | sourceaddress%, dest() | destaddress%, number, size
~MID$
MID$(str$, start [, num]) = str2$
~MKDIR
Mkdir dir$ 'Mkdir "dir$" Chdir "dir$" NAME "dir$" Rmdir "dir$"
~MODE
MODE n OPTION RESOLUTION 640 x 480 'VGA VERSION ONLY
MODE 1 640 x 480 x 2 colors (monochrome).
MODE 2 320 x 240 x 16 colors.
MODE 3 640 x 480 x 16 colors. 'RP2350 ONLY
MODE n OPTION RESOLUTION 720 x 400
MODE 1 720 x 400 x 2 colors (monochrome).
MODE 2 360 x 200 x 16 colors.
MODE 3 720 x 400 x 16 colors. 'ONLY RP2350
MODE n OPTION RESOLUTION 800 x 600 'Only RP2350
MODE 1 800 x 600 x 2 colors (monochrome).
MODE 2 400 x 300 x 16 colors.
MODE 3 800 x 600 x 16 colors.
MODE n OPTION RESOLUTION 848 x 480 'Only RP2350
MODE 1 848 x 480 x 2 colors (monochrome).
MODE 2 424 x 240 x 16 colors.
MODE 3 848 x 480 x 16 colors. MODE n OPTION RESOLUTION 640 x 480 'HDMI VERSION ONLY
MODE 1 640 x 480 x 2 colors (monochrome).
MODE 2 320 x 240 x 16 colors.
MODE 3 640 x 480 x 16 colors.
MODE 4 320 x 240 x 32768 colors.
MODE 5 320 x 240 x 256 colors. MODE n OPTION RESOLUTION 800 x 600
MODE 1 800 x 600 x 2 colors with RGB332-TILE Option Display 50, 100
MODE 2 400 x 300 x 16 colors with 2 layers and color Option Display 37, 64
MODE 3 800 x 400 x 16 colors with optional layer Option Display 50, 100
MODE 5 400 x 300 x 256 colors with optional layer Option Display 37, 66
MODE n OPTION RESOLUTION 848 x 480
MODE 1 848 x 480 x 2 colors with RGB332-TILE Option Display 40, 106
MODE 2 424 x 240 x 16 colors 2 layers+color RGB332 Option Display 30, 70
MODE 3 848 x 480 x 16 colors and layer+color RGB332 Option Display 40, 106
MODE 5 424 x 240 x 256 colors with colors and layer Option Display 30, 70
MODE n OPTION RESOLUTION 1024 x 768
MODE 1 1024 x 768 x 2 colors with RGB332-TILE Option Display 32, 64
MODE 2 256 x 192 x 16 colors with 2 layers and color Option Display 24, 42
MODE 3 512 x 384 x 16 colors and layer+color RGB332 Option Display 32, 64
MODE 5 256 x 192 x 256 colors with optional layer Option Display 24, 42
MODE n OPTION RESOLUTION 1280 x 720
MODE 1 1280 x 720 x 2 colors with RGB332-TILE Option Display 30, 80
MODE 2 320 x 180 x 16 colors 2 layers + color RGB332 Option Display 22, 53
MODE 3 640 x 360 x 16 colors and low+color RGB332 Option Display 30, 80
MODE 5 320 x 180 x 256 colors with optional layer Option Display 22, 53
~MOUSE
Mouse
Mouse INTERRUPT ENABLE channel, int
Mouse INTERRUPT DISABLE channel
Mouse SET channel, x-coord, y-coord [, wheel-count]
Mouse OPEN channel, CLKpin, DATApin
Mouse CLOSE channel
~NEW
New 'Clears the program in flash memory.

~NEXT
Next [countervariable] [, countervariable], etc.

~ON
On ERROR
On ERROR ABORT
On ERROR CLEAR
On ERROR IGNORE
On ERROR RESTART 'Any error in a program RESTART at OPTION AUTORUN
On ERROR SKIP [nn]

On KEY ASCII code, target
On KEY target
On PS2 target
~ONEWIRE
OneWire READ pin, flag, length, data [, data ...]

OneWire RESET pin
OneWire WRITE pin, flag, length, data [, data ...]

~OPEN
Open compspec$ As [#] fnbr
Open compspec$ As GPS [, timezone_offset][, monitor]

Open fname$ For MODE As [#] fnbr
Open "B:/mydir/myfile.dat"

~OPTION
Option ANGLE RADIANS | DEGREES
Option FAST AUDIO ON/OFF
Option AUDIO PWMnApin, PWMnBpin
Option AUDIO DISABLE
Option AUDIO SPI CSpin, LDACpin, SCKpin, SDIpin
Option AUDIO DISABLE
Option AUDIO SPI CSpin,CLKpin,MOSIpin
Option AUDIO VS1053 CLKpin, MOSIpin, MISOpin, XCSpin, XDCSpin,DREQpin,XRSTpin
Option AUDIO I2S BCLKpin, DINpin
Option AUDIO SPI GP0, GP1, GP2, GP3
Option AUDIO SPI CSpin, CLKpin, SDIpin
Option AUTOREFRESH ON | OFF
Option AUTORUN ON [,NORESET]
Option AUTORUN n [,NORESET]
Option AUTORUN OFF
Option BASE 0 | 1
Option BAUDRATE nn
Option BREAK nn
Option CASE LOWER | UPPER | TITLE
Option COLOR VGA ON | OFF
Option COLORCODE ON | OFF
Option CONSOLE output
Option CONTINUATION LINES ON | OFF
Option CPUSPEED speed(kHz)
Option COUNT pin1, pin2, pin3, pin4
Option DEFAULT FLOAT | INTEGER | STRING | NONE
Option DEFAULT COLORS foreground [,background]
Option DEFAULT MODE n
Option DISK SAVE fname$
Option DISK SAVE "RP2350A-V6.02.00.opt" 'Saving the entire option list to A:
Option DISK LOAD fname$ 'Restore the option list
Option DISPLAY lines [, chars]
Option ESCAPE
Option EXPLICIT
Option FAST AUDIO ON | OFF
Option FNKey string$ 'F1=HELP F2=RUN F3=LIST F4=EDIT F5=PRINT F6=FILES
' Use F1 or F5-F8. Disable: OPTION F8 "" F7=LIST COMMANDS
' e.g. OPTION F5 "PLAY MP3"+Chr$(34)+"b:/mp3 file/"+Chr$(34)+Chr$(13)
' Chr$(10)=LF, Chr$(13)=CR, Chr$(20)=SPACE, Chr$(34)=", Chr$(58)=:
Option HDMI PINS clockpositivepin, d0positivepin, d1positivepin, d2positivepin
OPTION GPS
Option GUI CONTROLS NbrOfGUIControls
Option HEARTBEAT ON | OFF [HEARTBEATpin]
Option KEYBOARD nn [, capslock] [, numlock] [repeatstart] [repeatrate]
Option KEYBOARD DISABLE
Option KEYBOARD I2C
Option KEYBOARD PINS clock pin, data pin
Option KEYBOARD REPEAT repeatstart,repeatrate USB KEYBOARD ONLY
Option LCDPANEL Not VGA OR HDMI VERSIONS
Option LCDPANEL CONSOLE [font[, fc[, bc backlight]]][,NOSCROLL]
Option LCDPANEL controller,ori[,backlhtpin][,DCpin][,NORESET][,INVERT][,DB0pin]
OPTION LCDPANEL ILI9341, OR, DC, RESET, CS[,BL][,INVERT] '320 x 240 resolution
OPTION LCDPANEL ILI9163, OR, DC, RESET, CS[,BL][,INVERT] '128 x 128 resolution
OPTION LCDPANEL ILI9481, OR, DC, RESET, CS[,BL][,INVERT] ' 80 x 320 resolution
OPTION LCDPANEL ILI9481IPS, OR, DC, RESET,CS[,BL][,INVERT]' 80 x 320 resolution
OPTION LCDPANEL ILI9488, OR, DC, RESET, CS [,BL][,INVERT] ' 80 x 320 resolution
OPTION LCDPANEL ILI9488P, OR, DC, RESET, CS[,BL][,INVERT] '320 x 320 resolution
OPTION LCDPANEL ILI9488W, OR, DC,RESET,CS[,BL][,INVERT] '3.5 inch Waveshare
OPTION LCDPANEL N5110, OR, DC, RESET, CS[,BL][,INVERT] ' 84 x 48 resolution
OPTION LCDPANEL SSD1306SPI,OR,DC,RESET,CS[,offset][,INVERT]'28 x 64 resolution
OPTION LCDPANEL SSD1331, OR, DC, RESET, CS[,BL][,INVERT] ' 96 x 64 resolution
OPTION LCDPANEL ST7735, OR, DC, RESET, CS [,BL][,INVERT] '160 x 128 resolution
OPTION LCDPANEL ST7735S, OR, DC, RESET, CS[,BL][,INVERT] '160 x 80 resolution
OPTION LCDPANEL ST7735S_W, OR, DC, RESET, CS[,BL][,INVERT]'128 x 128 resolution
OPTION LCDPANEL ST7789, OR, DC, RESET, CS[,BL][,INVERT] '240 x 240 resolution
OPTION LCDPANEL ST7789_135, OR, DC, RESET,CS[,BL][,INVERT]'240 x 135 resolution
OPTION LCDPANEL ST7789_320, OR, DC, RESET,CS[,BL][,INVERT]'320 x 240 resolution
OPTION LCDPANEL ST7796S, OR, DC, RESET,CS[,BL][,INVERT] '480 x 320 resolution
OPTION LCDPANEL ST7796SP, OR, DC, RESET,CS[,BL][,INVERT] '320 x 320 resolution
OPTION LCDPANEL GC9A01, OR, DC, RESET, CS[,BL][,INVERT] '240 x 240 resolution
OPTION LCDPANEL ST7920, OR, DC, RESET '128 x 64 resolution
OPTION LCDPANEL SSD1306I2C, OR [,offset] '128 x 64 resolution
OPTION LCDPANEL SSD1306I2C32, OR '128 x 32 resolution
Option LCDPANEL VGA222/VGA222_320, hsyncpin, bluelpin 'Works only with RP2350
' This checks the availability of hysyncpin and hysyncpin+1 (vsync)
' bluelpin - bluelpin+5 (blue_l, blue_h, green_l, green_h, red_l, red_h).

' To connect the data pins to the VGA connector, use H=390, L=820 ohm
' resistors from the outputs, as indicated in the green channel.

Option LCDPANEL VIRTUAL_C
Option LCDPANEL VIRTUAL_M
Option LCDPANEL DISABLE
Option LCDPANEL NOCONSOLE
Option LCDPANEL options
Option LCDPANEL USER hres, vres
Option LCD PINNEN clkpin, mosipin, misopin
Option LCD320 ON | OFF
Option LEGACY ON | OFF
Option LIST
OPTION LOCAL VARIABLES n
Option MILLISECONDS ON | OFF
Option MODBUFF ENABLE | DISABLE [sizeinK] 'sizeinK=adjust,Standard 128Kb Flash
Option MOUSE CLKpin, DATApin
Option MOUSE DISABLE
OPTION MOUSE SENSITIVITY f!
OPTION NOCHECK ON | OFF
Option PICO ON | OFF
Option PIN nbr 'Set PIN Code. Option PIN 0 = disable. Permanent=99999999
Option PLATFORM name$
Option PS2 PINS clockpin, datapin
Option PSRAM PIN n
Option PSRAM PIN DISABLE
Option POWER PFM | PWM
Option RESET 'Also reset library and Flash Slot 3 to normal.
Option RESET cfg 'With cfg, the name of the available option list.
Option RESET LIST 'Returns the predefined option lists.
Option RESET OLIMEXUSB 'Set the option list for the Olimex HDMI with USB.

Option RESOLUTION nn [,cpuspeedinKhz]
Option RESOLUTION 640x480,1280x720,1024x768,1024x600,1024x768,800x600,848x480
Option RESOLUTION 640 720 800 848 1280 1024
Option RTC AUTO ENABLE | DISABLE
Option SDCARD CSpin [, CLKpin, MOSIpin, MISOpin] 'Note the GP no. to be used
Option SDCARD CSpin, CLKpin, MOSIpin, MISOpin 'Max 32GB SD card.

Option SDCARD DISABLE 'Disable the SDCARD. Option SDCARD COMBINED CS
Option SERIAL CONSOLE DISABLE
Option SERIAL CONSOLE TXpin, RXpin [,B]
Option SERIAL CONSOLE UARTApin, UARTBpin,
Option SYSTEM I2C SDApin, SCLpin [,SLOW | FAST] 'SLOW = 100kHz FAST = 400kHz
Option SYSTEM I2C DISABLE 'Disable I2C bus.
Option SYSTEM SPI CLKpin, MOSIpin, MISOpin 'Note the GP no. to be used
Option SYSTEM SPI DISABLE 'Disable the SPI bus.
Option TAB 2 | 3 | 4 | 8
Option TCP SERVER PORT n
Option TELNET CONSOLE OFF | ONLY | ON
Option TFTP OFF | ON
Option TOUCH T_CS pin, T_IRQ pin [, Beep]
Option TOUCH DISABLE
Option TOUCH FT6336 IRQpin, RESETpin [,BEEPpin] [,sensitivity]
Option UDP SERVER PORT n
Option VGA PINS HSYNCpin, BLUEpin
Option VCC Voltage 'The reference voltage of ADC can be set.(3V3)
Option WEB MESSAGES ON | OFF
Option WIFI ssid$, passwd$, [name$] [,ipaddress$, mask$, gateway$]
~PAUSE
Pause delay 'Values in mS 1000 = 1 second or 0.1 = 0.1 mS
~PIN
Pin(pin) value
~PIO
PIO ASSEMBLE pio, linedata$
PIO ASSEMBLE pionum,".wrap"
PIO ASSEMBLE pionum,".wrap target"
PIO CLEAR pio nr(nr 0 or 1)
PIO CONFIGURE pio,sm,clock[,startaddress][,sidesetbase][,sidesetno[,sidesetout]
' [,setbase][,setno][,setout][,outbase][,outno][,outout][,inbase][,jmppin]
' [,wraptarget][,wrap][,sideenable][,sidepindir][,pushthreshold]
' [,pullthreshold][,autopush][,autopull][,inshiftdir][,outshiftdir]
' [,joinrxfifo][,jointxfifo][,joinrxfifoget][,joinrxfifoput]
PIO DMA RX pio, sm, nbr, data%()[,complinterrupt][,transfersize[,loopbackcount]
PIO DMA RX OFF
PIO DMA TX pio,sm,nbr,data%()[,completinterrupt][,transfersize][,loopbackcount]
PIO DMA TX OFF
PIO (EXECCTRL jmp_pin ,wrap_target , wrap [,side_pindir] [,side_en])
PIO EXECUTE pio, statestate_machine, statement%
PIO INIT
PIO INIT MACHINE pio%, statemachine%, clock speed [,pinctrl][,execctrl]
' [,shiftctrl][,startinstruct]
PIO INTERRUPT pio, sm [,RXinterrupt] [,TXinterrupt]
PIO MAKE RING BUFFER ivar%, size
PIO PROGRAM LINE pio, line, instruction
PIO PROGRAM pio, array%()
PIO READ pio, state_machine, number, data%[()]
PIO START pio, statemachine
PIO STOP pio, statemachine
PIO SYNC pio, statemachines, [,previousstatemachines] [,nextstatemachines]
PIO SYNC 0, 15,, 15
PIO WRITE pio, state_machine, count, data0[, data1....]
PIO WRITEFIFO a, b, v, d
~PIXEL
Pixel x, y [, c]
~PLAY
Play
Play ARRAY l%(), r%(), freq [,start] [,end] [,terminationinterrupt]
Play FLAC file$ [, interrupt]
Play LOAD SOUND array%()
Play MODFILE file$ [, interrupt]
Play MODSAMPLE Samplenum, channel [,volume]
Play MP3 file$ [, interrupt]
Play NEXT
Play PAUSE
Play PREVIOUS
Play RESUME
Play SOUND
Play SOUND chan, M, waveform, freq [,vol]
Play SOUND chan, L/R/B, U, freq
Play SOUND LOAD array%()
Play SOUND soundno, channelno, type [, frequency] [, volume]
Play STOP
Play TONE left [, right[, dur]] [,interrupt]]]
Play VOLUME left, right
Play WAV file$ [, interrupt]
Play WAV "A:mywav.wav"
Play MP3 file$ [, interrupt] '** VS1053 PLAY commands **
Play HALT
Play CONTINUE track$
Play MIDIFILE file$ [, interrupt]
Play MIDI
Play MIDI CMD cmd%, data1%, data2%
Play MIDI TEST n
Play NOTE ON channel%, note%, velocity%
Play NOTE OFF channel%, note% [,velocity%]
Play STREAM buffer%(), readpointer%, writepointer%
~POKE
Poke BYTE addr%, byte
Poke DISPLAY command [, data1] [, data2] [, datan]
Poke DISPLAY HRES n
Poke DISPLAY VRES n
Poke FLOAT addr%, float!
Poke INTEGER addr%, int%
Poke SHORT addr%, short%
Poke WORD addr%, word%
Poke VAR var, offset, byte
Poke VARTBL, offset, byte
~POLYGON
Polygon n, xarray%(), yarray%() [, bordercolor] [, fillcolor]
Polygon n(), xarray%(), yarray%() [, bordercolor()] [, fillcolor()]
Polygon n(), xarray%(), yarray%() [, bordercolor] [, fillcolor()]
~PORT
Port(start, nbr [, start, nbr]...) = value
~PRINT
Print #nbr, expression [[,;] expression] etc or ? is abbreviated print
Print #GPS, expression [[,;] expression] etc

Print @(x [, y]) expression
Print @(x, [y], m) expression
Print expression [[,;] expression] etc

~PULSE
Pulse pin, width 'Will generate a pulse on pin with a duration of width ms. ' SetPin pin, DOUT 
'SetPin pin(GPxx), cfg cfg = AIN,ARAW,DIN,FIN,PIN,CIN,DOUT
~PWM
PWM AUDIO output
PWM channel, frequency, [dutyA] [,dutyB] [,phase] [,defer] 'Servo or see Servo
PWM channel, OFF
PWM SYNC s0 [,s1] [,s2] [,s3][,s4] [,s5] [,s6] [,s7]

~RAM
' *** Ram RP2350 only with PSRAM enabled ***
Ram LIST
Ram LIST no. [,all]
Ram ERASE no.
Ram ERASE ALL
Ram SAVE no
Ram LOAD no
Ram RUN no
Ram CHAIN ​​no
Ram OVERWRITE no
Ram FILE LOAD nr, fname$ [,O[VERWRITE]]
~RANDOMIZE
Randomize nbr
~RBOX
RBox x, y, w, h [, r] [, c] [, fill]
~READ
Read variable [, variable]...
Read SAVE
Read RESTORE
~REDIM
REDIM [PRESERVE] array1(dimensions)[,array2 (dimensions]…[,arrayn (dimensions]
~REFRESH
Refresh
~REM
Rem String
~RENAME
Rename old$ As new$
~RESTORE
Restore [line]
~RETURN
Return
~RMDIR
Rmdir dir$
~RTC
RTC GETTIME
RTC SETTIME year, month, day, hour, minute, second
RTC SETREG reg, value
RTC GETREG reg, var
~RUN
Run
Run [file$][, cmdline$]
Run [file$]
~SAVE
Save COMPRESSED IMAGE file$ [,x, y, w, h]
Save CONTEXT [CLEAR]
Save file$
Save "FILE$"
Save "A:/FILE$" 'A: = Internal FLASH
Save "B:/PROGRAM/FILE$" 'B: = SD card
Save IMAGE
Save IMAGE file$ [, x, y, w, h]
Save PERSISTENT n%
~SEEK
Seek [#] fnbr, Pos
~SELECT
Select Case nbr% CASE testexp [[, testexp] ] <statements> <statements>
' CASE Else <statements> <statements> END SELECT
~SERVO
Servo channel [positionA [,positionB]
Servo channel,, positionB
' 90 servo: 0 = 0` and 90 = 90`
' 180 servo: 0 = 0` and 90 = 180`
' Note: for values 0 < servo > 90, the current may increase due to reaching the servo' end position.

' 360 servo speed:

' Stop = 50
' Clockwise = 49(Low) -> 0(High)
' Counterclockwise = 51(Low) -> 100(High)
~SETPIN
SetPin GP25, DOUT | HEARTBEAT ' see also: Option HEARTBEAT ON | OFF
SetPin pin, cfg [, optie] cfg: OFF, AIN, ARAW, DIN, FIN, PIN, CIN, DOUT
SetPin pin, cfg, doel [, optie] cfg: OFF, INTH, INTL, INTB
SetPin GP1, FFIN [,gate] ONLY RP2350 high frequency input
SetPin pin, IR
SetPin pin, PIOn
SetPin pin, cfg, target [, option]
SetPin p1 [, p2[, p3]], device
SetPin pin, PWM [nx ]
SetPin pin, cfg, target [, option]
SetPin rx, tx, COM1
SetPin rx, tx, COM2
SetPin rx, tx, clk, SPI
SetPin rx, tx, clk, SPI2
SetPin sda, scl, I2C
SetPin sda, scl, I2C2
~SETTICK
SetTick period, target [, nbr]
SetTick PAUSE, target [, nbr]
SetTick RESUME, target [, nbr]
~SORT
Sort array() [, indexarray()][, flags][, startposition][, elementstosort]
~SPI
SPI CLOSE
SPI OPEN speed, mode, bits
SPI 1 OPEN 1000000, 3
SPI READ nbr, array()
SPI WRITE nbr, array()
SPI WRITE nbr, data1, data2, data3, etc
SPI WRITE nbr, string$
SPI2 CLOSE
SPI2 OPEN speed, mode, bits
SPI 1 OPEN 1000000, 3
SPI2 READ nbr, array()
SPI2 WRITE nbr, array()
SPI2 WRITE nbr, data1, data2, data3, etc
SPI2 WRITE nbr, string$
~SPRITE
Sprite VGA AND HDMI ONLY VERSIONS
Sprite CLOSE [#]n
Sprite CLOSE ALL
Sprite COPY [#]n, [#]m, nbr
Sprite HIDE [#]n
Sprite HIDE ALL
Sprite RESTORE
Sprite HIDE SAFE [#]n
Sprite INTERRUPT Sub
Sprite READ [#]b, x, y, w, h
Sprite WRITE [#]b, x, y
Sprite LOAD fname$ [,start_sprite_number] [,mode]
Sprite LOADARRAY [#]n, w, h, array%()
Sprite LOADBMP [#]b, fname$ [,x] [,y] [,w] [,h]
Sprite LOADPNG [#]b, fname$ [,transparent] [,alphacut]
Sprite MOVE
Sprite NEXT [#]n, x, y
Sprite SCROLL x, y [,col]
Sprite SET TRANSPARENT n
Sprite SHOW [#]n, x, y, layer [,options]
Sprite SHOW SAFE [#]n, x,y, layer [,orientation] [,ontop]

Sprite SWAP [#]n1, [#]n2 [,orientation]

~STAR
STAR
STAR object alt, az [, ra_out, dec_out]
STAR alt, az, ra, dec [, pm_ra, pm_dec] [, ra_out, dec_out]

~STATIC
Static variable [, variables]
~STEPPER
STEPPER ' ** Only for the RP2350 **
' Max 3 Stepper motor axes (X, Y, Z) with support for G-Code, Acceleration 
'scheduling and Hardware limit switches, 100kHz interrupt for smooth pulses.

STEPPER INIT [arc_tolerance] [,buffer_size] 'arc_tolerance:arcsegmentation(mm)
STEPPER AXIS X|Y|Z, step_pin, dir_pin [, enable_pin] [, dir_invert]
[, steps_per_mm] [, max_vel] [, max_accel]
' Configures a specific axis (X, Y, or Z).
' axis: X, Y, or Z.
' step_pin/dir_pin: GPIO pins for step and direction signals.
' enable_pin: (Optional) GPIO pin for enable signal (active low).
' dir_invert: (Optional) 1 to reverse direction, 0 otherwise.
' steps_per_mm: (Optional) Number of steps required to move 1 mm.
' max_vel: (Optional) Maximum speed in mm/min.
' max_accel: (Optional) Maximum acceleration in mm/s
STEPPER HWLIMITS x_min, y_min, z_min [,x_max] [,y_max] [,z_max]
' Configures hardware limit switch pins. (active low)
STEPPER LIMITS X|Y|Z, min_mm, max_mm ' Sets soft limits for a shaft in mm.
STEPPER ESTOP ' Emergency stop: Stops movement immediately, clears buffer, drivers off.
STEPPER GC <gcode> [words...]' codes: G0,G1,G2,G3,G4,G28,G90,G91,G92,M3,M5
STEPPER GCODE G0|G1|G2|G3|G4|G28|G90[,X,x][,Y,y][,Z,z][,F,f][,I,i][,J,j][,R,r]
' Example: STEPPER GCODE G1, X, 10, Y, 5, F, 500
STEPPER POSITION HOME 'Sets all axes to position 0 and clears G92 offsets.
STEPPER POSITION X|Y|Z, position 'Current position at the specified value (mm).
STEPPER SCURVE 0|1

' Toggles(1) or deactivates(0) S-curve acceleration for smoother movement
STEPPER JERK value 'Sets the jerk limit in mm/s for S-curve planning.
STEPPER SPINDLE pin [,invert] 'Configures a spindle control pin.
STEPPER RUN 'Turns on the system and starts executing commands.
STEPPER CLEAR 'Clears the G-code buffer (only when the movement is inactive).
STEPPER STATUS 'Displays a detailed system status, including

' axis positions, buffer status, and configuration.

STEPPER CLOSE 'Turns off the stepper motor subsystem and frees up resources

PEEK(STEPPER X) 'Returns the current position of the workspace axis in mm (X/Y/Z) or

PEEK(STEPPER Y) 'returns the active status. 
PEEK(STEPPER Z)		   
PEEK(STEPPER ACTIVE)'ACTIVE returns 1 when the stepper motor is actively processing tasks in the queue, otherwise 0).

~SUB
Sub xxx(arg1 [, arg2,...]) <statements> <statements> END SUB
~SYNC
SYNC time% [,period]
SYNC
~TEMPR
TEMPR(PIN)[,timeout]
' Returns the temperature measured with the DS18B20 to 0.25 `C accuracy.
' If a measurement is incorrect or an error occurs, return 1000.
' The supply voltage must be 3V - 5V.

TEMPR START pin [, precision][,timeout]
' This command must be present within a loop.
' 0 = 0.5 `C Resolution, 100ms conversion time. ' 1 = 0.25 `C Resolution, 200ms conversion time. (standard)
' 2 = 0.125 `C Resolution, 400ms conversion time.
' 3 = 0.0625 `C Resolution, 800ms conversion time. 
~TEXT 
Text x, y, string$ [, alignment$][, font][, scale] [, c][, bc]
' x=MM.HRES\2,y=VRES\2,alignment$=x(LCR)y(TMB),font=1-8,scale=x1,c=RGB(red),bc
' x: L=Left C=Center R=Right y: T=Top M=Center B=Bottom bc=Background=RGB()
~TILE
TILE x, y [,foreground] [,background][,nbr_tiles_wide][,nbr_tiles_high]
TILE HEIGHT n
~Time$
Time$ = "HH:MM:SS" 'Truncate with Left$(Time$,5) = HH:MM
Time$ = "HH:MM"
Time$ = "HH" 'Output is HH:MM:SS
~Timer
Timer = msec
~TRACE
Trace ON | OFF
Trace LIST nn
~Triangle
Triangle RESTORE [#]n
Triangle SAVE [#]n, x1, y1, x2, y2, x3, y3
Triangle X1, Y1, X2, Y2, X3, Y3 [, C [, FILL]]
' triangle = triangle 1,3, 5,0, 5,6,, fill=15=white
~Turtle
Turtle
' Movement commands:

Turtle FORWARD distance 'Move forward by distance pixels.
Turtle FD distance 'Move forward by distance pixels.
Turtle BACK distance 'Move backward by distance pixels.
Turtle BK distance 'Move backward by distance pixels.

Turtle BACKWARD distance 'Move backward by distance pixels. 
Turtle LEFT [angle] 'Turn left by 90' if not specified.
Turtle LT [angle] 'Turn left by 90' if not specified.
Turtle TURNLEFT [angle] 'Turn left by 90' if not specified.
Turtle RIGHT [angle] 'Turn right by 90' if not specified.
Turtle RT [angle] 'Turn right by 90' if not specified.
Turtle TURNRIGHT [angle] 'Turn right by 90' if not specified.
Position commands:



Turtle SetXY x, y 'Move to absolute position. (x, y)

Turtle MOVE x, y 'Move to absolute position. (x, y)

Turtle SETX x 'Set chord, retain Y.

Turtle SETY y 'Set chord, retain X.

Turtle SETHEADING angle 'Set absolute course. (0=up, 90=right)

Turtle SETH angle 'Set absolute course. (0=up, 90=right)

Turtle HOME 'Return to center (MM.HRES\2, MM.VRES\2) course 0.

' Pen control commands:

Turtle PENUP 'Lift pen. (stop drawing)

Turtle PU 'Lift pen. (stop drawing)

Turtle PENDOWN 'Lower pen. (start drawing)

Turtle PD 'Lower pen. (start drawing)

Turtle PENCOLOR color 'Set pen color.

Turtle PC color 'Set pen color.

Turtle PENWIDTH width 'Set pen line width.
Turtle PW width 'Set pen line width.
' Arc and curve commands:

Turtle Arc radius, angle 'Draw arc with given radius and angle. Turtle ARCLEFT radius, angle 'Draw an arc that turns to the left.

Turtle ARCL radius, angle 'Draw an arc that turns to the left.
Turtle ARCRIGHT radius, angle 'Draw an arc that turns to the right.

Turtle ARCR radius, angle 'Draw an arc that turns to the right.

Turtle BEZIER cp1, cp1angle, cp2, cp2angle, end, enangle
'Draw a Bezier curve with control points.

' Basic shape commands:

Turtle Circle radius 'Draw a circle at the current position.

Turtle DOT size 'Draw a filled dot. (default size=5)

Turtle FCIRCLE radius 'Draw a filled circle.

Turtle FRECTANGLE width, height 'Draw a filled rectangle.

Turtle FRECT width, height 'Draw a filled rectangle.

Turtle WEDGE radius, start, end 'Draw a filled wedge/pie slice. 'Fill commands:
Turtle FillCOLOUR color 'Set the fill color and toggle fill.
Turtle FC color 'Set the fill color and turn on fill.

Turtle FillPATTERN pattern 'Set the fill pattern. (0 - 31)

Turtle FP pattern 'Set the fill pattern. (0 - 31)

Turtle NOFILL 'Turn off fill.

Turtle Fill 'Flood fill at the current position.

Turtle BEGIN_FILL 'Start recording polygon for fill.

Turtle BF 'Start recording polygon for fill.

Turtle END_FILL 'End recording and fill polygon.

Turtle EF 'End recording and fill polygon.

' Cursor commands:

Turtle SHOWTURTLE 'Show turtle cursor.
Turtle ST 'Show turtle cursor.
Turtle HIDETURTLE 'Hide turtle cursor.
Turtle HT 'Hide turtle cursor. Turtle CURSORSIZE size 'Set cursor size.
Turtle CS size 'Set cursor size.
Turtle CURSORCOLOR color 'Set cursor color.
Turtle CC color 'Set cursor color.
Turtle STAMP 'Draw a turtle at current x,y position.
' Status management commands:

Turtle RESET [show] 'Clear screen and reset everything, show the turtle if show=1
Turtle PUSH 'Save current position and course to stack.
Turtle POP 'Restore position and course from stack.
Turtle FILLPATTERN pattern 'Fill patterns. (pattern = 0 - 31)
Turtle FP pattern 'Fill patterns. (pattern = 0 - 31)

' 0 : Solid fill. (P=empty) 16 : Grid.

' 1 : Checkerboard. 17 : Weave pattern.

' 2 : Vertical lines. 18 : Diamond.
' 3 : Horizontal lines. 19 : Diagonal gradient.
' 4 : Diagonal cross. 20 : Inverted diagonal gradient.
' 5 : Diagonal stripes. 21 : Border/frame.
' 6 : Crosshatching. 22 : Vertical split.
' 7 : Fine diagonal. 23 : Woven.
' 8 : Dense checkerboard. 24 : Thin dots.
' 9 : Medium right diagonal. 25 : Very fine diagonal.
' 10 : Medium left diagonal. 26 : Upward arrow.
' 11 : Medium vertical lines. 27 : Dense dots.
' 12 : Medium horizontal lines. 28 : Chevron.
' 13 : Large checkerboard. 29 : Diamond hollow.
' 14 : Dotted vertical. 30 : Circle.
' 15 : Horizontal stripes solid. 31 : Circle filled.

~TYPE
TYPE struct-name struct-mber1, struct-mber2 ... END TYPE
~UPDATE
Update Firmware 'This can be done during an update if the BOOT button is not available.

~VAR
VAR 'Flash memory experiences wear with every disk action.

' Stores one or more variables in non-volatile FLASH memory where they

' can be restored later.

VAR CLEAR
VAR RESTORE

' VAR RESTORE retrieves the previously stored variables and inserts them and their

' values ​​into the variable table.

VAR SAVE var [, var] ...

' VAR can be any number of numeric or string variables and/or arrays
'. Arrays are specified by using empty parentheses. e.g. Var()

' The available storage space for this command is 16 KB. Stored arrays
' must be declared (with DIM) before they can be restored.

' The LENGTH qualifier can be used when a string array is
' declared to reduce the size of the array (see also DIM).

~WatchDog
WatchDog HW timeout
WatchDog HW OFF
WatchDog OFF
WatchDog timeout
~WII
Wii [CLASSIC] OPEN [,interrupt]
Wii [CLASSIC] CLOSE
Wii Nunchuck OPEN [,interrupt] [myint]
Wii Nunchuck CLOSE
~WEB
' *** WEB only RP2040W or RP2350W ***
WEB CLOSE TCP CLIENT
WEB CONNECT [ssid$, passwd$, [name$] [,ipaddress$, mask$, gateway$]]
WEB MQTT CONNECT addr$, port, user$, passwd$ [, interrupt]
WEB MQTT PUBLISH topic$, msg$, [,qos] [,retain]
WEB MQTT SUBSCRIBE topic$ [,qos]
WEB MQTT UNSUBSCRIBE topic$
WEB MQTT CLOSE
WEB NTP [timeoffset [, NTPserver$]] [, timeout]]]
WEB OPEN TCP CLIENT address$, port
WEB OPEN TCP STREAM address$, port
WEB SCAN [array%()]
WEB TCP CLIENT REQUEST request$, buff%() [,timeout]
WEB TCP CLIENT STREAM command$, buffer%(), readpointer%, writepointer%
WEB TCP INTERRUPT InterruptSub
WEB TCP READ cb%, buff%()
WEB TCP SEND cb%, data%()
WEB TCP CLOSE cb%
WEB TRANSMIT CODE cb%, nnn%
WEB TRANSMIT FILE cb%, filename$, content-type$
WEB TRANSMIT PAGE cb%, filename$[,buffersize]
WEB UDP INTERRUPT ingestion
WEB UDP SEND addr$, port, data$
~WS2812
WS2812 type, pin, nbr, value%[()]
~While
While
~XMODEM
XModem CRUNCH
XModem RECEIVE
XModem RECEIVE file$
XModem R "test.jpg"
XModem SEND
XModem SEND file$
~YMODEM
YMODEM SEND 'Only RP2350 versions without USB
YMODEM S 'If the file is loaded from drive A: or B: FILEn.DAT
YMODEM SEND file$
YMODEM RECEIVE
YMODEM R
YMODEM RECEIVE file$
YMODEM CRUNCH
YMODEM C
'
' *** FUNCTIONS, STRINGS and OPERATORS ***

~CALCULATION
' CALCULATION
' ** Arithmetic operators **
^ 'Exponentiation '> ? 2 ^ 2 = 4
* 'Multiply '> ? 45 * 22 =

+ 'Addition '> ? 23 + 25 = 48

- 'Subtract
/ 'Division into tenths
\ 'Integer division
MOD 'Modulus. '> ? 15 MOD 4 = 3. Round numbers first!

SQR(number) 'The root of a number.

~LOGIC
' LOGIC
' ** Logical operator and String **

< 'Less than.
> 'Greater than.

<< 'Shift left. '(x << y)
>> 'Shift right. '(x >> y)
'Means that the returned value is the value of x shifted by y

'bits to the left while >> means the same only shifted to the right.

<= 'Less than or equal to.

>= 'Greater than or equal to.

<> 'Inequality.
= 'Equality.

NOT 'Invert the logical value on the right side. Not a = b is a <> b
INV 'Bitwise inversion of the value on the right side. ' (e.g. a = INV b)
AND 'Logical operator AND. '(SERIES) > ? 1 AND 1 = 1 or 0 AND 1 = 0
OR 'Logical operator OR. '(PARALLEL > ? 1 OR 1 = 1 or 1 OR 0 = 1
XOR 'Logical operator eXclusive OR XOR. '> ? 1 XOR 1 = 0 or 0 XOR 1 = 0
+ 'Concatenate two strings.
~@
@(
~ABS
ABS(number)
~ACOS
ACOS(number)
~And
AND
~As
ASH
~ASC
ASC(string$)
~ASIN
ASIN(number)
~ATAN2
ATAN2(y, x)
~ATN
ATN(number)
~BIN$
BIN$(number [, chars])
~BIN2STR$
BIN2STR$(type, value [, BIG])
~BIT
Bit(var%, bitno)
~BOUND
BOUND(array() [, dimension]
~BYTE
Byte(var$, byteno)
~CALL
Call (userfunname$, [, userfunparameters,....])
~CHOICE
CHOICE(condition, ExpressionIfTrue, ExpressionIfFalse)
~CHR$
CHR$(number)
~CINT
CINT(number)
~COS
COS(number)
~CTRLVAL
CtrlVal(#ref)
~Cwd$
CWD$
~Date$
Date$
DATETIME$(n)
~DAY$
DAY$(Date$)
~DEG
DEG(radians)
~DEVICE
Device (GAMEPAD channel, function)
Device (MOUSE channel, function)
Device (WII [CLASSIC] function)
Device (WII NUNCHUCK function)
Device (NUNCHUCK x)
~DIR$
DIR$( )
DIR$(fspec, type)
DIR$(fspec)
~DISTANCE
DISTANCE(trigger; echo)
DISTANCE(trigger echo)
~DRAW3D
Draw3D(arg)
Draw3D(XMIN n)
Draw3D(XMAX n)
Draw3D(YMIN n)
Draw3D(YMAX n)
Draw3D(DISTANCE n)
Draw3D(X n)
Draw3D(Y n)
Draw3D(Z n)
~Else
Else
~EOF
EOF( [#] fnbr)
~EPOCH
EPOCH(DATETIME$)
~EVAL
EVAL(string$)
~EXP
EXP(number)
~FIELD$
Field$(
~FIX
FIX(number)
~FLAG
Flag(n%)
~For
For
~FORMAT$
FORMAT$(nbr [, fmt$])
~GetScanLine
GETSCANLINE
~GoSub
GoSub
~GoTo
GoTo
~GPS
GPS()
GPS(ALTITUDE)
GPS(DATE)
GPS(DOP)
GPS(FIX)
GPS(GEOID)
GPS(LATITUDE)
GPS(LONGITUDE)
GPS(SATELLITES)
GPS(SPEED)
GPS(TIME)
GPS(TRACK)
GPS(VALID)
~HEX$
HEX$(number [, chars])
~Inkey$
INKEY$
~INPUT
Input$(nbr, [#]fnbr)
~INSTR
INSTR( [start position,] string searched$, string pattern$ [,size])
~INT
INT(number)
~INV
INV
~JSON$
JSON$(array%(), string$) 'Web only version
~KEYDOWN
KEYDOWN(n)
~LCASE$
LCASE$(string$)
~LCOMPARE
LCOMPARE((array1%(), array2%())
~LEFT$
LEFT$(string$, nbr)
~LEN
LEN(string$)
~LGETBYTE
LGETBYTE(array%(), n)
~LGETSTR$
LGETSTR$(array%(), start, length)
~LInput
LINPUT(array%(),fnbr,nbr)
~LINSTR
LINSTR(array%(), search$ [, start] [,size]))
~LLEN
LLEN(array%())
~LOC
LOC([#]fnbr)
~PRAISE
LOF([#]fnbr)
~LOG
LOG(number)
~MAP
Folder(s)
Map(n) = RGB888value 'n = 0 to 255
Map SET
Map RESET
' Print Map(n) 'n = 0 to 255
~MATH
' *** Simple functions ***
Math (ATAN3 x, y)
Math (COSH a)
Math (LOG10 a)
Math (RAND)
Math (SINH a)
Math (TANH a)
Math (CRCn data [,length] [,polynome] [,startmask][,endmask][,reverseIn]
' [,reverseOut]
Math (CRC8 array(), length, [polynomial,][startmask,][endmask,][reverseIn,]
' [reverseOut]
Math (CRC12 array(), length, [polynomial,][startmask,][endmask,][reverseIn,]
' [reverseOut]
Math (CRC16 array(), length, [polynomial,][startmask,][endmask,][reverseIn,]
' [reverseOut]
Math (CRC32 array(), length, [polynomial,][startmask,][endmask,][reverseIn,]
' [reverseOut]
' *** Simple statistics ***
Math (CHI a())
Math (CHI_p a())
Math (CROSSING array() [,level] [,direction]
Math (CORREL a(), b())
Math (MAX a() [, index%])
Math (MEAN a())
Math (MEDIAN a())
Math (MIN a(), [index%])
Math (SD a())
Math (SUM a())
'***Vector arithmetic***
Math (MAGNITUDE v())
Math (DOTPRODUCT v1(), v2())
' *** Matrix Arithmetic ***
Math (M_DETERMINANT sequence!())
' *** Floating returns ***
real! = Math(C_REAL complex%)
imag! = Math(C_IMAG complex%)
arg! = Math(C_ARG complex%)
mod! = Math(C_MOD complex%)
phase! = Math(C_PHASE complex%)
' *** Unary functions ***
complex1% = Math(C_CONJ complex2%)
complex1% = Math(C_SIN complex2%)
complex1% = Math(C_COS complex2%)
complex1% = Math(C_TAN complex2%)
complex1% = Math(C_ASIN complex2%)
complex1% = Math(C_ACOS complex2%)
complex1% = Math(C_ATAN complex2%)
complex1% = Math(C_SINH complex2%)
complex1% = Math(C_COSH complex2%)
complex1% = Math(C_TANH complex2%)
complex1% = Math(C_ASINH complex2%)
complex1% = Math(C_ACOSH complex2%)
complex1% = Math(C_ATANH complex2%)
complex1% = Math(C_PROJ complex2%)
'***Creation***
complex% = Math(C_CPLX r!, i!)
complex% = Math(C_POLAR radius!, angle!)
' *** Basic Arithmetic ***
complex1% = Math(C_ADD complex2%, complex3%)
complex1% = Math(C_SUB complex2%, complex3%)
complex1% = Math(C_MUL complex2%, complex3%)
complex1% = Math(C_DIV complex2%, complex3%)
complex1% = Math(C_POW complex2%, complex3%)
complex1% = Math(C_AND complex2%, complex3%)
complex1% = Math(C_OR complex2%, complex3%)
complex1% = Math(C_XOR complex2%, complex3%)
Math (PID channel, setpoint!, measurement))
Math (BASE64 ENCODE | DECODE in$ | in(), out$ | out())
~MAX
MAX(arg1 [,arg2 [,...]])
~MIN
MIN(arg1 [,arg2 [,...]])
~MID$
MID$(string$, start)
MID$(string$, start, nbr)
~MM
' MM.INFO()
' MM.INFO$()
' MM.INFO(ADC)
' MM.INFO(ADC DMA)
' MM.INFO$(AUTORUN)
' MM.INFO(BCOLOUR)
' MM.INFO(BOOT
' MM.INFO(BOOT COUNT)
' MM.INFO$(CALLTABLE)
' MM.INFO$(CPUSPEED)
' MM.INFO$(CURRENT)
' MM.INFO(DEVICE)
' MM.INFO(DISK SIZE)
' MM.INFO$(DISK SIZE)
' MM.INFO$(DRIVE) Returns A: or B: back.
' MM.INFO(EXISTS FILE fname$)
' MM.INFO(EXISTS DIR dname$)
' MM.INFO(FCOLOUR)
' MM.INFO(FILESIZE file$)
' MM.INFO(FLASH)
' MM.INFO$(FLASH)
' MM.INFO(FLASH ADDRESS n)
' MM.INFO(FONT)
' MM.INFO(FONT ADDRESS n)
' MM.INFO(FONT POINTER n)
' MM.INFO(FONTHIGHT)
' MM.INFO(FONTWIDTH)
' MM.INFO(FREE SPACE)
' MM.INFO$(FREE SPACE)
' MM.INFO(HEAP)
' MM.INFO(HPOS)
' MM.INFO(ID)
' MM.INFO$(IP ADDRESS)
'MM.INFO(LCD320)
' MM.INFO$(LCDPANEL)
' MM.INFO$(LINE)
' MM.INFO(MAX GP)
' MM.INFO(MAX VARS)
' MM.INFO$(MODBUFF ADDRESS)
' MM.INFO$(MODIFIED file$)
' MM.INFO(OPTION ANGLE)
' MM.INFO$(OPTION FLASH SIZE)
' MM.INFO(OPTION option)
' MM.INFO$(OPTION option)
' MM.INFO$(PATH)
' MM.INFO(PINNO GPnn)
' MM.INFO$(PINNO GPnn)
' MM.INFO$(PIN pinno)
' MM.INFO$(PLATFORM)
' MM.INFO(PIO RX DMA)
' MM.INFO(PIO TX DMA)
' MM.INFO(PROGRAM)
'MM.INFO(PS2)
' MM.INFO(PWM COUNT)
' MM.INFO(PWM DUTY C%, n%)
' MM.INFO(SDCARD)
' MM.INFO$(SDCARD)
' MM.INFO$(SOUND)
' MM.INFO(SPI SPEED
' MM.INFO(STACK)
' MM.INFO(SYSTICK)
' MM.INFO(SYSTEM HEAP)
' MM.INFO$(SYSTEM I2C)
' MM.INFO(TCP PORT)
' MM.INFO(TCPIP STATUS)
' MM.INFO(TILE HEIGHT)
' MM.INFO(TRACK)
' MM.INFO$(TOUCH)
' MM.INFO(UDP PORT)
' MM.INFO(UPTIME)
' MM.INFO(USB n)
' MM.INFO(USB VID n)
' MM.INFO(USB PID n)
' MM.INFO(VALID CPUSPEED speed%)
' MM.INFO(VARCNT)
' MM.INFO(VERSION)
' MM.INFO(VPOS)
' MM.INFO(WIFI STATUS)
' MM.INFO(WRITEBUFF)
MM.ADDRESS$
MM.CMDLINE$
MM.CODE
MM.DEVICE$ 'Note: To query MM.xxx after > first ? or Print
MM.DISPLAY
MM.ERRMSG$
MM.ERRNO
MM.FLAGS
MM.FONTHEIGHT
MM.FONTWIDTH
MM.HEIGHT
MM.HRES
MM.HPos
MM.HRES
MM.I2C
MM.MESSAGE$
MM.ONEWIRE
MM.PERSISTENT
MM.PS2
MM.SUPPLY
MM.TOPIC$
MM.VER
MM.VPos
MM.VRes
MM.WATCHDOG
MM.WIDTH
~Mod
MOD 'Modulus. Result = Number1 MOD Number2. Number1 / Number2 and give the rest.
' 14 MOD 4 = 2 (because 4 goes into 14 3 times, remainder 2). 10 MOD 3 = 1, 20 MOD 5 = 0
' Round the numbers first. Widely used for checking even or odd number.
~MSGBOX
MSGBOX(msg$, b1$ [, b2$ b4$])
~Not
NOT
~OCT$
OCT$(number [,chars])
~Or
OR
~PEEK
PEEK(BP n%)
PEEK(BYTE addr%)
PEEK(CFUNADDR cfun)
PEEK(FLOAT addr%)
PEEK(INTEGER addr%)
PEEK(PROGMEM, offset)
PEEK(SHORT addr%)
PEEK(SP n%)
PEEK(VARADDR var)
PEEK(VAR var, offset)
PEEK(VARTBL, offset)
PEEK(WORD addr%)
PEEK(WP n%)
~Pi
PI
~PIN
Pin(BOOTSEL)
Pin(pin)
Pin(Pinno/GPno)
Pin(TEMP)
~PIO
PIO (DMA RX POINTER)
PIO (DMA TX POINTER)
PIO (EXECCTRL jmp_pin, wrap_target, wrap)
PIO (EXECCTRL jmp_pin, wrap_target, wrap [,side_pindir] [,side_en])
PIO (FDEBUG pio)
PIO (FLEVEL pio)
PIO (FLEVEL pio, sm, DIR
PIO (FSTAT pio)
PIO (NEXT LINE)
PIO (PINCTRL no_side_set_pins [,no_set_pins][,no_out_pins][,IN base]
' [,side_set_base][,set_base][,out_base])
PIO (SHIFTCTRL push_threshold [,pull_threshold][,autopush][,autopull]
' [,in_shiftdir][,out_shiftdir][,fjoin_rx][,fjoin_tx])
PIO (READFIFO a, b, c)
PIO (.WRAP)
PIO (.WRAP TARGET)
~PIXEL
Pixel (x, y [, page number])
~PORT
Port(start, nbr [, start, nbr] ...)
~Pos
POS
~PULSIN
PULSIN(pin, polarity)
PULSIN(pin, polarity, t1)
PULSIN(pin, polarity, t1, t2)
~RAD
RAD(degrees)
~RGB
RGB(red, green, blue)
RGB(shortcut)
~RIGHT$
RIGHT$(string$, number characters)
~Rnd
RND
RND(number)
~SGN
SGN(number)
~SIN
SIN(number)
~SPACE$
SPACE$(number)
~SPI
SPI (data)
SPI2(data)
~SPRITE
Sprite()
Sprite(C, [#]n)
Sprite(C, [#]n, m)
Sprite(D, [#]s1,[#]s2)
Sprite(E, [#]n)
Sprite(H, [#]n)
Sprite(L, [#]n)
Sprite(N)
Sprite(N, n)
Sprite(S)
Sprite(T, [#]n)
Sprite(V, spriteno1, spriteno 2)
Sprite(V, [#]so1, [#]s2)
Sprite(W, [#]n)
Sprite(X, [#]n)

Sprite(Y, [#]n)

~SQR
SQR(number)
~Step
STEP
~STR$
STR$(number)
STR$(number, m)

STR$(number, m, n)
' Rounding numbers. m = number of digits before the decimal point. n = number after the decimal point
STR$(number, m, n, c$)
~STR2BIN
STR2BIN(type, string$ [, BIG])
~STRING$
STRING$(nbr, ascii)
STRING$(nbr, string$)
~TAB
TAB(number)
~TAN
TAN(number)
~TEMPR
TEMPR(pin [, timeout]) 'See also TEMPR GO
~Then
THEN
~Time$
Time$
~Timer
Timer
~To
TO
~TOUCH
TOUCH(X)
TOUCH(Y)
TOUCH(X2) 'FT6336 only
TOUCH(Y2) 'FT6336 only
~Trim$()
TRIM$(source$ [,mask$] [,where/where$])
~UCASE$
UCASE$(string$)
~Until
UNTIL
~VAL
VAL(string$)
~While
While
~Xor
XOR