Correctly spelled ACTION!
An Algol-like language developed for the Atari 8-bit computer line (400/800/XL/XE), and designed (in many ways) for the 6502 processor. By any modern standard, Action is crude and primitive, but it (along with a few dialects of ForthLanguage) were the only reasonable high-level language for performance programming on the Atari 8-bit.
Features of the language:
- Single-pass compiler, no prototypes.
- Runtime stack (limited to 256 bytes on 6502) was used to store return address for function calls only--that was the extent of the ACTION! activiation record. . Like FortranLanguage (or early dialects thereof), all local variables were allocated from the data segment (or what passed for the data segment). Recursion was obviously verboten. Multithreading was unheard of on the Atari. As ACTION! was a single pass compiler with no prototypes, you couldn't declare a recursive function anyway.
- Interesting variable initialization syntax--you could either leave a variable unitinitialized, initialize it to some constant, or fix its address. Common idiom was to fix variables at the various hardware/shadow registers in the Atari.
- Datatypes included 8-bit bytes, and 16 bit ints and cards (cards were unsigned). Nothing 32-bits; this was an 8-bit processor after all.
- Unless a variable had its address fixed in the manner described above, all variables were really TombStones of a sort--they had both a pointer and a value. You could, if you wanted, point the variable somewhere else, in addition to taking its value. Pointer syntax was similar to that of PascalLanguage.As an effect of this, variables requried an extra 2 bytes--2 for the hidden pointer, and one or two for the value. (One undocmented trick was to fix the variable's address at the "current location" metavariable '*', which would eliminated this extra indirection--making faster and slimmer code).
- By default, programs written in ACTION! required the cartridge be installed to run. A separate runtime kit allowed programs written in ACTION! to run without ACTION! present.
CategoryProgrammingLanguage