Komfortabel, mächtig und unglaublich schnell ist das neue Basic für Ataris Supercomputer 520 ST.
Basic ist unbestritten die am weitesten verbreitete Computersprache. Fast jedem, neu auf den Markt gebrachten Computer, wird ein mehr oder weniger umfangreiches Basic in die Wiege gelegt. Nur Atari schien mit seinem 520 ST neue Wege beschreiten zu wollen. So fand man im Lieferumfang der bisher ausgelieferten Computer als einzige Sprache ein recht ansprechendes Logo mit dem Hinweis, daß bald ein Basic nachgeliefert würde. In der Computerbranche bedeutet »bald« bekanntermaßen »im nächsten Jahr vielleicht«. So war es auch nicht verwunderlich, daß anfangs die Gerüchte nicht verstummen wollten, Atari wolle die Computerwelt umerziehen und Logo zur Standardsprache für den 520 ST machen. Inzwischen ist klar, daß sich hinter dieser vermeintlichen »neuen Philosophie« nichts anderes verbarg, als Schwierigkeiten bei der Anpassung des in einem Pascal-Vorläufer namens BCPL geschriebenen Basic. Das in C geschriebene Logo dagegen war wohl ohne allzu große Probleme übertragbar.
Aus Ataris »bald« ist nun ein »jetzt« geworden. Allerdings noch nicht vollständig. Die vorliegende Version des Atari-Basic (Bild 1) ist noch immer eine Vorabversion, die aber nach Aussagen von Atari in Syntax und Befehlsumfang weitgehend der Endversion entspricht. Die Programmlänge von etwa 155 KByte deutet darauf hin, daß der Programmcode noch optimiert werden kann. Die Optimierung und eine damit verbundene weitere Geschwindigkeitssteigerung werden von Atari bis Ende 1985 versprochen. Bis dahin dürfen die Händler die vorliegende Version an ihre Kunden als Kopie weitergeben. Ein ausführliches Handbuch wird erst mit der endgültigen Version lieferbar sein.
Inhalt von Zeile 20 Zeit in Sekunden Leer 9,1 A$ = ■'12345678" 22,3 A$ = STR$G) 35,8 A$ = MKD$G) 21,3 A = I 18,5 A = 1 + I 21,5 A = 1 — I 21,5 A = I * I 21,9 A = I / I 22,6 A = I ‘ 2 40,2 A = SORffl 31.1 A = SING) 25,7 A = LOGG) 25,2 A = LOGIOG) 33,2 A = F1XG) 17,7 A = FLOATa) 17,8 Tabelle 2. Benchmarktest Atari-Basic für Atari 520 ST
Tausendundein Befehl
Grundlage dieses ersten Testes des neuen Atari-Basic ist die Vorabversion und eine Befehls-Referenzliste. Die Liste enthält über 130 Basic-Schlüsselwörter. Während der Arbeit mit dem Basic konnten noch einige weitere Schlüsselwörter gefunden werden. Bei genauerem Vergleich ist eine deutliche Ähnlichkeit mit dem GW-Basic von Microsoft nicht zu übersehen. Tabelle 1 gibt einen Überblick über die bisher bekannten Befehle, Anweisungen, Funktionen und reservierten Systemvariablen.
Bild 1. Vorhang auf ...
Bild 2. ... für Jacks Basic
Doch nun zur konkreten Arbeit mit dem neuen Atari-Basic. Es besteht aus den beiden Teilen BAS.PRG und BAS1C.RSC und wird wie jedes GEM-Programm durch Doppelklick mit der Maus gestartet. Auf dem Bildschirm baut sich ein für GEM typischer »Schreibtisch« mit vier »Arbeitsblättern« auf (Bild 2). Das Command-Blatt nimmt das untere Drittel des Bildschirms ein und dient der Eingabe von Befehlen und Anweisungen im Direktmodus. Der graue Balken zeigt an, daß der Command-Modus aktiv ist. Das obere Drittel des Bildschirms teilen sich je zur Hälfte das List- und das Output-Blatt. Im List-Blatt werden Programmlistings gezeigt, im Output-Blatt erscheinen die Ergebnisse des Programmablaufs. Die Menüleiste enthält fünf Pulldown-Menüs zur Systemsteuerung. Die darin enthaltenen Steuerbefehle sind bis auf wenige Ausnahmen auch im Direktmodus erreichbar, ihre Funktionen zeigt Tabelle 1. Eine dieser Ausnahmen ist der Punkt »Help Edit« im Edit-Menü. Bei Anwahl dieses Punktes mit der Maus wird die Belegung der Funktionstasten für den Edit-Modus aufgelistet.
Bei genauer Betrachtung von Bild 2 entdeckt man, daß unter den drei erwähnten Blättern noch ein viertes Arbeitsblatt liegt. Zieht man es durch Anklicken hervor, hat man das Edit-Blatt vor sich liegen. Dieses Hervorziehen kann auch aus dem Command-Modus durch Eingabe des Befehls EDIT erreicht werden.
Das Edit-Blatt dient dem Bearbeiten von Programmtexten. Der Cursor ist mit Hilfe der Cursorsteuertasten frei bewegbar, mit den Funktionstasten können Buchstaben und Zeilen eingefügt oder gelöscht werden, in gewisser Hinsicht erinnert der Edit-Modus an den C 64, nur eben viel komfortabler. Eine Zeile, die gerade bearbeitet wird, färbt sich grau. Bei Übernahme der Zeile in den Programmspeicher (durch Betätigen der Return-Taste) kann der Cursor an einer beliebigen Stelle in der Zeile stehen. Schon bei der Eingabe wird eine Syntaxüberprüfung durchgeführt, die entspre-
chende Fehlermeldung erscheint auf dem Command-Blatt.
Eine automatische Numerierung der Programmzeüen gibt es nur im Command-Modus. Mit dem Befehl »Auto« kann sowohl die Anfangszeile als auch die Schrittweite der Numerierung bestimmt werden. Den Auto-Modus verläßt man durch gleichzeitiges Betätigen der Control- und der G-Taste. Leider sind die Cursorsteuer- und Funktionstasten auf dem Command-Blatt nicht aktiv, eine Korrektur ist lediglich mit Hilfe der Backspace-Taste möglich. Bedauerlicherweise verweigert der 520 ST im Command-Modus noch die Annahme von deutschen Umlauten, der gleiche Effekt tritt bei der Input-Anweisung im Programmlauf auf. Allerdings werden schon jetzt im Edit-Modus eingegebene Umlaute im Programmlauf auf dem Output-Blatt dargestellt. Auf Anfrage hat Atari hier weitere Besserung versprochen.
Alle Arbeitsblätter können, wie unter GEM üblich, mit der Maus verändert werden. Aber auch vom Basic aus ist eine Beeinflussung möglich. Mit »CLEARW X« »CLOSEW X«, »OPENW X« und »FULLW X« (X ist eine Zahl zwischen 0 und 3) kann man die vier Blätter löschen, vom Schreibtisch nehmen, wieder dorthin legen und bildschirmfüllend darstellen. Alle vier Befehle sind programmierbar. Die Ausgabe von Texten und ihre Positionierung scheint bisher nur auf dem Output-Blatt möglich zu sein. Der entsprechende Befehl »GOTO X,Y« (X und Y sind die Koordinaten in Spalten und Zeilen) funktioniert aber noch nicht ganz fehlerfrei. Diese fünf Befehle sind in der Referenzliste noch in keiner Weise dokumentiert, ein Hinweis darauf, daß das Einbinden von GEM-Funktionen in Basic-Program-me in dieser Vorabversion noch nicht vollständig implementiert ist. Ein weiteres Indiz sind die Befehle »GEMSYS« und »VDISYS«, die zwar schon vorhanden sind, aber nur zum totalen Systemabsturz führen.
Befehle
AUTO <X,Y>
BREAK
CONT
DELETE X - Y DIR
EDIT <X> ERANAME FOLLOW N LIST <X- Y> LUST <X -Y> LOAD NAME MERGE NAME NEW < NAME > OLD NAME OUIT RUN
SAVE NAME
STEP
SYSTEM
TRACE
TRON
TROFF
UNBREAK
UNFOLLOW
UNTRACE
I/O-Anweisungen
BLOAD NAME, X
BSAVE NAME, X, Y
CHAIN NAME
CLOSE
CLOSE #X
DATA
GET
GET #X
INPUT
INPUT #X
INPUT$ (X)
KILL NAME LINE INPUT LINE INPUT #X LPRINT LPRINT USING LSET AS = B$
NAME FILE1 AS FILE2 OPEN ’T”, #X,FILE,Y OPEN "0”,#X,FILEY OPEN "R",#X,F1LE.Y OUT X.Y PEEK(N)
POKE N,M PRINT PRINT #X
PRINT USING ”##.##” PRINT # X.USING "# PUT #X,Y READ
REPLACE FILE RSET A$ = B$
SOUND???
WAIT X, Y,Z WRITE N,M,A$
WRITE #X,N,M,A$
Deklarationsanweisungen
DEFFN DEFDBL N-M DEHNT N-M DEFSNG N-M DEFSTR N-M DIM AS (X)
ERASE AS.N ERROR X FIELD #X,Y AS A$ LET N = M MIDS(AS,X,Y) = BS OPTION BASE 0/1 RANDOMIZE X REM
SWAB N,M WIDTH X WIDTH LPRINT X
Steueranweisungen
CALL N (X,Y) CLEAR CLEARX COMMON A$,N END
FOR...NEXT
GOSUB
GOTO
IF..THEN..ELSE
ON.GOTO..
ON..GOSUB..
ON ERROR GOTO.. RENUM <X,Y.Z> RESET
RESTORE <X> RESUME (0) RESUME NEXT RESUME X RETURN STOP
WAIT XY.Z WHILE..WEND
Tabelle 1. Basic-SchlüsselWörter
Addiert man die Programmlängen des Betriebssystems und des Basic, so kommt man auf etwa 385 KByte. Demnach müßte bei einem 512-KByte-Speicher unter Berücksichtigung von Bildschirmspeicher und internem Bedarf von Betriebssystem und Basic, für Programme und Variable noch genug Speicherplatz übrig sein. Leider scheint sich die Vorabversion sehr großzügig mit internem Speicher zu versorgen. Denn nach Starten des Basic stehen
nicht mehr als 10722 Byte zur Verfügung. Diese Tatsache würde das Atari-Basic für ernsthafte Anwendung nahezu unbrauchbar machen. Die endgültige Version soll auch hier erhebliche Verbesserungen bringen. In der Redaktion haben wir das Basic aber auch auf einem 520 ST mit einem MByte (Selbstbau) ausprobiert. In diesem Falle sind fast 550 KByte Basic-Speicher frei. Außerdem wird nach Aussagen von Atari Ende November die ROM-Version des Betriebssystems ausgeliefert. Das dürfte auch extrem anspruchsvolle Speicherplatzwünsche erfüllen.
Doch schon jetzt kann bei der Vorabversion und mit dem Betriebssystem im RAM der verfügbare freie Speicherplatz bis auf eine Größe von über 70 KByte erhöht werden. Im Pulldown-Menü ist unter dem Menüpunkt »Buf Graphics« ein Grafikspeicher abschaltbar. Der freie Speicherplatz wächst damit auf 43490 Byte. Genau 73074 freie Bytes erhält man, wenn zusätzlich das Betriebssystem von einer Diskette gebootet wird, auf der die beiden Fües DESK1.ACC und DESK2.ACC nicht enthalten sind. Damit steht wohl genug Speicherplatz zur Verfügung, um das Atari-Basic ausführlich zu erproben.
Die Erprobung wird wohl nicht so schnell langweilig werden — langwierig aber auf gar keinen Fall. Denn bei der Abarbeitung von Ba-sic-Programmen legt der 520 ST ei-
ne wahrhaft atemberaubende Geschwindigkeit an den Tag. In lediglich 49 Sekunden zeichnet er mit der Anweisung »CIRCLE X,X,X« in einer FOR...NEXT-Schleife 1000 (in Worten: eintausend) Kreise. Für Bild 1 hat er genau 17 Sekunden gebraucht, nur eine Sekunde mehr für Bild 2. Dabei ist zu bedenken, daß hier nicht etwa ein besonders spezialisierter Grafikprozessor am Werk ist, sondern die Hauptarbeit von der CPU geleistet wird.
Die Ergebnisse einer Untersuchung der Arbeitsgeschwindigkeit einiger Basic-Befehle zeigt Tabelle 2. Dabei wurden Variablenzuordnungen, verschiedene Rechenarten und einige Datenformatwandlungen untersucht. Die jeweils in der Tabelle aufgeführte Anweisung war als Zeile 20 in das folgende kleine Programm eingefügt:
10 FOR 1 = 1 TO 10000
20 .....
30 NEXT
Die angegebenen Zeiten schließen die Zeit für die Abarbeitung der FOR...NEXT-Schleife mit ein. Die gemessenen Zeiten sprechen wohl für sich. Ob die Arbeitsgeschwindigkeit bei der endgültigen Version noch gesteigert werden kann, wird sich zeigen. Notwendig erscheint eine Steigerung nicht. Wenn schon ein Interpreter wie das vorliegende Atari-Basic dermaßen schnell sein kann, werden sich die Programmierer von Computerspielen wohl eher um Verzögerungsroutinen kümmern müssen, als um das letzte Quentchen an Zeitersparnis.
Der Atari 520 ST soll die Computerwelt erobern. Das ist das erklärte Ziel seines »Schöpfers« Jack Tramiel. Doch welche Computerwelt ist gemeint? Ist der 520 ST ein Heimcomputer oder ist er doch mehr ein Personal Computer? Bisher war diese Frage nicht so schwer zu beantworten. Ein Computer, der auf dem Basic-Ohr taub ist, gehört sicher nicht zu den Heimcomputern. Ein echter Personal Computer hingegen darf sich eine solche Schwäche durchaus leisten. Mit dem neuen Atari-Basic ist Jacks Wunderkind mit einem lauten »Hallo, da bin ich« über die Heimcomputerszene hereingebrochen. Von nun an kann er jeden Heimcomputerfan von Anfang an verstehen oder, was wohl noch wichtiger ist, jeder Heimcomputerfan kann erfolgreich mit ihm reden und ihn programmieren.
(W. Fastenrath/wg)
Numerische und Logische Funktionen
ABS(X)
ASC(A$)
ATN(X)
CDBUX)
CINT(X)
COS(X)
CSNGOO
CVI(A$)
CVS(A$)
CVD(A$)
EOF(X)
EXPQC)
nxcx)
FLOAT(X)
FRE(0)
INP(N)
INSTR(X,A$,B$)
INT(X)
LEN(A$)
LOC(N)
LOF(N)
LOG(N)
LOG10(N)
LPOS(X)
POS(0)
RND
RND(X)
SGN(X)
SIN(X)
TAN(X)
VAL(A$)
VARPTR(X)
VARPTRf # X)
im Atari-Basic für Atari 520 ST
Stringfunktionen
CHR$OQ
HEX$(X)
LEFT$(A$,N)
MKI$(X)
MKS$(X)
MKD$(X)
OCT$(X)
RIGHT$(A$,X)
SPACE$(X)
SPC(X)
STR$(X)
STRING$(XA$)
STRING$(X.N)
TAB(X)
Systemsteuerung
GOTOXY N.M
OPENW X CLEARW X CLOSEW X FULLWX
X = 0EDIT X = 1 LIST X = 2 OUTPUT X = 3 COMMAND
VDISYS ??? GEMSYS ???
Systemvariable
ERL
ERR
Grafikanweisungen
COLOR A.RC.DE
A = TEXTFARBE B = FUELLFARBE C = LINIENFARBE
D = FUELLMUSTERINDEX E - FUELLMUSTERSTIL ELLIPSE A,BC.U<E,F> PELLIPSE A.BC.D, < E,F > CIRCLE A.RG<E.F> PCIRCLE A.B.C, <E,F>
A HÖR. MITTELPUNKT B=VERT. MITTELPUNKT C = RADIUS BZW. HÖR. RADIUS
D=VERT. RADIUS E = ANFANGSWINKEL F=ENDWINKEL
PELLIPSE UND PCIRCLE SIND GEFUELLTE FIGUREN.
FILL A,B FUEUT
BEREICHE LINEF A.RA.B PUNKT
LINEF A.BC.D LINIE
A.BC.D KOORDINATEN