Prog8
Contents of this manual:
What is Prog8?
Prog8 versus other languages
Compiling a program
Programming in Prog8
Variables and Values
Structs and Pointers
Binary Loadable Libraries
Library modules and builtin functions
Target system specification
Technical details
Porting Guide
Software written in Prog8
TODO
Index
Prog8
Index
Index
Symbols
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
I
|
L
|
M
|
O
|
P
|
R
|
S
|
T
|
U
|
V
|
W
|
Z
Symbols
%address
Directives
%align
Directives
%asm
Directives
%asmbinary
Directives
%asminclude
Directives
%breakpoint
Directives
%encoding
Directives
%import
Directives
%jmptable
Directives
%launcher
Directives
%memtop
Directives
%option
Directives
%output
Directives
%zeropage
Directives
%zpallowed
Directives
%zpreserved
Directives
A
abs
Aliases
Identifiers
Arithmetic expressions
Arrays
Data Types
Assembly
Subroutines
Assignments
B
Banking
Overview
bcd
Libraries
Blocks
bmx
Libraries
bool
Data Types
Booleans
Data Types
buffers
Libraries
byte
Data Types
C
call
callfar
callfar2
Calling
Subroutines
cbm
Libraries
Character encodings
Porting
checksumming
Libraries
clamp
cmp
Code
Code block
Command line options
Usage
Comments
Compiler internals
compression
Libraries
Conditionals
goto statement
if expression
if statement
on goto/call statement
Overview
when statement
Constants
Data Types
conv
Libraries
conversion and classification
Libraries
Coroutines
Examples
coroutines
Libraries
CPU
Porting
CTags
Tools
Custom Targets
Overview
cx16
Libraries
cx16logo
Libraries
D
Data Types
Arrays
bool
Booleans
byte
Constants
float
Floating point
Initial values
Integers
long
Memory-mapped
Overview
,
[1]
Pointers
Ranges
str
Strings
Structs
ubyte
uword
word
Declaring
Variables
Deferred code
Subroutines
Defining
Subroutines
Definition
Structs
Dereferencing a pointer
Pointers
Directive
Directives
%address
%align
%asm
%asmbinary
%asminclude
%breakpoint
%encoding
%import
%jmptable
%launcher
%memtop
%option
%output
%zeropage
%zpallowed
%zpreserved
Overview
Discord
diskio
Libraries
divmod
do-until loop
Loops
Donations
Dynamic allocation
Structs
E
emudbg
Libraries
Emulators
Tools
Entry Point
Examples
Coroutines
Examples in source tree
Hello World
Library from Assembly
Library from BASIC
Library from C
Prime Sieve
small example library
Expressions
External
Subroutines
F
Features
,
[1]
float
Data Types
Floating point
Data Types
Porting
floats
Libraries
for loop
Loops
G
gcd
gfx_hires
Libraries
gfx_lores
Libraries
graphics
Libraries
I
Identifiers
Aliases
Overview
Scoped names
Initial values
Data Types
Initializers
Structs
Initializing
Variables
Installation
Additional requirements
Build from source
Development versions
Getting the compiler
Getting the software
Linux
macOS/Homebrew
Integers
Data Types
interpolation
Libraries
L
Label
large multiplications
Libraries
len
Libraries
%output library
bcd
bmx
buffers
cbm
checksumming
compression
conv
conversion and classification
coroutines
cx16
cx16logo
diskio
emudbg
floats
gfx_hires
gfx_lores
graphics
interpolation
Jump table
large multiplications
Loading and using
manipulation
math
miscellaneous
,
[1]
,
[2]
monogfx
Overview
palette
petgfx
petsnd
processor stack
processor status flags
prog8_lib
psg
,
[1]
random numbers
Requirements
searching
sorting
sprites
strings
sys
syslib
textio
trigonometry
verafx
License
Logical expressions
long
Data Types
Loops
do-until loop
for loop
Overview
repeat loop
unroll loop
lsb
lsw
M
manipulation
Libraries
math
Libraries
Math builtin
Standard Libraries
max
memory
Memory Map
Porting
Memory profiling
Memory-mapped
Data Types
min
miscellaneous
Libraries
,
[1]
,
[2]
mklong
mklong2
mkword
Module
monogfx
Libraries
msb
msw
O
offsetof
Operators
Overview
Banking
Data Types
Identifiers
Libraries
Pointers
Porting
Standard Libraries
Structs
Targets
P
palette
Libraries
peek
peekbool
peekf
peekl
peekw
petgfx
Libraries
petsnd
Libraries
Pointer arithmetic
Pointers
Pointers
Data Types
Dereferencing a pointer
legacy untyped
Overview
,
[1]
Pointer arithmetic
Simple Typed
Untyped
poke
pokebool
pokef
pokel
pokemon
pokew
Porting
Character encodings
CPU
Floating point
Memory Map
Overview
RAM, ROM, I/O
ROM routines
Support libraries
Zeropage
processor stack
Libraries
processor status flags
Libraries
Prog8 grammar
prog8_lib
Libraries
Program
Program Start
psg
Libraries
,
[1]
R
RAM, ROM, I/O
Porting
random numbers
Libraries
Ranges
Data Types
repeat loop
Loops
Return values
Subroutines
rol
rol2
ROM routines
Porting
ROM-able programs
ror
ror2
rrestore
rsave
Running the Compiler
Usage
S
Scope
Scoped names
Identifiers
searching
Libraries
setlsb
setmsb
sgn
shared
Variables
sorting
Libraries
sprites
Libraries
sqrt
Standard Libraries
Built-in Functions
Math builtin
Miscellaneous built-ins
Overview
Static initialization
Structs
str
Data Types
Strings
Data Types
strings
Libraries
Structs
Access from assembly
Address-Of
Data Types
Definition
Dynamic allocation
Initializers
Overview
,
[1]
Static initialization
Subroutine
Subroutines
asmsub and extsub
Assembly
Calling
Calling conventions
Deferred code
Defining
External
Foreign/ROM
Overview
,
[1]
Regular
Return values
Support libraries
Porting
swap
Symbol prefixing
Syntax highlighting
Tools
sys
Libraries
syslib
Libraries
T
Targets
Commander X16 IRQ Handling
Commander X16 notes
Commodore 64 notes
CPU Registers
IRQ Handling
Memory map
Memory model
Overview
Zero page usage
textio
Libraries
Tools
CTags
Emulators
Syntax highlighting
trigonometry
Libraries
U
ubyte
Data Types
uninitialized
Variables
unroll loop
Loops
Usage
Command line options
Debugging
Importing Modules
Module files
Running the Compiler
Troubleshooting
uword
Data Types
V
Variable declarations
Variables
Declaring
Initializing
Overview
,
[1]
shared
uninitialized
Zeropage
verafx
Libraries
W
word
Data Types
Z
Zeropage
Porting
Variables