About
1.
Introduction
2.
Firmware Versions and Files
3.
Serial Console
4.
First Steps
5.
Programming in BASIC - A Tutorial
5.1.
Command Prompt
5.2.
Comments
5.3.
PRINT
5.4.
Variables
5.5.
Expressions
5.6.
Console Input
5.7.
IF
5.8.
FOR
5.9.
DO Loops
5.10.
Arrays
5.11.
Integer
5.12.
String
5.13.
DIM
5.14.
CONST
5.15.
SUB
5.16.
Functions
5.17.
LOCAL
5.18.
STATIC
6.
Hardware Details
7.
Using MMBasic
8.
Full Screen Editor
9.
Variables and Expressions
10.
Subroutines and Functions
11.
Video Output
12.
Keyboard/Mouse/Gamepad
13.
Program and Data Storage
14.
Sound Output
15.
Using the I/O pins
16.
Special Device Support
16.1.
Infrared receiver
16.2.
Infrared transmitter
16.3.
DS18B20 temperature sensor
16.4.
DHT22 temperature/humidity sensor
16.5.
LCD display modules
16.6.
Numeric keypads
16.7.
Battery backed clock
16.8.
Ultrasonic distance sensor
16.9.
WS2812 RGB LEDs
16.10.
OV7670 Camera
17.
Display Panels
18.
Graphics Functions
18.1.
Fonts
18.1.1.
Character Set
18.1.2.
Font 1
18.1.3.
Font 2
18.1.4.
Font 3
18.1.5.
Font 4
18.1.6.
Font 5
18.1.7.
Font 6
18.1.8.
Font 7
18.1.9.
Font 8
19.
WiFi and Internet Functions
20.
Long Strings
21.
MMBasic Characteristics
22.
Predefined Read Only Variables
23.
Options
23.1.
Audio
23.1.1.
OPTION AUDIO
23.1.2.
OPTION AUDIO SPI
23.1.3.
OPTION AUDIO VS1053
23.1.4.
OPTION AUDIO I2S
23.1.5.
OPTION FAST AUDIO
23.2.
Behavior
23.2.1.
OPTION ANGLE
23.2.2.
OPTION BASE
23.2.3.
OPTION DEFAULT
23.2.4.
OPTION DEFAULT COLOURS
23.2.5.
OPTION DEFAULT MODE
23.2.6.
OPTION ESCAPE
23.2.7.
OPTION EXPLICIT
23.2.8.
OPTION LEGACY
23.3.
Command Prompt
23.3.1.
OPTION AUTORUN ON
23.3.2.
OPTION AUTORUN OFF
23.3.3.
OPTION AUTORUN
23.3.4.
OPTION BREAK
23.3.5.
OPTION CASE
23.3.6.
OPTION COLOURCODE
23.3.7.
OPTION CONSOLE OUTPUT
23.3.8.
OPTION CONTINUATION
23.3.9.
OPTION FNKEY
23.3.10.
OPTION TAB
23.4.
Display
23.4.1.
OPTION AUTOREFRESH
23.4.2.
OPTION DISPLAY
23.4.3.
OPTION HDMI PINS
23.4.4.
OPTION LCD320
23.4.5.
OPTION LCDPANEL VIRTUAL
23.4.6.
OPTION LCDPANEL OPTIONS
23.4.7.
OPTION LCDPANEL CONSOLE FONT
23.4.8.
OPTION LCDPANEL CONSOLE FONT HDMIVGA
23.5.
Hardware
23.5.1.
OPTION BAUDRATE
23.5.2.
OPTION COUNT
23.5.3.
OPTION CPUSPEED
23.5.4.
OPTION HEARTBEAT
23.5.5.
OPTION PICO
23.5.6.
OPTION POWER
23.5.7.
OPTION PSRAM
23.5.8.
OPTION SYSTEM I2C
23.5.9.
OPTION SYSTEM SPI
23.5.10.
OPTION VCC VOLTAGE
23.5.11.
OPTION RTC AUTO
23.5.12.
OPTION SERIAL CONSOLE
23.6.
Keyboard
23.6.1.
OPTION KEYBOARD
23.6.2.
OPTION KEYBOARD DISABLE
23.6.3.
OPTION KEYBOARD I2C
23.6.4.
OPTION KEYBOARD PINS
23.6.5.
OPTION KEYBOARD REPEAT
23.7.
Mouse
23.7.1.
OPTION MOUSE
23.7.2.
OPTION MOUSE DISABLE
23.7.3.
OPTION NOCHECK
23.8.
Network
23.8.1.
OPTION TCP SERVER PORT
23.8.2.
OPTION TELNET CONSOLE
23.8.3.
OPTION TFTP
23.8.4.
OPTION UDP SERVER PORT
23.8.5.
OPTION WEB MESSAGES
23.8.6.
OPTION WIFI
23.9.
Storage
23.9.1.
OPTION SDCARD
23.9.2.
OPTION SDCARD COMBINED
23.9.3.
OPTION MODBUFF
24.
Commands
24.1.
Program Control & Flow
24.1.1.
CALL
24.1.2.
CASE
24.1.3.
CONTINUE
24.1.4.
DO
24.1.5.
END
24.1.6.
ENDIF
24.1.7.
EXECUTE
24.1.8.
EXIT
24.1.9.
FOR
24.1.10.
FUNCTION
24.1.11.
GOTO
24.1.12.
IF
24.1.13.
LOOP
24.1.14.
NEXT
24.1.15.
ON ERROR
24.1.16.
ON KEY
24.1.17.
ON PS2
24.1.18.
PAUSE
24.1.19.
REM
24.1.20.
RETURN
24.1.21.
RUN
24.1.22.
SELECT
24.1.23.
SELECT CASE
24.1.24.
SUB
24.1.25.
WHILE
24.2.
Variables & Data
24.2.1.
CLEAR
24.2.2.
CONST
24.2.3.
DATA
24.2.4.
DIM
24.2.5.
EACH
24.2.6.
ERASE
24.2.7.
LET
24.2.8.
LOCAL
24.2.9.
READ
24.2.10.
RESTORE
24.2.11.
STATIC
24.3.
Input/Output
24.3.1.
CIN
24.3.2.
CLOSE
24.3.3.
FIN
24.3.4.
IN
24.3.5.
INPUT
24.3.6.
LINE INPUT
24.3.7.
MOUSE
24.3.8.
OPEN
24.3.9.
PRINT
24.3.10.
WRITE
24.4.
Graphics & Display
24.4.1.
ARC
24.4.2.
BACKLIGHT
24.4.3.
BLIT
24.4.4.
BOX
24.4.5.
CIRCLE
24.4.6.
CLS
24.4.7.
COLOR
24.4.8.
DEFINEFONT
24.4.9.
FONT
24.4.10.
FRAMEBUFFER
24.4.11.
IMAGE
24.4.12.
LCD
24.4.13.
LINE
24.4.14.
MAP
24.4.15.
PIXEL
24.4.16.
POLYGON
24.4.17.
REFRESH
24.4.18.
RGB8
24.4.19.
TEXT
24.4.20.
TRIANGLE
24.5.
Hardware Control
24.5.1.
ANALOG
24.5.2.
CLKPIN
24.5.3.
CONFIGURE
24.5.4.
DIGITAL
24.5.5.
PIN
24.5.6.
PLKPIN
24.5.7.
PULL
24.5.8.
PULSE
24.5.9.
PUSH
24.5.10.
PWM
24.5.11.
RETPIN
24.5.12.
SERVO
24.5.13.
SETPIN
24.6.
Communication
24.6.1.
I2C
24.6.2.
IR
24.6.3.
ONEWIRE
24.6.4.
SPI
24.6.5.
SPI2
24.6.6.
XMODEM
24.7.
File Operations
24.7.1.
CAT
24.7.2.
CHAIN
24.7.3.
CHDIR
24.7.4.
COPY
24.7.5.
DRIVE
24.7.6.
FILES
24.7.7.
KILL
24.7.8.
LOAD
24.7.9.
MKDIR
24.7.10.
RENAME
24.7.11.
RMDIR
24.7.12.
SAVE
24.7.13.
SEE
24.7.14.
SEEK
24.8.
Math & Calculations
24.8.1.
MATH
24.8.2.
RANDOMIZE
24.9.
System & Configuration
24.9.1.
AUTOSAVE
24.9.2.
CPU
24.9.3.
DATE
24.9.4.
HELP
24.9.5.
LIST
24.9.6.
MEMORY
24.9.7.
MODE
24.9.7.1.
MODE (HDMI)
24.9.7.2.
MODE (VGA)
24.9.8.
NEW
24.9.9.
OPTION
24.9.10.
RAM
24.9.11.
RTC
24.9.12.
TIME
24.9.13.
TIMER
24.9.14.
VAR SAVE
24.10.
Advanced Features
24.10.1.
ARRAY
24.10.2.
BIT
24.10.3.
BITBANG
24.10.4.
BYTE
24.10.5.
CAMERA
24.10.6.
CMM2
24.10.7.
CSUB
24.10.8.
DEVICE
24.10.9.
DRAW3D
24.10.10.
ENABLE
24.10.11.
ENCODE
24.10.12.
FFTARRAY
24.10.13.
FLAG
24.10.14.
FLAGS
24.10.15.
FLASH
24.10.16.
FLOAT
24.10.17.
FLUSH
24.10.18.
GAMEPAD
24.10.19.
GUI
24.10.20.
HDMI
24.10.21.
HUMID
24.10.22.
INC
24.10.23.
INTEGER
24.10.24.
INTERRUPT
24.10.25.
INTERRUPTSUB
24.10.26.
IRQ
24.10.27.
JMP
24.10.28.
KEYPAD
24.10.29.
LENGTH
24.10.30.
LIBRARY
24.10.31.
LONGSTRING
24.10.32.
LW
24.10.33.
MID
24.10.34.
MM
24.10.35.
MOV
24.10.36.
NOP
24.10.37.
NTPSERVER
24.10.38.
OFF
24.10.39.
OP
24.10.40.
OR
24.10.41.
OUT
24.10.42.
PICOMITE
24.10.43.
PIO
24.10.44.
PLAY
24.10.45.
POKE
24.10.46.
PORT
24.10.47.
QUATERNION
24.10.48.
RBOX
24.10.49.
REFER
24.10.50.
REQUEST
24.10.51.
SAMPLENUM
24.10.52.
SET
24.10.53.
SETTICK
24.10.54.
SIMPLE
24.10.55.
SORT
24.10.56.
SQUARE
24.10.57.
SYNC
24.10.58.
TEMPR
24.10.59.
TILE
24.10.60.
TOP
24.10.61.
WATCHDOG
24.11.
Game & Sprite
24.11.1.
SPRITE
24.12.
Audio
24.12.1.
ADC
24.13.
Network
24.13.1.
WEB
24.13.2.
WII
24.13.3.
WS2812
24.14.
Debugging
24.14.1.
CONTINUE
24.14.2.
DETAILED
24.14.3.
EDIT
24.14.4.
ERROR
24.14.5.
EXAMPLES
24.14.6.
TRACE
24.14.7.
TRACE LIST
24.14.8.
UPDATE
25.
Functions
25.1.
Trigonometric Functions
25.1.1.
ACOS
25.1.2.
SIN
25.1.3.
ASIN
25.1.4.
TAN
25.1.5.
ATN
25.1.6.
ATAN2
25.1.7.
COS
25.1.8.
DEG
25.1.9.
RAD
25.2.
String Functions
25.2.1.
STR$
25.2.2.
UCASE$
25.2.3.
LCASE$
25.2.4.
ASC
25.2.5.
CHR$
25.2.6.
VAL
25.2.7.
STRING$
25.2.8.
LEFT$
25.2.9.
MID$
25.2.10.
RIGHT$
25.2.11.
LEN
25.2.12.
SPACE$
25.2.13.
TAB
25.2.14.
JSON$
25.3.
Binary Functions
25.3.1.
BIT
25.3.2.
BIN$
25.3.3.
BIN2STR$
25.3.4.
STR2BIN
25.3.5.
BYTE
25.3.6.
HEX$
25.3.7.
OCT$
25.4.
MMBasic Functions
25.4.1.
CALL
25.4.2.
CHOICE
25.4.3.
EVAL
25.5.
Time and Date Functions
25.5.1.
DATE$
25.5.2.
DATETIME$
25.5.3.
DAY$
25.5.4.
EPOCH
25.5.5.
TIME$
25.5.6.
TIMER
25.6.
DEVICE Functions
25.6.1.
DEVICE(GAMEPAD)
25.6.2.
DEVICE(MOUSE)
25.6.3.
DEVICE(WII CLASSIC)
25.6.4.
DEVICE(WII NUNCHUCK)
25.6.5.
FIELD$
25.6.6.
FLAG
25.6.7.
FORMAT$
25.6.8.
GETSCANLINE
25.7.
GPS Functions
25.7.1.
GPS(ALTITUDE)
25.7.2.
GPS(DATE)
25.7.3.
GPS(DOP)
25.7.4.
GPS(FIX)
25.7.5.
GPS(GEOID)
25.7.6.
GPS(LATITUDE)
25.7.7.
GPS(LONGITUDE)
25.7.8.
GPS(SATELLITES)
25.7.9.
GPS(SPEED)
25.7.10.
GPS(TIME)
25.7.11.
GPS(TRACK)
25.7.12.
GPS(VALID)
25.8.
Input Event Functions
25.8.1.
INKEY$
25.8.2.
INPUT$
25.8.3.
INSTR
25.8.4.
KEYDOWN
25.9.
Longstring Functions
25.9.1.
LCOMPARE
25.9.2.
LGETBYTE
25.9.3.
LGETSTR$
25.9.4.
LINSTR
25.9.5.
LLEN
25.10.
File and Memory Functions
25.10.1.
CWD$
25.10.2.
DIR$
25.10.3.
EOF
25.10.4.
LOC
25.10.5.
LOF
25.10.6.
PEEK
25.11.
Numeric Functions
25.11.1.
CINT
25.11.2.
EXP
25.11.3.
LOG
25.11.4.
INT
25.11.5.
MAX
25.11.6.
MIN
25.11.7.
PI
25.11.8.
RND
25.11.9.
SGN
25.11.10.
SQR
25.12.
MATH Functions
25.12.1.
MATH(ATAN3)
25.12.2.
MATH(COSH)
25.12.3.
MATH(LOG10)
25.12.4.
MATH(SINH)
25.12.5.
MATH(TANH)
25.12.6.
MATH(CRCn)
25.12.7.
MATH(RAND)
25.13.
Array Functions
25.13.1.
BOUND
25.13.2.
MATH(CHI)
25.13.3.
MATH(CHI_p)
25.13.4.
MATH(CROSSING)
25.13.5.
MATH(CORREL)
25.13.6.
MATH(MAX)
25.13.7.
MATH(MEAN)
25.13.8.
MATH(MEDIAN)
25.13.9.
MATH(MIN)
25.13.10.
MATH(SD)
25.13.11.
MATH(SUM)
25.13.12.
MATH(MAGNITUDE)
25.13.13.
MATH(DOTPRODUCT)
25.13.14.
MATH(M_DETERMINANT)
25.13.15.
MATH(PID)
25.13.16.
MATH(BASE64)
25.14.
Graphics Functions
25.14.1.
MAP
25.14.2.
PIXEL
25.14.3.
RGB
25.15.
I/O Functions
25.15.1.
PORT
25.15.2.
PULSIN
25.15.3.
SPI
25.15.4.
PIN
25.16.
PIO Functions
25.16.1.
PIO(DMA RX POINTER)
25.16.2.
PIO(DMA TX POINTER)
25.16.3.
PIO(EXECCTRL)
25.16.4.
PIO(FDEBUG)
25.16.5.
PIO(FLEVEL)
25.16.6.
PIO(FSTAT)
25.16.7.
PIO(PINCTRL)
25.16.8.
PIO(SHIFTCTRL)
25.17.
SPRITE Functions
25.17.1.
SPRITE(C)
25.17.2.
SPRITE(D)
25.17.3.
SPRITE(E)
25.17.4.
SPRITE(H)
25.17.5.
SPRITE(L)
25.17.6.
SPRITE(N)
25.17.7.
SPRITE(N,n)
25.17.8.
SPRITE(S)
25.17.9.
SPRITE(T)
25.17.10.
SPRITE(V)
25.17.11.
SPRITE(W)
25.17.12.
SPRITE(X)
25.17.13.
SPRITE(Y)
25.18.
Misc Functions
25.18.1.
DISTANCE
25.18.2.
TEMPR
25.18.3.
TOUCH(X)
25.18.4.
TOUCH(Y)
25.18.5.
TOUCH(X2)
25.18.6.
TOUCH(Y2)
26.
Obsolete Commands and Functions
Appendix A – Serial Communications
Appendix B – I²C Communications
Appendix C – 1-Wire Communications
Appendix D – SPI Communications
Appendix E – Regex Syntax
Appendix F – The PIO Programming Package
Appendix G – Sprites
Appendix H – Special Keyboard Keys
Appendix J - The CMM2 3D engine
Colors Palettes
Sprite Format
Light
Rust
Coal
Navy
Ayu
PicoMite User Manual
DIGITAL