Action!

Action!

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

AND FI OR UNTIL =< ( ARRAY FOR POINTER WHILE <> ) BYTE FUNC PROC XOR # . CARD IF RETURN = > [ CHAR INCLUDE RSH - >= ] DEFINE INT SET * < " DO LSH STEP / <= ' ELSE MOD THEN & $ ; ELSEIF MODULE TO % ! @ EXIT OD TYPE

Programming

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

* [http://www.cyberroach.com/analog/an16/action.htm Review of Action! from ANALOG Computing, with benchmarks]
* [http://retrobits.net/atari/action.shtml Action! info at Retrobits.com]
* [http://www.strotmann.de/twiki/bin/view/APG/LangACTION Action! Programming Wiki]
* [http://www.atarimagazines.com/hi-res/v1n4/action.php Hi-Res Vol. 1, No. 4 - May/June 1984] Lights, Camera, "Action!"
* [http://joyfulcoder.net/atari/action The ACTION! Archive]
* [http://joyfulcoder.net/atari/action/?tab=language Action! language reference ]
* [http://gury.atari8.info/effectus/ 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 — 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 — 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 52-in-1 — Action 52 Action 52 Éditeur Active Enterprises Développeur FarSight Studios (MD) Active Enterprises …   Wikipédia en Français

  • Action 52 — Desarrolladora(s) Active Enterprises (NES) FarSight Studios (Genesis) Distribuidora(s) Active Enterprises Plataforma(s) NES Fecha …   Wikipedia Español

  • Action 52 — Éditeur Active Enterprises Développeur FarSight Studios (MD) Active Enterprises (NES) Date de sortie NES : 1991 MD : 1993 Genre party g …   Wikipédia en Français

  • ACTION! — (auch: Action!) ist eine Programmiersprache und ein Compiler für ATARI 8 bit Computer, die 1983 von Clinton W. Parker für Optimized Systems Software zunächst auf Cartridge entwickelt wurde. Action! ist die schnellste Compilersprache für die ATARI …   Deutsch Wikipedia

  • Action [2] — Action (fr., spr. Aksiong u. engl. spr. Äksch n), so v.w. Actie; so Action industrielle, A. de jouissance, A. d usufruit (fr., spr. Aksiong Engdüstriell, A. de Schuissanggs, A. d Üsüfrüi), s. u. Actien. Daher Actionär, Theilnehmer an einer… …   Pierer's Universal-Lexikon

  • Action [1] — Action (v. lat.), 1) Handlung; 2) Verrichtung, so A en des lebenden Körpers; 3) Gefecht, bes. wenn es etwas bedeutend ist; 4) (kath. Liturg.), die Handlung, die bei der Messe die Wandlung bewirkt, s. Messe; 5) (Theatw.), die Handlung auf der… …   Pierer's Universal-Lexikon

Share the article and excerpts

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