STOS BASIC
STOS-Basic ist eine sehr leistungsfähige Interpretersprache, die nicht nur für Spiele geeignet, ist sondern auch zum Programmieren von allen möglichen Anwendungen. Herausgegeben wurde es im Oktober 1989 von Ariola Soft. Produziert wurde STOS-Basic von Francois Lionet, Constantin Sotiropolus und Frédéric Pinlet unter der Leitung von Jacues Fleurance bei der Firma Mandarin Software. STOS Basic läuft nicht unter GEM und beinhaltet 340 Befehle.
Hauptmerkmal dieser Programmiersprache ist allerdings das Spriteanimationen und Musik im Hintergrund ablaufen, also unabhängig von der normalen Anwendung. Dadurch können Spiele, auch mit mehreren Sprites sehr einfach realisiert werden. Sind die Grafiken und Sounds erst einmal geladen, kann der Prozessor sich dem restlichen Programm widmen.
Besonders nützlich ist dabei die Verwendung von Speicherbänken die einen bestimmten Bereich des Arbeitsspeichers nutzen um schnell Daten darin zu speichern oder aus zu lesen. 15 solcher Bänke stehen zur Verfügung und benutzen 32kByte Speicher oder bei Bedarf auch mehr. Es gibt dabei permanente und temporäre Bänke, wobei die fest vergebenen für Sprites, Icons, Musik, Zeichensätze und den Bildschirminhalt sind. So kann man den kompletten Bildschirminhalt mit einem Befehl in den Speicher des Atari´s laden oder auch wieder aus dem Speicher heraus anzeigen lassen.
Programmierbeispiel Screen
Dieses Beispiel kopiert den Bildschirminhalt sowie einen Ausschnitt in die Speicherbank und wieder zurück.
10 reserve as datascreen 10 20 screen copy logic to 10 (Speichert den Bildschirminhalt in Bank 10) 30 screen copy 10 to logic (Holt den Inhalt aus Bank 10 und zeigt ihn auf dem Monitor an) 40 screen copy logic,0,0,100,100 to 10,0,0 (Speichert einen Bildschirm-Ausschnitt)
Eine weitere besondere Fähigkeit von STOS-Basic ist die Verwendung von Sprites mit nur wenigen Befehlen. So wird mir einer Anweisung ein Sprite dargestellt, mit einer weiteren animiert und mit der dritten bewegt.
Programmierbeispiel Sprites
Dieses Beispiel stellt ein Sprite dar, animiert und bewegt es auf dem Bildschirm.
10 load "sprites.mbk" (Lädt eine ganze Gruppe Sprites in den Speicher) 20 sprite 1,100,100,6 (Zeigt Bild 6 als Sprite Nr.1 an) 30 anim 1,"(6,10)(7,10)(8,10)L" (Legt die Animationssequenz fest) 40 move x 1,"(1,3,50)(1,-3,50)" (Legt die Bewegungssequenz fest) 50 anim on 60 move on
Genauso einfach können Musikdaten behandelt werden. Auch diese Daten lassen sich separat in einer Datei speichern, um dann nach belieben in die vorgesehene Speicherbank zu laden und auf zu rufen.
Die abgespielten Töne können direkt beeinflusst werden in Tempo und Tonhöhe. Auch kann ein Rauschen hinzugefügt werden, oder eine der 3 Stimmen abgeschaltet werden.
Programmierbeispiel Sound
10 load "sound.mbk" (Lädt eine Datei mit Sounddaten in den Speicher) 20 music 2 (Läst die Melodie 2 abspielen) 30 tempo 10 (Reduziert die Abspielgeschwindigkeit) 40 transpose 30 (Erhöht die Tonhöhe)
Grafiken können mit STOS-Basic auch jeweils mit nur einem Befehl realisiert werden. Der Befehlssatz für Garfiken beläuft sich auf 32 Befehle. Hier ein kleiner Auszug:
Grafikbefehle
- ARC (Kreisbogen)
- EARC (Ellipsenbogen)
- BOX (leeres Rechteck)
- RBOX (leeres Rechteck mit runden Ecken)
- PIE (Kreisausschnitt)
- BAR (Balken)
- SET LINE (Linienform festlegen)
Auch Fenster und Pull-Down-Menüs gibt es bei STOS-Basic
Programmierbeispiel Fenster
10 windopen 1,0,0,9,4,4,3 (Öffnet ein Fesnter) 20 title "Window Nr.1" (Setzt den Titel für das Fenster) 40 window 1 (Aktiviert Fenster 1) 50 windmove 20,20 (Verschiebt das Fenster)
Programmierbeispiel Menü
10 menue$ (1)="Action" 20 menue$ (2)="Mouse" 30 menue$ (2,1)="Arrow" 40 menue$ (2,2)="Hand" 50 onmenue goto 10
Für den Programmablauf stehen auch bei STOS-Basic umfangreiche Befehlssätze zur Verfügung.
Hier einige der Befehle:
Programmbefehle
- GOTO
- GOSUB
- FOR/NEXT
- WHILE/WEND
- REPEAT/UNTIL
- IF/THEN/ELSE
- ON var GOTO/GOSUB (Sprung abhängig vom Wert der Variablen
- ON ERROR GOTO (Für die Fehlerbehandlung)
- INKEY$ (Tastaturabfrage)
- INPUT
Fliesskommazahlen werden bei STOS-Basic auf 16 Nachkommastellen genau berechnet. Um die Geschwindigkeit der Programme zu erhöhen kann man die Genauigkeit auf 7 Nachkommastellen reduzieren.
Trigonometrische und Mathematische Funktionen
- DEG
- RAD
- SIN/ASIN/HSIN
- COS/ACOS/HCOS
- TAN/ATAN/HTAN
- PI
- LOG
- EXP
- SQR
- ABS
- INT
- MAX/MIN
- RND
Zusätzlich kann man bei STOS-Basic auch direkte Maschinenbefehle verwenden, oder die STOS-Funktionen über Maschinensprache-Befehle direkt aufrufen. Somit kann man den Prozessor auch Bitweise beeinflussen. Möglich ist auch, komplexere Maschinenprogramme in den Speicher zu laden und aus dem Basic-Programm heraus auf zu rufen.
Zum STOS-Basic gibt es auch einen Compiler der in BASIC geschriebene Programme in lauffähige Maschinencode-Programme umwandelt.