|
Ü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...