FORGE Documentation - Table of Contents
Complete index of all FORGE documentation pages.
Getting Started
Introduction
Overview of FORGE, its features, and how it differs from other BASIC interpreters.
First Steps
Tutorial for writing your first FORGE program, including:
- Starting the IDE
- Basic program structure
- Running programs
- Common mistakes and troubleshooting
Compiling
Guide to compiling FORGE programs:
- Compiling from the IDE
- Command-line compiler usage
- File size considerations
- Integer vs floating point versions
FORGE Features
Complete guide to FORGE features:
- Key statements (FUNC, STATUS, NOTE, POINT, INCLUDE)
- New functions (DVSTAT)
- Functional enhancements
- Language capabilities
Editor
Editor Guide
Complete reference for the FORGE integrated editor:
- Keyboard shortcuts
- Navigation commands
- File operations
- Copy/paste operations
- Workflow tips
Editor Optimization
Performance tips for the editor:
- Using EFAST screen accelerator
- 80-column support
- Performance optimization
Language Reference
Syntax
Language syntax rules and conventions:
- Line types (comments, statements, assignments)
- Case insensitivity
- Statement abbreviations
- Multiple statements per line
- Comments
Expressions
Complete guide to expressions:
- Numeric expressions (integer and floating point)
- Boolean expressions
- String expressions
- Operators and precedence
- Type conversion
- Arrays
- String operations
Functions
All available functions organized by category:
- Standard Functions: TIME, ABS, SGN, RAND, FRE, ERR, LEN, VAL, ASC
- Atari-Specific Functions: PADDLE, PMADR, PTRIG, STICK, STRIG, KEY
- R: Device Status Functions: Functions for serial device status
- Floating Point Functions: ATN, COS, EXP, EXP10, INT, LOG, LOG10, RND, SIN, SQR, %TIME
- String Functions: STR$, CHR$
- Low-Level Functions: ADR, DPEEK, DVSTAT, PEEK, USR, $(), %()
Statements
All available statements organized by category:
- Console I/O: GET, INPUT, POSITION, PRINT, PUT, CLS
- Control Flow: DO/LOOP, EXEC, EXIT, FOR/NEXT, IF/ELSE/ENDIF, FUNC/ENDFUNC, INCLUDE, REPEAT/UNTIL, WHILE/WEND
- Graphics & Sound: COLOR, DRAWTO, FCOLOR, FILLTO, GRAPHICS, LOCATE, PLOT, PMGRAPHICS, PMHPOS, SETCOLOR, SOUND
- Device I/O: BGET, BPUT, CLOSE, GET #, INPUT #, OPEN, PRINT #, PUT #, NOTE, POINT, STATUS, XIO
- General: Comments, CLR, DATA, DEC, DIM, END, INC, PAUSE, TIMER
- Floating Point: DEG, RAD
- Low-Level: DPOKE, MOVE, -MOVE, MSET, POKE
Advanced Topics
Display List Interrupts
Guide to DLI programming:
- What are DLIs
- Defining DLIs
- Enabling/disabling DLIs
- Register reference
- Examples
SIO Operations
Serial Input/Output interface:
- SIO statement
- SERR() function
- Device communication
- Error handling
FujiNet
Network programming with FujiNet:
- NOPEN - Opening connections
- NCLOSE - Closing connections
- NSTATUS - Connection status
- NGET/NPUT - Reading/writing data
- Protocol support
CIO Reference
Central Input/Output utility reference:
- CIO channels
- IOCB structure
- CIO commands
- Channel usage
- Examples
XIO Reference
Extended I/O command codes:
- Complete XIO command list
- Usage examples
- Common operations
- Device-specific commands
Low-Level Programming
Memory operations and hardware access:
- POKE/PEEK operations
- Memory manipulation
- Safety warnings
- Common patterns
- Memory map references
NOTE/POINT
File positioning operations:
- NOTE statement - Get file position
- POINT statement - Set file position
- Random access file operations
- Examples and use cases
- AUX1 preservation behavior
Reference
Memory Map
Complete Atari memory map:
- Page 0 (Zero Page)
- Page 1 (Stack)
- Pages 2-5 (OS Database)
- Page 6 (User Space)
- Hardware registers
- ROM addresses
Hardware Registers
Hardware register reference:
- GTIA registers
- POKEY registers
- ANTIC registers
- PIA registers
- Shadow registers
OS Equates
Operating system constants:
- Status codes
- Device names
- Vector addresses
- Error codes
- System variables
Memory Usage
Memory usage guidelines:
- Page organization
- BASIC/FP usage
- Safe memory usage
- Page 6 information
Interrupts
System interrupt documentation:
- Interrupt types
- Vector addresses
- DLI/VBI information
- Interrupt handling
IOCB Structure
Input/Output Control Block reference:
- IOCB byte layout
- Channel addressing
- Status code interpretation
- Practical examples
R: Handler
R: device handler reference:
- Serial port configuration
- XIO commands for R: devices
- Networking examples
- Device-specific features
About FORGE
Why FORGE?
The story behind FORGE:
- Why FORGE was created
- Project goals and vision
- Development philosophy
Attributions
Credits and copyright information:
- License information
- Copyright notices
- Source attribution