Action! was a programming language and integrated editor, debugger, and 6502 code generating compiler, editor for the Atari 8-bit family of microcomputers. Action! was created by Clinton Parker and released on cartridge by Optimized Systems Software in 1983. Its syntax was similar to that of ALGOL 68.

Action! was significant for its high performance, which allowed games and graphics demos to be written in a high-level language in an era when it was generally understood that performance required hand-written assembly language code. The language was tailored so there was a clean mapping between language constructs and the 6502 hardware.

A library was available as a separate product called the Action! Toolkit. Action! was used to develop at least one commercial product: the Homepak productivity suite. The language was never ported to other systems.

In 2007 it inspired Effectus - a cross-compiler currently running on Windows targeting the Atari 8-bit. Effectus resembles Action! syntax and is intended to be as compatible as possible with it.

Data Types

Action! has three numerical datatypes BYTEs, CARDinals and INTegers. The BYTE datatype is a single unsigned 8-bit byte, CARD is unsigned and two bytes long, and INT is signed and two bytes. Action! also has CHARs, ARRAYs, POINTERs and user defined TYPEs. No floating point support was available.

An example of a user-defined TYPE:

TYPE CORD= [CARD x,y] CORD point point.x=42 point.y=23

Reserved keywords



Programming in Action! required working with the editor and compiling/debugging in the monitor. The editor had a full-screen, scrolling display capable of displaying two windows. The editor included block operations and global search and replace. Compiling took place in the monitor, a mode that allowed compiling and debugging.

Action! was a one-pass compiler. It compiled the source code entirely in memory. This allowed great speed, but limited the amount of code that could be compiled.

Local variables were assigned fixed addresses in memory instead of being allocated on the stack. This enabled tight code to be generated for the 6502, but precluded the use of recursion.

Example code

The following is example code for Sieve of Eratosthenes written in Action. In order to increase performance, it disables the ANTIC graphics coprocessor on the Atari hardware, thus preventing its DMA engine from "stealing" CPU cycles during the computation.

BYTE RTCLOK=20, ; addr of sys timer SDMCTL=559 ; DMA control BYTE ARRAY FLAGS(8190) CARD COUNT,I,K,PRIME,TIME PROC SIEVE() SDMCTL=0 ; shut off Antic RTCLOK=0 ; only one timer needed COUNT=0 ; init count FOR I=0 TO 8190 ; and flags DO FLAGS(I)='T ; "'T" is a compiler-provided constant for True OD FOR I=0 TO 8190 ; and flags DO IF FLAGS(I)='T THEN PRIME=I+I+3 K=I+PRIME WHILE K<=8190 DO FLAGS(K)='F ; "'F" is a compiler-provided constant for False K=+PRIME OD COUNT=+1 FI OD TIME=RTCLOK ; get timer reading SDMCTL=34 ; restore screen PRINTF("%E %U PRIMES IN",COUNT) PRINTF("%E %U JIFFIES",TIME) RETURN

See also

* ALGOL 68

External links

* [ Review of Action! from ANALOG Computing, with benchmarks]
* [ Action! info at]
* [ Action! Programming Wiki]
* [ Hi-Res Vol. 1, No. 4 - May/June 1984] Lights, Camera, "Action!"
* [ The ACTION! Archive]
* [ Action! language reference ]
* [ effectus]

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • action — ac·tion n [Latin actio legal proceeding, from agere to do, carry out, initiate legal proceedings] 1 a: a judicial proceeding for the enforcement or protection of a right, the redress or prevention of a wrong, or the punishment of a public offense …   Law dictionary

  • action — ACTION. sub. f. L opération d un agent. L action du feu sur le bois. L action du Soleil sur les plantes. L action de l esprit. Le feu, par la violence de son action, vitrifie les métaux. Une action vive, soudaine, momentanée.Action, se dit aussi… …   Dictionnaire de l'Académie Française 1798

  • Action — may refer to:Music and culture* Action (philosophy), something a person can do * Action (music), a characteristic of a stringed instrument * Action (album), a 2004 album by Punchline * Action (B z album), a 2007 album by B z * Action (piano), the …   Wikipedia

  • Action 52 — North American NES cover art. Developer(s) …   Wikipedia

  • action — Action. s. f. Maniere dont une cause agit, & par laquelle elle produit son effet. L action du feu reduit le bois en cendres. Action, signifie aussi, Acte, fait, oeuvre. Bonne action. belle action. mauvaise action. vilaine action. action bien… …   Dictionnaire de l'Académie française

  • Action — Ac tion, n. [OF. action, L. actio, fr. agere to do. See {Act}.] 1. A process or condition of acting or moving, as opposed to rest; the doing of something; exertion of power or force, as when one body acts on another; the effect of power exerted… …   The Collaborative International Dictionary of English

  • action — et besongne, Pragma, Actio. Action et droit de poursuyvre en justice ce qui nous est deu, Actio. Action de grace, Gratulatio, Gratiarum actio. Action personnelle, Condictio, Actio in personam. Action réelle, Actio in rem. Action petitoire,… …   Thresor de la langue françoyse

  • Action 52-in-1 — Action 52 Action 52 Éditeur Active Enterprises Développeur FarSight Studios (MD) Active Enterprises …   Wikipédia en Français

  • action — 1 Action, act, deed agree in designating something done or effected. Action refers primarily to the process of acting; act and deed to the result, the thing done. An action is usually regarded as occupying some time and involving more than one… …   New Dictionary of Synonyms

  • action — [ak′shən] n. [ME accion < OFr action < L actio < pp. of agere: see ACT1] 1. the doing of something; state of being in motion or of working 2. an act or thing done 3. [pl.] behavior; habitual conduct 4. habitual activity characterized by… …   English World dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”