# AmigaBASIC

AmigaBASIC war eine von Microsoft entwickelte BASIC-Version für den Commodore Amiga, welche zum Lieferumfang der AmigaOS-Versionen 1.1 bis 1.3 gehörte. Es löste das ABasiC (von MetaComCo) der Version 1.0 ab und wurde seinerseits mit der AmigaOS-Version 2.0 von ARexx abgelöst. Da der Amiga in Deutschland erst einige Monate später als in USA ausgeliefert wurde, wurde er dort von Anfang an mit AmigaBASIC statt ABasiC ausgeliefert. AmigaBASIC blieb die einzige Software, die Microsoft für den Amiga herstellte.

## Aufbau

AmigaBASIC gehörte zu den ersten BASIC-Versionen, welche ohne Zeilennummern auskam und in Ansätzen eine strukturierte Programmierung ermöglichte und war vom etwas älteren Macintosh-BASIC von Microsoft abgeleitet. Für Umsteiger, die bisher andere BASIC-Dialekte kannten, war die integrierte Entwicklungsumgebung sowie der Aufbau der Sprache zukunftsweisend. Problematisch hingegen war die Übernahme bestehender BASIC-Programme. Es stellte sich jedoch sehr schnell heraus, dass die umfassenden Möglichkeiten des Commodore Amiga nur unzureichend genutzt werden konnten – obwohl Microsoft AmigaBASIC mit einer speziell auf den Amiga abgestimmten Bibliothek auslieferte. Zwar konnte man aus BASIC heraus auf die System-Librarys zugreifen – doch der Umgang mit diesen erwies sich aus AmigaBASIC heraus als sehr umständlich und fehlerträchtig. So ließ sich z. B. der HAM-Modus unter AmigaBASIC nur unter der Zuhilfenahme der System-Librarys ansprechen.

## Möglichkeiten

An dieser BASIC-Implementierung fiel auf, dass der Interpreter nicht mehr wie bei den bisher konzipierten Heimcomputern integraler Bestandteil des Betriebssystems war. Im Kontext des Multitasking-Systems lief er als gleichberechtigtes Programm im Fenstersystem der Benutzeroberfläche und musste folglich zunächst gestartet werden, bevor er als Laufzeitumgebung oder Entwicklungssystem für Programme zur Verfügung stand.
AmigaBASIC betrat durch den Verzicht auf Zeilennummern Neuland und ermöglichte die Definition von SUB-Routinen und sogar Funktionsaufrufe mit Argumenten und Rückgabewerten. Damit wurden AmigaBASIC-Programme übersichtlicher als diejenigen beispielsweise von GW-BASIC. Der BASIC-Dialekt wurde zumindest zum Teil an die Möglichkeiten des Amiga angepasst. So gab es die Möglichkeit, die Maus abzufragen, und eine rudimentäre Möglichkeit der eventgesteuerten Programmsteuerung wurde implementiert. Ebenfalls genutzt werden konnten die Grafikmöglichkeiten und die Soundmöglichkeiten des Amiga – wenn auch nur unvollständig. Mit dem „say“-Befehl war die Ausgabe synthetischer englischer Sprache möglich.

## Beschränkungen und Probleme

AmigaBASIC galt als unvollständig in seiner Entwicklung, als fehlerbehaftet und vor allem als sehr langsam. In einigen Fällen lag der Unterschied gegenüber einer C- oder Assemblerimplementierung beim Faktor 1000. Wurde – was zur damaligen Zeit üblich war – als kurzer Performancetest eine Leerschleife mit 1000 Durchläufen gemessen, so lag der Wert mit 800 ms nur dicht unter seinem direkten Konkurrenten C64 mit rund 1000 ms. In Anbetracht der Tatsache, dass die darunterliegende CPU etwa um den Faktor 10 schneller war, ein mehr als enttäuschendes Ergebnis. Irritierend wirkte außerdem, dass der Interpreter zunächst nicht mehr als 10000 oder 25000 Bytes verfügbaren BASIC-Speicherplatz anbot – bedeutend weniger als etwa auf einem C64 in Grundausstattung. Ein Amiga 1000 bot immerhin 256 kB bzw. (ausgebaut) 512 kB, also den vier- bis achtfachen Arbeitsspeicher seines Konkurrenten, womit man auch hier deutlich mehr erwartet hätte.
Als Amigas mit Speicher jenseits der Megabytegrenze verfügbar wurden, konnte der BASIC-Speicher mit dem „clear“-Befehl sukzessive erhöht werden. Jedoch stellte sich heraus, dass AmigaBASIC auf Grund seiner Mac-Herkunft auf einen Adressraum von 24 Bit – entsprechend 16 MB Speicher – beschränkt war. AmigaBASIC-Programme, welche ihr RAM jenseits dieser „künstlichen“ Grenze beanspruchten, waren also nicht lauffähig.
Zudem litt AmigaBASIC unter dem damals sehr schlechten Ruf der Programmiersprache BASIC. Die meisten Anwender griffen daher sehr schnell zu C, Assembler oder Modula-2, da für den Amiga für diese Sprachen leistungsfähige Compilerpakete zur Verfügung standen und es nur so möglich war, die Fähigkeiten der Hardware und des Betriebssystems vollständig auszunutzen. Mehrfach wurde durch Fremdhersteller versucht, durch einen Compiler (z. B. HiSoft Basic Compiler, GFA-BASIC oder MaxonBASIC) die Bedeutung der Sprache BASIC aufzuwerten, doch stets nur mit mäßigem Erfolg. Das endgültige „Todesurteil“ für AmigaBASIC waren jedoch Lizenzkostenprobleme bei der Abrechnung mit dem Hersteller Microsoft.

## Bedeutung

Auch wenn mit AmigaBASIC zum Teil beeindruckende Programme entwickelt wurden, so spielte dieser BASIC-Dialekt kommerziell nie eine Rolle. Dennoch ist AmigaBASIC auch ein Symbol für eine Zeit, in der noch Listings aus Zeitschriften abgetippt wurden, um so an kleine Programme oder einfache Spiele zu kommen. Alte, eventuell lieb gewonnene, AmigaBASIC-Programme lassen sich heute am ehesten auf QBasic oder mit etwas mehr Aufwand auf FreeBASIC portieren.

## Weiterentwicklung zum Freeware-Compiler „ACE-Basic“

ACE ist ein erweiterter AmigaBASIC-Compiler, der zusammen mit den Freeware-Tools A68K (Assembler) und Blink (Linker) allein ausführbare Programme erstellen kann. Aufbauend auf der Syntax von AmigaBASIC sind so Programme möglich, welche die Fähigkeiten der Programmier-Umgebung Intuition unter AmigaOS komplett ausnutzen und die in der Ablaufgeschwindigkeit das interpretierte AmigaBASIC um Längen schlagen können. Erschaffen wurde dieser Compiler vom Australier David Benn, Launceston, Tasmania. Veröffentlicht wird er unter der GNU General Public License. Die aktuelle Version 2.4 (17. September 1996) ist auf dem Aminet als Download erhältlich, siehe Weblinks.