LINKS / TOOLS

Atari 8-bit programming languages

Atari BASIC, Turbo BASIC XL and BASIC XL differ in syntax and execution. Action! and assemblers produce machine code, giving greater control over memory and timing.

Atari BASIC

Atari BASIC stores tokenised programs and executes them through an interpreter. Numbered lines make editing easier; unnumbered commands execute immediately. GRAPHICS, PLOT, DRAWTO and SOUND provide simple access to graphics and sound.

Interpretation slows extensive calculations and loops. Revisions A, B and C differ in behaviour and bug fixes.

Turbo-BASIC XL

Frank Ostrowski's Turbo-BASIC XL extends Atari BASIC. The classic version targets XL/XE with 64 KiB. Additions include WHILE/WEND, REPEAT/UNTIL, PROC/EXEC procedures, RENUM, DPEEK and DPOKE. Listings using these commands require Turbo-BASIC and will not run in standard Atari BASIC.

A separate Turbo BASIC Compiler compiles programs that then use a runtime library.

OSS BASIC XL

BASIC XL is a separate interpreter, primarily supplied on cartridge. It retains Atari BASIC tokens and adds editing commands, control structures and Player/Missile support. FAST speeds up execution. Runtime and Toolkit packages were also available.

It is not the BASIC built into XL-series computers. Software using its extensions needs the appropriate interpreter or runtime package.

Action!: compilation and data types

OSS's Action! combines an editor, monitor, compiler and library. The language offers procedures, functions and BYTE, CARD and INT types; the compiler produces 6502 machine code. This avoids interpreting every statement at runtime. Unlike BASIC, standard Action! has no floating-point type. Code may rely on cartridge routines, so saving an executable does not always make it independent of Action!. Running without the Action! cartridge requires including an appropriate runtime library.

Asembler 6502

An assembler translates mnemonics such as LDA and STA into machine code. The programmer chooses memory addresses, registers and system calls. Precise timing control is especially useful for interrupts and graphics effects.

Atari Assembler Editor, MAC/65 and MADS use the same 6502 instructions but differ in directives and source file formats.

Sources and further reading