PBXA64 ALPHA
V28 — Limit Completion
A native Windows compiler that transforms PowerBASIC-compatible BASIC source code directly into PE32+ executables and DLLs. Full EXPORT/ALIAS/ORDINAL support. A hardened preprocessor with MACRO and #IF. Inline #ASM blocks that bind directly to PB symbols. V28 adds LIKE wildcard matching, PRINT USING, ARRAY DELETE/INSERT, LINE GDI drawing, and 80+ automated tests proving correctness.
Release: ~747 KB (exe + help + WinAPI includes)
Digitally signed by Theo Gottwald
80 automated tests passing
Why PBXA64 Matters
Native x64 CodeGen
Direct assembly emission to x64 machine code. No GCC dependency. No C transpilation. No LLVM. Your BASIC becomes native PE32+ executables and DLLs through a dedicated pipeline built from the ground up.
DLL Export Engine
Full EXPORT, EXPORT ALIAS "Name", and EXPORT ORDINAL n support. Multiple #COMPILE directives in a single source file can fan out to build both EXE and DLL targets simultaneously.
#ASM With PB Symbol Binding
Inline assembly blocks that use your PowerBASIC variable and parameter names directly. The compiler resolves each symbol to its current register assignment or stack slot. No manual register tracking required.
Rich Preprocessor
#DEFINE, MACRO/MACROFUNCTION, MACROTEMP, #IF/#ENDIF, #INCLUDE ONCE, %DEF(), and conditional compilation. Full macro expansion before lexing.
Quick Example
DLL Example
math.dll Source
Build & Use
DLLs support EXPORT, EXPORT ALIAS "Name", and EXPORT ORDINAL n. Multiple #COMPILE directives in one source build both EXE and DLL.
Feature Timeline
| Version | Release | Key Features |
|---|---|---|
| V28 | Limit Completion | LIKE wildcard, PRINT USING, ARRAY DELETE/INSERT, LINE GDI drawing, hardened #ASM with PB symbol binding |
| V26 | Error, DATA, Array, File, Format | ON ERROR/RESUME, DATA/READ/RESTORE, ARRAY ASSIGN/SORT/SCAN, FILECOPY/RMDIR/GETATTR, MIN/MAX/IIF, BUILD$/CLIP$, LIKE, #ASM, LINE graphics scaffold |
| V25 | Memory & String Commands | POKE/PEEK, MKI$/MKL$/MKQ$ packing, CV* unpacking, JOIN$/SPLIT, MID$ statement, NUL$/DEC$ |
| V24 | String Completion | 20 string commands: REPEAT$, STRDELETE$, STRINSERT$, STRREVERSE$, BIN$/OCT$, LTRIM$/RTRIM$, REPLACE$, SCAN$, TALLY, VERIFY, COMMAND$, ENVIRON$, CURDIR$, TAB$, PEEK$, INPUT$, INKEY$, WAITKEY$ |
| V23 | DLL Output | #COMPILE DLL, FUNCTION EXPORT/ALIAS/ORDINAL, multi-#COMPILE fan-out, .edata PE section |
| V22 | Macro Preprocessor | #DEFINE, MACRO/MACROFUNCTION, MACROTEMP, #INCLUDE ONCE |
| V21 | Core Commands | #IF/#ENDIF, %DEF(), INSTR/CHR$/ASC/STR$/VAL, DATE$/TIME$, SLEEP/SWAP, XOR/EQV/IMP |
| V10–V20 | Foundation | PB parser, semantic analysis, x64 codegen, COFF/PE linker, PILOT, STRING/WSTRING, arrays, UDTs, file I/O, WinAPI, callbacks |
Architecture — From Source to PE
Alpha Preview
PBXA64 is in active alpha development. The complete compiler, documentation, and test suite will be available for download with the first public alpha release.