HARDWARE / TECHNICAL ARTICLES

Software compatibility: 400/800, XL and XE

Many programs run on both Atari 400/800 and XL/XE. Differences in memory, operating system, video standard and connected devices can limit compatibility.

Memory and devices

The shared architecture lets many programs run on both 400/800 and XL/XE. RAM can be a limitation: a 48 KiB program will not fit in a standard 16 KB 600XL. Devices differ too. The 400 and 800 have four controller ports, while XL/XE have two, which matters for multiplayer games.

The Atari ST and 2600 and 7800 consoles are separate platforms. Their software and cartridges do not run on 8-bit computers.

Operating system ROM and BASIC

The XL series changed the operating system. Programs using documented system vectors usually work on later models. Code using fixed addresses of internal ROM routines causes more problems, and some programs require a particular OS revision. Atari's Translator loads an older system into a later computer's RAM; its version also depends on the video standard. BASIC matters too. Holding OPTION at power-on on XL/XE disables the built-in interpreter. BASIC programs need it, while binary programs may require it disabled.

130XE memory banking

The 6502 still sees 64 KiB. The 130XE exposes its extra 64 KiB through switchable banks in a 16 KiB window. Software must switch banks itself. Extra RAM neither accelerates CPU instructions nor automatically expands an ordinary BASIC program. Upgrades to 320 KiB and beyond may differ in bank mapping and ANTIC access. Software requiring 130XE-compatible memory therefore does not necessarily work with every expansion of 128 KB or more.

PAL and NTSC

PAL and NTSC differ in line count and frame rate, approximately 50 or 60 frames per second. Software timing itself by frames can run at different speeds. Graphics effects tied to beam position may also need versions for each standard.

If a program works on another Atari, compare the model, RAM, operating system, BASIC and video standard. An emulator lets these settings be adjusted without changing the program file.

Sources and further reading