Action (programming language)

from Wikipedia, the free encyclopedia
Action!
Basic data

developer Clinton Parker
Publishing year August 1983
operating system Atari 8-bit family

Action (also: Action! ) Is a procedural programming language and a compiler for Atari 8-bit home computers (Atari 400/800, XL series, XE series), which was initially developed in 1983 by Clinton W. Parker for Optimized Systems Software Cartridge was developed.

Action was used to create at least two commercial products. These include HomePak, a productivity manager and Games Computers Play, a client program and many other programs in ANALOG Computing and Antic magazine.

The one-pass compiler generates 6502 - Machine Code and available under the GNU General Public License . The language contains language elements from C , Algol 68 and Pascal .

history

Clinton W. Parker was disappointed with the lack of a system for development on the Atari platform, which was the motivation for developing Action! was. Parker originally wanted to publish the program himself, but later decided to sell it through his partner Optimized Systems Software , which at the time focused on programming languages ​​such as BASIC XL.

In an interview in 2015, Parker said how surprised he is at the high level of interest in keeping the programming language alive.

Data types

Action supports the three fundamental data types byte, cardinal and integer, which are all numeric. They cover different value ranges. Only the integer data type supports negative numbers. It is also possible to insert user-defined variable types.

Development environment

Action is one of the earlier examples of the OSS SuperCartridge format. The ROM cartridges used were usually limited to 8 kilobytes, which made it difficult to create larger programs. The SuperCartridge had 16 kilobytes divided into four 4 kilobyte blocks, with two of the blocks always visible.

Action used this format by breaking the system into four sections, namely the editor, the compiler, the monitor and a run-time library. The latter was stored in the cartridge itself. To distribute standalone applications, you needed another package, sold by OSS, called Action! Toolkit.

The monitor served as a debugger and made it possible to execute the entire program or individual functions, to display the memory used and to modify it.

Sample program

The following shows a sample program for Sieve of Eratosthenes written in Action. With the aim of optimizing the program, the ANTIC graphics processor is deactivated, which prevents the DMA engine from intercepting CPU cycles.

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 ; reset the clock to zero

  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 ; now run the sieve
    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

literature

Web links

  • Action in the Atari Wiki (English)

Individual evidence

  1. ANTIC The Atari 8-bit Podcast: ANTIC Interview 111 - Clinton Parker, Action! Retrieved May 18, 2020 .
  2. AtariWiki V3: Cartridges. Retrieved May 18, 2020 .