Action (Programmiersprache)

Action!
Basisdaten

EntwicklerClinton Parker
ErscheinungsjahrAugust 1983
BetriebssystemAtari 8-bit Family

Action (auch: Action!) ist eine prozedurale Programmiersprache und ein Compiler für Atari-8-Bit-Heimcomputer (Atari 400/800, XL-Serie, XE-Serie), die 1983 von Clinton W. Parker für Optimized Systems Software zunächst auf Cartridge entwickelt wurde.

Action wurde zur Erstellung von mindestens zwei kommerziellen Produkten verwendet. Dazu gehören HomePak, ein Produktivitätsmanager und Games Computers Play, ein Clientprogramm und vielen weiteren Programmen im ANALOG Computing und Antic Magazin.

Der 1-Pass-Compiler erzeugt 6502-Maschinencode und ist erhältlich unter der GNU General Public Lizenz. Die Sprache enthält Sprachelemente von C, Algol 68 und Pascal.

Geschichte

Clinton W. Parker war enttäuscht von dem fehlenden System für Entwicklung auf der Atari-Plattform, was die Motivation für die Entwicklung von Action! war. Parker wollte das Programm ursprünglich selber veröffentlichen, wobei er sich jedoch später dazu entschied, es über seinen Partner Optimized Systems Software zu vertreiben, welcher damals den Fokus auf Programmiersprachen wie BASIC XL legte.

In einem Interview im Jahre 2015 teilte Parker mit, wie überrascht er über das hohe Interesse, die Programmiersprache am Leben zu halten, ist.[1]

Datentypen

Action unterstützt die drei fundamentalen Datentypen Byte, Cardinal und Integer, welche alle numerisch sind. Sie decken unterschiedliche Wertebereiche ab. Nur der Datentyp Integer unterstützt negative Zahlen. Es ist ebenfalls möglich, benutzerdefinierte Variablentypen einzufügen.

Entwicklungsumgebung

Action ist einer der früheren Beispiele des OSS-SuperCartridge-Formats. Die verwendeten ROM-Kartuschen waren normalerweise auf 8 Kilobyte limitiert, was die Möglichkeit, größere Programme zu erstellen, erschwerte. Die SuperCartridge hatte 16 Kilobyte verteilt in vier 4 Kilobyte-Blöcken, wobei immer zwei der Blöcke sichtbar waren.[2]

Action verwendete dieses Format, indem es das System in vier Sektionen brach, nämlich den Editor, den Compiler, den Monitor und einer Run-time-Bibliothek. Letzteres war in der Kartusche selber gespeichert. Um eigenständige Applikationen zu verteilen, brauchte man ein weiteres Paket, verkauft von OSS, namens Action! Toolkit.

Der Monitor diente als Debugger und erlaubte, das ganze Programm oder einzelne Funktionen auszuführen, den verwendeten Speicher anzuzeigen und diesen zu modifizieren.

Beispielprogramm

Das folgende zeigt ein Beispielprogramm für Sieve of Eratosthenes, geschrieben in Action, auf. Mit dem Ziel, das Programm zu optimieren, wird der ANTIC-Grafikprozessor deaktiviert, was verhindert, dass die DMA Engine CPU-Zyklen abfängt.

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

Literatur

Weblinks

  • Action im Atari-Wiki (englisch)

Einzelnachweise

  1. ANTIC The Atari 8-bit Podcast: ANTIC Interview 111 – Clinton Parker, Action! Abgerufen am 18. Mai 2020 (englisch).
  2. AtariWiki V3: Cartridges. Abgerufen am 18. Mai 2020.