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