Software

 

Übersicht
SOFTWARE


Workbench 1.3

Der Amiga besitz ein Betriebssystem, das quasi in zwei Teile gespalten ist. Die wichtigsten Teile befinden sich in einem ROM-Baustein, die Tools, Voreinsteller und anderen Programme werden auf Disketten geliefert.

Beim Betriebssystem selbst fällt sofort ein (für die damalige Zeit) modernes Multitasking-Konzept (!!!) auf, das Elemente von MP/M enthält. Der Benutzer kann auf dem Amiga mehrere Programme scheinbar gleichzeitig ausführen. Die CPU kann natürlich nur eines zugleich bearbeiten, also bekommt jedes Programm eine seiner Priorität entsprechende Zeitscheibe. Das Betriebssystem überwacht die Zeit in der ein Programm die Kontrolle über die CPU hat, um nach wenigen Millisekunden einem anderen Programm den Vorzug zu geben.
Eine wichtige Eigenschaft des AmigaOS ist es nun, Prozesse synchronisieren zu können. Das Betriebssystem hält Programm 2 zum Beispiel an, wenn Programm 1 noch nicht weit genug gearbeitet hat. Dieses Konzept, damals im PC-Bereich wenig bekannt, eröffnete neue Dimensionen. Ein komplexes Softwareprojekt kann in mehrere Prozesse aufgeteilt werden die alle einzeln getestet und geschrieben werden. Erst ganz zum Schluss fügt man das gesamte System zusammen und lässt es in der Multitasking-Umgebung ablaufen.
Die Ein-Ausgabeoperationen erfolgen über Devices, wobei das Betriebssystem bei Laufwerken sowohl den Diskettennamen (z.B. "Workbench 1.3) als auch den Device-Namen (z.B. "DF0:") akzeptiert. Der Diskettenname hat hierbei immer Vorrang. Um jetzt dem Betriebssystem ein neues Gerät bekannt zu machen, benötigte man eine sog. Mountlist, die Parameter wie Sektoranzahl usw. enthielt und ein entsprechendes <IRGENDWAS>.device, also eine Treiberdatei, die die I/O-Operationen ausführt. Ein CD-Laufwerk hinzuzufügen wird so zu einer trivialen Aufgabe (im Gegensatz zu MS-DOS PCs...). Außer Laufwerken gab es auch Geräte wie CON:, also das Terminal, oder SER:, die Serielle Schnittstelle. Für die Ansteuerung von Druckern gab es sogar zwei Möglichkeiten: einmal direkt über PAR:, was die Daten einfach so rausschickte, und dann noch über PRT:, was die Daten erst mal durch den Workbench-Druckertreiber schickte, und dann erst über die in den Prefs eingestellte Schnittstelle (SER: oder PAR:).

Die Benutzeroberfläche wurde wie bei der Konkurrenz von Apple mit Icons, Menüs und einer Maus gesteuert. Bekannte Features wie Drag-and-Drop werden durch das Konzept der Virtuellen Bildschirme ergänzt. Dabei werden quasi mehrere Bildschirme mit verschiedenen Auflösungen, Farbtiefen und Paletten hintereinander dargestellt. Durch einen Hardware-Trick, der durch den Copper-Chip möglich gemacht wird (siehe II.5.b) , können diese Bildschirme "heruntergezogen" werden, so dass auch wirklich mehrere Schirme gleichzeitig sichtbar sind. Der praktische Nutzen ist eine übersichtliche Aufteilung der gleichzeitig laufenden Programme, die je nach Bedarf mit anderen Bildschirmmodi arbeiten können.
Diese Möglichkeit ist bis heute einmalig.
Die erste Generation: OS 1.x.


Mit dem ersten Amiga, der später Amiga 1000 getauft wurde, wurde im Jahr 1985 die Version 1.0 des Amiga-Betriebssystems ausgeliefert. Schon diese allererste Version setzte Maßstäbe, die lange Zeit unerreicht blieben: Präemptives Multitasking ermöglichte eine optimale Verteilung der CPU-Rechenzeit auf verschiedene Prozesse. Die Oberfläche war intuitiv mit der Maus zu bedienen, aber gleichzeitig war es möglich, über das CLI (den Vorgänger der Shell) kompliziertere Vorgänge auch mit der Tastatur zu erledigen. Dabei war dieses OS eines der kleinsten und effektivsten, das auf dem Markt war - ein Pluspunkt, der ihm bis heute geblieben ist.


Es gab beim Amiga 1000 noch keine Kickstart-ROMs: Dieses wurde auf Diskette mitgeliefert und beim Starten als erstes geladen. Nach dem Einschalten begrüßte den Benutzer lediglich ein Bildschirm, der zum Einlegen der entsprechenden Diskette aufforderte.
Die erste Version des Betriebssystems war noch recht fehlerhaft und stürzte häufig ab, trotzdem begeisterte sie die Amiga-Fans der ersten Stunde. OS 1.0 unterstützte für die Bildschirmausgabe nur das amerikanische NTSC-System. Wie die heute bekanntere Workbench 1.3 hatte es einen blauen Hintergrund. Die Piktogramme waren allerdings noch sehr einfach und zweidimensional gehalten. Beim Ziehen von Piktogrammen verwandelte sich lediglich der Mauszeiger in einen Kreis mit einem X darin. Auf Diskette lag außerdem Amiga-Basic als Programmiersprache, sowie ein Tutorial bei.
Bereits im gleichen Jahr, 1985, gab es das erste Update: 1.1. Hiervon gab es zwei Versionen: eine für NTSC (V 31.x), eine andere für PAL (V32.x) für den europäischen Markt. Der einzig wirklich sichtbare Unterschied zur Version 1.0 bestand in drei kleinen Demos: "Lines", "Boxes" und "Dots". Im übrigen handelte es sich wohl weitgehend um eine Beseitigung von Bugfixes.
Mit dem Amiga 500 bzw. 2000 wurde im Jahr 1987 die Version 1.2 veröffentlicht. Dies war die erste Version mit Kickstart-ROMs, die der Amiga 1000 ja noch nicht hatte. Einige bis heute amigatypische Besonderheiten wurden mit 1.2 eingeführt, insbesondere die RAM-Disk und Auto-Config - das fast ein Jahrzehnt später als "Plug and Play" von Konkurrenten "erfunden" wurde. Auf der neu hinzugekommenen "Extras"-Diskette fand sich unter anderem das Programm "AmigaBASIC" - von niemand anderem als dem damals relativ kleinen Unternehmen Microsoft (man höre und staune!) entwickelt. Im übrigen gab es kleinere optische Verbesserungen: Das Trashcan-Piktogramm wurde erneuert, und Piktogramme blieben sichtbar, wenn sie mit der Maus gezogen wurden.


AmigaOS 1.3 ist bis heute noch auf erstaunlich vielen Systemen im Einsatz. Es wurde 1988 ausgeliefert, zusammen mit neuen ROMs. Nun wurde auch zusätzlicher Speicher automatisch eingebunden, und das Starten von Datenträgern wie Festplatten war möglich. Das neue "FastFileSystem" war schneller und konnte etwas mehr Daten speichern. Ein automatisches Booten war aber nur von "alten" Festplattenpartitionen möglich, da das FFS noch nicht im ROM gespeichert war. Die Piktogramme wurden komplett überarbeitet und hatten jetzt ein ansprechenderes 3D-Aussehen. Intern wurden eine Menge Änderungen vorgenommen: Manche DOS- Befehle kamen neu hinzu, andere wurden überarbeitet. Das Mount-Kommando und die Mountlist wurden eingeführt. Verschiedene Handler (wie Aux-Handler und Speak-Handler) kamen hinzu. In den folgenden Jahren gab es kleinere Updates (1.3.2, 1.3.3 und 1.3.4), in denen insbesondere Fehler ausgemerzt wurden. Offenbar sah Commodore AmigaBASIC als einen einzigen großen Fehler an: Es wurde ab 1.3.3 komplett entfernt, da es zu oft abstürzte. Bedenkt man, von wem das Programm stammte, war dies sicher eine weise Entscheidung. Abgesehen davon ist von diesen kleineren Revisionen nur noch erwähnenswert, dass die RAM-Disk in der Version 1.3.2 den Namen RAMBO: bekam, was später aber wieder geändert wurde. Eventuell handelte es sich dabei allerdings auch um eine Fälschung.



- CLI (oder AmigaDOS)

Eine zweite, völlig verschiedene Möglichkeit der Bedienung des Amiga ist das CLI. CLI bedeutet command line interface.
Amiga-Dos ist eine befehlsorientierte Steuerrungsmöglichkeit des Betriebssystems.
In Amiga-Dos gibt es ähnlich wie bei MS-DOS verschiedene Befehle wie z.B. COPY, DIR und RENAME. Es gibt Pfade und auch selbstausführende Scripts. Im Gegensatz zu MS-Dos ist Amiga-Dos jedoch nicht von der graphischen Nutzeroberfläche getrennt, stattdessen ist es ein fester Bestandteil von ihr. Befehle und Ausgaben erscheinen in einem Workbench-Fenster namens Shell.
Das CLI galt besonders unter Entwicklern als sehr beliebt, da es dem Benutzer alle Möglichkeiten des AmigaOS zur Verfügung stellte, während in der grafischen Oberfläche, der Workbench einige Fähigkeiten verborgen blieben.
Im Gegenzug muss der Entwickler aber natürlich auf einige Erleichterungen der Workbench verzichten, da die Befehlseingabe in der CLI oft sehr aufwendig ist.



Programmiersoftware

Dem Benutzer des Amigas wurde es auch ermöglicht, selbst Programme zu entwickeln.
Dafür standen verschiedene Mittel und Programmiersprachen zur Verfügung.

- Editoren

Zur Erstellung des Programmcodes gab es verschiedene Editoren.
"ed" ist einer dieser Editoren. Er ist ein CLI-Editor, der ausschließlich durch die Tastatur bedient wird.
Etwas komfortabler ist hier schon der Editor "MicroEmacs", der neben der Tastatur auch die Maus als Eingabegerät akzeptiert. So können Menübefehle oder die Navigation im Text erheblich erleichtert werden. "MicroEmacs" beherrschte sogar schon eine Art von "Copy-and-Paste".
Eine weitere Ausbaustufe des "MicroEmacs" ist der auch heute noch weit verbreitete Editor "emacs".
Neben den eben beschriebenen Editoren existierten aber noch weitere. Es gab z.B. ein "Notepad" oder den Editor mit dem schlichten Namen "edit".
Sehr beliebt war auch das "List"-Fenster, mit welchem hauptsächlich BASIC-Programme bearbeitet wurden.

- AmigaBASIC

AmigaBASIC stammt, wie oben schon erwähnt von der Firma Microsoft und ist dem wohl bekannteren QBASIC in einigen Bereichen sehr ähnlich.
Für damalige Verhältnisse war AmigaBASIC sehr leistungsstark. Sämtliche Vorzuge, ob die grafischen oder musikalischen Möglichkeiten des Amigas, konnten mit AmigaBASIC voll ausgenutzt werden.
Hier soll nun auf einige Besonderheiten von AmigaBASIC eingegangen werden.

Variablen
Bei AmigaBASIC gab es zwei Arten von Variablen. Dies waren entweder String- oder numerische Variablen.
String-Variablen konnten maximal 32767 Zeichen enthalten und waren standardmäßig mit einem Leerstring initialisiert. Sie wurden durch ein $ nach dem Variablennamen gekennzeichnet und hatten eine Länge von 5 Byte.
Numerische Variablen wurden nochmals unterteilt, wie folgende Tabelle zeigt:

Typ
Bezeichnung
Kennung
Größe
Bereich
INT
kurze Ganzzahl
<name>%
2 Byte
-32768 bis +32767
LNG
lange Ganzzahl
<name>&
4 Byte
-2147483648 bis +2147483647
SNG
einfache Genauigkeit
<name>!
4 Byte
1,18*10^-38 bis 3,4*10^38
DBL
doppelte Genauigkeit
<name>#
8 Byte
2,23*10^-308 bis 1,79*10^308

Gibt man einer Variable keine Kennung, so nimmt AmigaBASIC an, dass es sich um eine SNG-Variable handelt.
Dies kann aber umgangen werden, indem man den Standardtyp für Variablen ohne Kennung wie folgt festlegt:
DEFINT M-R // legt fest, dass alle Variablen mit den Anfangsbuchstaben M bis R INT-Variablen sind.

Beispiele für Variablen:
Text$="dies ist eine String-Variable" // String-Variable
Preis%=99 // Integer-Variable
Pi1!=3,141 // einfache Genauigkeit
Pi2#=3,14159265 // doppelte Genauigkeit
Egal=37 // standardmäßig doppelte Genauigkeit

Variablen können natürlich auch in einen anderen Typ umgewandelt werden:
V=CDBL(expr) // wandelt den Wert von expr in eine doppelte Genauigkeit um
V=CSNG(expr) // Umwandlung in einfachgenaue Zahl
V=CINT(expr) // Umwandlung in kurze Ganzzahl (evtl. Rundung)
V=CLNG(expr) // Umwandlung in lange Ganzzahl (evtl. Rundung)

Neben diesen einfachen Variablen-Typen kannte AmigaBASIC aber auch schon eine Art von Arrays, die "Feldvariablen".
Es können alle Arten von Variablen in Feldvariablen gespeichert werden. Innerhalb einer Feldvariablen muss jedoch jede Variable den selben Typ besitzen.
Festgelegt wird so ein Array z.B. folgendermaßen:
DIM intarray%(150)
So legt man fest dass die Variable intarray 150 Integer Elemente besitzen kann.
Auf die einzelnen Element wird mit dem Array-Namen und dem Index zugegriffen:
Intarray%(23) // greift auf das 23. Element zu
Arrays können auch mehrdimensional sein. Bis zu 255 Dimensionen kann eine Feldvariable besitzen. Jede Dimension kann wiederum bis zu 32767 Element aufnehmen. Bei der Nummerierung des Indexes beginnt man mit 0.

Operationen
Mit den Variablen können natürlich auch Operationen durchgeführt werden. So sind alle Rechenarten, sowie logische Operationen möglich

Bildschirm Ein- / Ausgabe
Der Benutzer kann mit AmigaBASIC Text oder Zahlen auf dem Bildschirm ausgeben.
Dies erfolgt mir dem Befehl PRINT.
Mittels INPUT oder LINE INPUT können auch Tastatureingaben in Variablen gelesen werden.

Schleifen
Es gibt in AmigaBASIC zwei Arten von Schleifen: die WHILE- und die FOR- Schleife.

Bei der WHILE-Schleife kann zu Beginn eine Bedingung überprüft werden. Ist diese erfüllt, so werden alle Befehle bis zu dem Befehl WEND durchgeführt. Anschließend wird wieder zu dem Schleifenbeginn gesprungen.

Mit der FOR-Schleife wird zu Beginn ein Bereich für eine Variable festgesetzt. Ist die Variable in diesem Bereich, werden die Befehle bis NEXT durchgeführt.
NEXT legt fest welche Variable nach jedem Schleifendurchlauf geändert wird. Die Art der Änderung wird durch STEP festgesetzt.

IF - Abfragen

Bei den IF-Abfragen wird ein Ausdruck überprüft. Ist diese Bedingung erfüllt kann entweder mit GOTO zu einem anderen Programmteil gesprungen (siehe unten), oder durch THEN eine Folge von Befehlen durchgegangen werden.
Trifft die Bedingung nicht zu, so werden optional die ELSEIF oder ELSE - Blöcke angesteuert.
Beendet wird eine IF-Abfrage mit END IF.

GOTOs
AmigaBASIC unterstützte noch die heutzutage weitestgehend verschwundenen GOTO-Befehle. Mittels diesem Ausdruck konnte zu einem bestimmten Zeitpunkt das Programm zu einem festgelegten Programmblock springen.
Diese Blöcke wurden beispiels weise durch ErsterBlock: festgelegt.
Mit GOTO ErsterBlock konnte zu diesem Bereich gesprungen werden.

Umgang mit Dateien
Natürlich beherrscht AmigaBASIC auch den Umgang mit Dateien. Es sind zahlreiche Befehle für das Lesen und Schreiben auf Dateien bereitgestellt worden.
Auch das Ausdrucken von Dateien kann realisiert werden.

Sprachausgabe
AmigaBASIC nutzt selbstverständlich auch die Möglichkeiten der Hardware in Bezug auf die Sound-Ausgabe aus.
Mit dem BEEP oder SOUND-Befehl können einfache Töne oder aber auch ganze Melodien und Soundeffekte realisiert werden.
Eine Besonderheit des Amigas ist aber seine Sprachausgabe.
Mit SAY kann der Amiga in verschiedenen Tonlagen und Frequenzen Sprache ausgeben.
Den auszugebenden Text legt man mit var$=TRANSLATE$("Sag dies und das") fest.
Mit SAY var$ wird dieser Text dann gesprochen. Ein zufriedenstellendes Resultat erreicht man hier aber nur mit englischem Text.
Andere Sprachen können mit einigen Tricks verständlich widergegeben werden.
Die erste Möglichkeit ist, den angegeben Text so zu schreiben, dass er englisch gesprochen in etwa der jeweiligen Aussprache ähneln könnte.
A$=TRANSLATE$("bitt_a Drooker ayn shalten.") gibt beispielsweise einigermaßen versrändlich "Bitte Drucker einschalten" wieder.

Die zweite Möglichkeit ist, der SAY Anweisung Phoneme anzugeben. Mit
A$="BIHDEX DRUHKEHRX AYNQSHAXLTEHN"
SAY A$
wird ebenfalls "Bitte Drucker einschalten" zu hören sein.
Dies ist aber relativ umständlich.
Auf der deutschen Version der Extras-Diskette ist jedoch ein Programm mitgeliefert, mit welchem deutscher Text automatisch in Phoneme umgewandelt wird.

Ein Beispielprogramm befindet sich im Anhang C.


- C auf dem Amiga

Auch auf dem Amiga waren schon C-Compiler erhältlich.
"Aztec" und "Lattice" hießen die zwei bekanntesten, welche auch nach zahlreichen Versionsänderungen den ANSII-Standard erreichten.

Anwendungssoftware

Der Amiga wurde und wird zwar oft als Spielecomputer bezeichnet, doch das ist ganz und gar nicht der Fall.
Er wurde (in leicht abgeänderter Form und technisch aufgerüstet) z.B. auch bei Fernsehproduktionen zur Grafikentwicklung benutzt, da er damals in Sachen Grafik einfach Maßstäbe setzte.
Aber auch für den Heimanwender gab es eine ganze Reih von Software. Darunter fielen natürlich zahlreiche Grafikprogramme. Eines der bekanntesten war wohl Deluxe Paint III, mit welchem schon eine große Anzahl von Bearbeitungsmöglichkeiten von Bildern zur Verfügung gestellt wurde.
Auch Tabellenkalkulationsprogramme oder Rechtschreibkorrekturen gab es für den Amiga.
Daneben existierten noch exotischere Programme, wie etwa eine Anbindungssoftware, um Bilder oder Musik zu digitalisieren.
Alles in allem war der Amiga 500 also auch bestens für den Bürobedarf gerüstet.

Spiele

Die Bezeichnung als "Spielecomputer" mag trotzdem nicht ganz verwundern, wenn man bedenkt, dass er zu damaliger Zeit grafisch und sound-technisch Maßstäbe setzte.
Aus diesen Gründen wurden auch viele Spiele äußerst erfolgreich. Man denke hierbei nur etwa an "Lemmings", "Giana Sisters", "Street Fighter II", "Turrican III", "Bubble Bobble", "Oil Imperium" oder viele weitere.

Zwar kann man diese Spiele grafisch nicht mehr mit neueren Produktionen vergleichen, aber der Amiga 500 löste die Spielfreude auf Computern erst so richtig aus.
Leider (aus Sicht von Amiga) verfügte er über keine ausreichenden Schutzvorkehrungen gegen Raubkopien.
Sieht man in den privaten Sammlungen nach, so ist die Anzahl der Originale unter den Spielen meist verschwindend gering.
In zahlreichen Fällen brüsteten sich die Cracker der Spiele auch öffentlich in den Intros damit, dieses Spiel für die Öffentlichkeit frei zugänglich gemacht zu haben. "Cracked by XXX" wahr in fast jedem Spiel zu lesen.

Aus diesem Grunde ging der Umsatz an Spielen zwangsläufig mit der Zeit stark zurück. Dies wiederum hatte maßgeblichen Anteil, an der Pleite Amigas.

Trotzdem bleiben die alten Klassiker wohl auf ewig in Erinnerung. Kaum ein heutiges Computerspiel wird je wieder diesen Kultstatus erreich, wie z.B. "Lemmings".
Und das alles mit einer sehr spärlichen Grafik...




Übersicht