Action (Programmiersprache)
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! | |
---|---|
Basisdaten | |
Entwickler | Clinton Parker |
Erscheinungsjahr | August 1983 |
Betriebssystem | Atari 8-bit Family |
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
- Peter Finzel: Computer Kontakt 10/85, S. (Kurzvorstellung: Textarchiv – Internet Archive).
Weblinks
- Action im Atari-Wiki (englisch)
Einzelnachweise
- ANTIC The Atari 8-bit Podcast: ANTIC Interview 111 – Clinton Parker, Action! Abgerufen am 18. Mai 2020 (englisch).
- AtariWiki V3: Cartridges. Abgerufen am 18. Mai 2020.