Example Programs
PowerBASIC Examples
Hello World
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
PRINT "Hello, PBXA64!"
FUNCTION = 0
END FUNCTION
Variables and Expressions
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
LOCAL x AS LONG
LOCAL y AS LONG
LOCAL name$ AS STRING
x = 10
y = 20
name$ = "Result"
PRINT name$; ": "; x + y
FUNCTION = 0
END FUNCTION
Strings and Arrays
#COMPILE EXE "strings_arrays_winapi.exe"
#DIM ALL
DECLARE FUNCTION MessageBoxA LIB "user32.dll" ALIAS "MessageBoxA" _
(BYVAL hWnd AS QUAD, BYVAL lpText AS ASCIIZ PTR, _
BYVAL lpCaption AS ASCIIZ PTR, BYVAL uType AS LONG) AS LONG
FUNCTION PBMAIN() AS LONG
LOCAL s$ AS STRING
LOCAL t$ AS STRING
LOCAL a(1 TO 3) AS LONG
s$ = "Hello"
t$ = s$ + ", PBXA64"
a(1) = LEN(t$)
a(2) = 42
a(3) = a(1) + a(2)
PRINT t$
PRINT a(3)
CALL MessageBoxA(0, STRPTR(t$), "PBXA64", 0)
FUNCTION = 0
END FUNCTION
File I/O
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
LOCAL line$ AS STRING
OPEN "output.txt" FOR OUTPUT AS #1
PRINT #1, "Hello, File!"
CLOSE #1
OPEN "output.txt" FOR INPUT AS #1
INPUT #1, line$
CLOSE #1
PRINT "Read: "; line$
FUNCTION = 0
END FUNCTION
Control Flow
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
LOCAL i AS LONG
FOR i = 1 TO 5
IF i MOD 2 = 0 THEN
PRINT i; " is even"
ELSE
PRINT i; " is odd"
END IF
NEXT i
FUNCTION = 0
END FUNCTION
WinAPI Message Box
#COMPILE EXE
#DIM ALL
DECLARE FUNCTION MessageBoxA LIB "user32.dll" ALIAS "MessageBoxA" _
(BYVAL hWnd AS QUAD, BYVAL lpText AS ASCIIZ PTR, _
BYVAL lpCaption AS ASCIIZ PTR, BYVAL uType AS LONG) AS LONG
FUNCTION PBMAIN() AS LONG
CALL MessageBoxA(0, "Hello from PBXA64!", "Greeting", 0)
FUNCTION = 0
END FUNCTION
PILOT Examples
Simple Quiz
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
#PCODE
T: Welcome to the Quiz!
T: What is 2 + 2?
A:
M: 4
Y: Correct!
N: Wrong, the answer is 4.
E:
#ENDP
FUNCTION = 0
END FUNCTION
Multi-Block PILOT
#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN() AS LONG
#PCODE
C: score = 0
*ASK
T: What is the capital of France?
A:
M: PARIS
Y: Correct! $score = $score + 1
N: Wrong! It is Paris.
T: Your score: #score
T: Try again? (YES/NO)
A:
M: Y*
Y: *ASK
E:
#ENDP
FUNCTION = 0
END FUNCTION
MGC Examples
Basic MGC Program
fn main() -> i32 {
var x: i32 = 42;
return x - 42;
}
MGC with Control Flow
fn main() -> i32 {
var i: i32 = 0;
var sum: i32 = 0;
while i < 10 {
sum = sum + i;
i = i + 1;
}
return sum - 45;
}
More examples: See the examples/ directory in the PBXA64 installation for additional sample programs including: real_usable.pb, feature_pass.pb, gosub_trim.pb, v10_pilot_features.pb, and more.