forge Documentation

index

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