Startseite
Amiforce 2.1     Amiforce-News Amiforce-News Amiforce-Forum Amiforce-Forum Amiforce-Chat/IRC-Chat Amiforce-Chat/IRC-Chat Gästebuch Gästebuch Kontakt mit dem Webmaster aufnehmen Kontakt mit dem Webmaster aufnehmen

Amiblitz3
Amiblitz2(alt)
Storm Wizard
Abakus-Design
Helpguide
Toolsguide
Tipps&Tricks
Gamesfun
Links
Download
Musik

Bugfixes am Forum
Subdomains aktiviert
Counterscript entfernt
  Navigation:   Index /  Amiblitz /  Amiblitz Lesematerial /  Ab2 Referenzhandbuch (index) /  Ab2 Referenzhandbuch (Kapitel 31) / 

Referenzhandbuch



Referenzhandbuch

Kapitel 31


Kapitel 30 Inhaltsverzeichnis Kapitel 32

Blitting


Dieser Abschnitt enthält alle Befehle, die das Zeichnen von Shapes auf Bitmaps mittels des Amiga-Blitterchips emöglichen.

  • Blit
  • BlitMode
  • CookieMode
  • EraseMode
  • InvMode
  • SolidMode
  • Queue
  • QBlit
  • UnQueue
  • FlushQueue
  • QBlitMode
  • Buffer
  • BBlit
  • UnBuffer
  • FlushBuffer
  • BBlitMode
  • Stencil
  • SBlit
  • SBlitMode
  • ShowStencil
  • Block



  • Index

    Befehl: Blit

    Syntax: Blit Shapenummer,X,Y[,Excessonoff]

    Modus: Amiga/Blitz


    Blit ist der simpelste Weg, ein Shape Shapenummer auf der aktuellen Bitmap an der Position X,Y zu blitten. Beachten Sie, daß der "Hotspot" (Handle) für die Position entscheidend ist. Normalerweise befindet sich der "Hotspot" an der linken, oberen Ecke des Shapes. Der Excessonoff-Parameter wird benötigt, wenn Sie ein Shape mit weniger Bitplanes (Farben), als die zu benutzende Bitmap besitzt, blitten wollen. Excessonoff schaltet überschüssige Bitplanes aus, um eine Shapeanpassung zu ermöglichen. Bit 0 von Excessonoff gibt einen an/aus Wert für die erste überzählige Bitplane, Bit 1 für die zweite überzählige Bitmap und so weiter. Die Art, wie das Shape auf die Bitplane geblittet wird, kann mit dem BlitMode-Befehl eingestellt werden.

    Beispiel:

      Screen 0,3
      ScreensBitMap 0,0
      Cls
      Circlef 32,32,32,3
      Circlef 32,32,16,2
      GetaShape 0,0,0,64,64
      Cls
      Blit 0,160,100
      MouseWait
    


    siehe auch: BlitMode, QBlit, BBlit



    Index

    Befehl: BlitMode

    Syntax: BlitMode BLTCON0

    Modus: Amiga/Blitz


    Mit BlitMode legen Sie fest, wie der Blit-Befehl den Blitter benutzt, wenn Shapes auf die Bitmaps gezeichnet werden. Hier nun einige BLTCON0-Parameter und deren Effekte:


    BLTCON0-Modus Effekt
    CookieMode Shapes werden gezeichnet "wie sie sind"
    EraseMode Auf der Zielbitmap wird eine Fläche in der Größe des Shapes gelöscht
    InvMode Auf der Zielbitmap wird eine Fläche in der Größe des Shapes invers gezeichnet
    SolidMode Das Shapeobjekt wird als einfarbiger Block gezeichnet

    Obige Modi sind alles Funktionen, die einen benutzbaren Wert wiedergeben.

    Für fortgeschrittene Programmierer:
    Die Bits 0 bis 7 legen Blitter MINITERM fest, die Bits 8 bis 11 legen fest, wie die Bliterkanäle benutzt werden.

    Kanaleinstellung für alle Blitterroutinen in AmiBlitz2:


    Kanal Effekt
    A Zeiger auf das Shape Cookie Cut
    B Zeiger auf Shape Data
    C Zeiger auf Ziel
    D Zeiger auf Ziel

    Beispiel:

      Screen 0,3                   ;ein Intuition-Bildschirm
      ScreensBitMap 0,0            ;benutze seine Bitmap
      Cls                          ;lösche Bitmap
    
      For k=7 To 1 Step -1         ;Schleifenstart
              Circlef 32,32,k*4,k  ;Kreise...
      Next                         ;Schleifenende
    
      GetaShape 0,0,0,64,64        ;Shape aufnehmen
      Cls 2                        ;Bitmap 2 mit Farbe 2 löschen
      Circlef 160,100,120,90,6     ;einen Kreis malen
      BlitMode CookieMode          ;einen Blitmodus ausprobieren
      Blit 0,0,0
      BlitMode EraseMode           ;ein anderer
      Blit 0,160,0
      BlitMode InvMode             ;noch ein anderer...
      Blit 0,0,100
      BlitMode SolidMode           ;und ein letzter
      Blit 0,160,100
    
      MouseWait
    


    siehe auch: QBlitMode, BBlitMode, SBlitMode



    Index

    Funktion: CookieMode

    Syntax: CookieMode

    Modus: Amiga/Blitz


    Als Funktion angewendet, wird ein Wert übergeben, der in Beziehung zu Befehl und Blitmodus steht. Wird CookieMode als Blitmodus benutzt, wird das Shape "so wie es ist" sauber auf die Bitmap geblitted.

    siehe auch: BlitMode, BBlitMode, QBlitMode, EraseMode, InvMode, SolidMode



    Index

    Funktion: EraseMode

    Syntax: EraseMode

    Modus: Amiga/Blitz


    Als Funktion angewendet, wird ein Wert übergeben, der in Beziehung zu Befehl und Blitmodus steht. Wird EraseMode als Blitmodus benutzt, löscht das Shape einen Bereich der Bitmap in Abhängigkeit von den Außenrändern des zu blittenden Shapes.



    Index

    Funktion: InvMode

    Syntax: InvMode

    Modus: Amiga/Blitz


    Als Funktion angewendet, wird ein Wert übergeben, der in Beziehung zu Befehl und Blitmodus steht. Wird InvMode als Blitmodus benutzt, "invertiert" das Shape einen Bereich der Bitmap in Abhängigkeit von den Außenrändern des zu blittenden Shape.



    Index

    Funktion: SolidMode

    Syntax: SolidMode

    Modus: Amiga/Blitz


    Als Funktion angewendet, wird ein Wert übergeben, der in Beziehung zu Befehl und Blitmodus steht. Wird SolidMode als Blitmodus benutzt, überschreibt das Shape einen Bereich der Bitmap in Abhängigkeit von den Außenrändern des zu blittenden Shape.



    Index

    Befehl: Queue

    Syntax: Queue Queuenummer,maximale Anzahl

    Modus: Amiga/Blitz


    Das Queue-Kommando stellt ein Queueobjekt zur Benutzung durch die Befehle QBlit und UnQueue her. In AmiBlitz2 werden Queues zur einfachen Nutzung von Mehrfach-Shape-Animationen verwendet. Bevor wir näher auf die Queues eingehen, betrachten wir uns kurz die Grundlagen einer Animation.
    Sagen wir, Sie möchten eine Gruppe von Shapes über den Bildschirm "fliegen" lassen. Um dies zu erreichen, müssen Sie eine Schleife konstruieren, ähnlich der folgenden:

    • Beginne mit dem ersten Objekt
    • Lösche das Objekt vom Display
    • Bewege das Objekt
    • Zeichne das Objekt an der neuen Stelle auf dem Display
    • Sollten weitere Objekte zu bewegen sein, benutze das nächste Objekt, dann gehe zu Schritt 2, andernfalls...
    • gehe zu Schritt 1


    Sehr wichtig ist Schritt 2. Sollten Sie diesen nicht durchführen, werden die Shapeobjekte nicht gelöscht, und beim Bewegen bleiben Reste stehen. Dadurch werden "Schwänze" hinter Ihren Objekten gebildet. Meist ist es sehr lästig, jedes einzelne Objekt zu löschen, bevor Sie es bewegen. Hierzu können Sie nun Queues benutzen.

    Queue (gesprochen:kju) heißt Reihe oder Schlange und in etwa kann man sich Queues als Warteschlangen vorstellen. Queues "erinnern" sich an die in einer Schleife gezeichneten Objekte und am Ende der Schleife (oder zu Beginn der nächsten Schleife) werden ALLE Objekte der vorherigen Schleife, die sich die Queue "gemerkt" hat, gelöscht. Sehen wir uns den Vorgang an:

    • Lösche alle Objekte, die sich in der Queue befinden
    • Beginne mit dem ersten Objekt
    • Bewege das Objekt
    • Zeichne das Objekt an der neuen Stelle und füge es an das Ende der Queue
    • Sollen weitere Objekte bewegt werden gehe zum nächsten Objekt und dann zu Schritt 3, andernfalls...
    • Gehe zu Schritt 1


    Wenn Sie das schnelle BB2 Queuesystem anwenden, bedeutet dies:

    Der UnQueue-Befehl stellt den Schritt 1 dar und der QBlit-Befehl Schritt 4.

    Der Parameter maximale Anzahl legt die Anzahl der Shapes fest, die sich die Queue "merken" kann.

    Beispiel:

      Screen 0,1             ;ein Intuition-Bildschirm
      ScreensBitMap 0,0      ;benutze seine Bitmap
      Cls                    ;lösche die Bitmap
      Circlef 16,16,16,1     ;Kreis malen
      GetaShape 0,0,0,32,32  ;in ein Shape wandeln
      Cls                    ;Bildschirm wieder löschen
      Queue 0,8              ;Queue initialisieren - maximal 8 Shapes
      BLITZ                  ;Speed - im Blitz-Modus!
    
      For y=0 To 160         ;Bitmap herunterschieben
        VWait                ;auf Anfang des Frames warten
        UnQueue 0            ;alle vorher ge-"QBlittete" Shapes entfernen
        For x=1 To 8         ;über die Bitmap bewegen
          QBlit 0,0,x*32,y   ;Objekt malen und es sich in Queue 0 merken
        Next                 ;nochmal...
      Next                   ;nochmal...
    
      MouseWait
    


    siehe auch: QBlit, UnQueue



    Index

    Befehl: QBlit

    Syntax: QBlit Queuenummer,Shapenummer,X,Y[,Excessonoff]

    Modus: Amiga/Blitz


    QBlit arbeitet wie Blit und wird benutzt, um ein Shape auf die aktuelle Bitmap zu zeichnen. Im Gegensatz zu Blit wird bei QBlit (durch Benutzung von Queue) die Position und die Größe des Shape festgehalten. Dadurch kann das Shape (oder die Shapes) später schnell und einfach mit dem UnQueue-Befehl gelöscht werden.

    Bitte lesen Sie auch den Text unter Queue.

    Weitere Informationen zu den Parametern erhalten Sie unter Blit.

    siehe auch: Blit, UnQueue, Queue



    Index

    Befehl: UnQueue

    Syntax: UnQueue Queuenummer[,Bitmapnummer]

    Modus: Amiga/Blitz


    UnQueue löscht alle "gemerkten" Teile einer Queue von der aktuellen Bitmap. Mit Bitmapnummer kann auch eine andere Bitmap benutzt werden. Durch QBlit werden die Teilstücke (Shapedaten) in die Queue übergeben.

    Bitte lesen Sie auch unter Queue.

    Beispiel:

      Screen 0,1                                    ;ein Intuition-Bildschirm
      ScreensBitMap 0,0                             ;benutze seine Bitmap
      Cls                                           ;lösche Bitmap
      Circlef 16,16,16,1                            ;male einen Kreis
      GetaShape 0,0,0,32,32                         ;in ein Shape wandeln
      Cls                                           ;Bildschirm wieder löschen
    
      For k=1 To 100
        Circlef Rnd(320),Rnd(DispHeight),Rnd(50),1  ;ein paar Kreise malen
      Next
    
      CopyBitMap 0,1                                ;ein Duplikat der Bitmap 0 erstellen
      Queue 0,8                                     ;Queue erstellen - maximal 8 Einträge!
      BLITZ                                         ;Blitz-it!
    
      For y=0 To 160                                ;die Bitmap herunterfahren
        VWait                                       ;auf den Frameanfang warten
        UnQueue 0,1                                 ;alle vorherigen Shapes löschen
        For x=1 To 8                                ;über die Bitmap bewegen
          QBlit 0,0,x*32,y                          ;Objekt malen und es in Queue 0 merken
        Next                                        ;nochmal...
      Next                                          ;nochmal...
    
      MouseWait
    




    Index

    Befehl: FlushQueue

    Syntax: FlushQueue Queuenummer

    Modus: Amiga/Blitz


    Entleert das gewählte Queueobjekt. Der nächste UnQueue-Befehl bleibt ohne Wirkung.

    siehe auch: Queue, QBlit



    Index

    Befehl: QBlitMode

    Syntax: QBlitMode BLTCON0

    Modus: Amiga/Blitz


    Wie BlitMode, hier für das QBlitting. Bitte lesen Sie unter BlitMode.

    siehe auch: BlitMode



    Index

    Befehl: Buffer

    Syntax: Buffer Buffernummer,Speicherlänge

    Modus: Amiga/Blitz


    Buffer stellt ein Bufferobjekt her. Bitte lesen Sie unbedingt unter Queue und QBlit nach, da Buffer diese Grundlagen verwendet. Buffer, BBlit und UnBuffer arbeiten wie die Queuebefehle, zusätzlich wird aber noch die Hintergrundgrafik zwischengespeichert. Durch UnBuffer wird das Shape von der Bitplane gelöscht und die Hintergrundgrafik wiederhergestellt. Diese Art des Blittens ist zwar sehr komfortabel, aber auch sehr speicherintensiv. Eine Speicherlänge von 16384 Byte ist voreingestellt und sollte für die meisten Situationen ausreichen. Sie ist aber abhängig von der Shapegröße und der Anzahl der Shapes, die zwischen BBlit und UnBuffer erzeugt werden.

    Sollte die Buffergröße nicht ausreichen, erhalten Sie eine "Buffer Overflow"-Fehlermeldung.

    Beispiel:

      BitMap 0,64,64,1
      Boxf 0,0,63,63,1
      GetaShape 0,0,0,64,64
      FindScreen 0
      ScreensBitMap 0,0
      Buffer 0,16384         ;16384 Bytes zum Buffern
    
      For x=0 To 600
        VWait
        UnBuffer 0
        BBlit 0,0,x,192
      Next
    
      MouseWait
    




    Index

    Befehl: BBlit

    Syntax: BBlit Buffernummer,Shapenummer,X,Y[,Excessonoff]

    Modus: Amiga/Blitz


    Wie Blit/QBlit, zusätzlich wird die Hintergrundgrafik in einem Buffer (Puffer) zwischengespeichert. Weitere Informationen erhalten Sie unter Buffer und Queue.

    Die Parameter werden unter Blit erklärt.

    Beispiel:

      Screen 0,3                                           ;ein Intuition-Bildschirm
      ScreensBitMap 0,0                                    ;benutze seine Bitmap
      Cls                                                  ;Bitmap löschen
      Circlef 8,8,8,7                                      ;Kreis malen
      GetaShape 0,0,0,20,16                                ;als Shape benutzen
      Cls                                                  ;und Bitmap wieder löschen
    
      For k=1 To 100                                       ;100 zufällige Vierecke zeichnen
        Boxf Rnd(320),Rnd(200),Rnd(320),Rnd(200),Rnd(6)+1
      Next
    
      Buffer 0,16384                                       ;Bufferspeichergröße setzen
    
      While Joyb(0)=0                                      ;Schleifenstart bis Maustastenklick
        VWait                                              ;auf Vertical Blank warten
        UnBuffer 0                                         ;Bereiche in der Bitmap ersetzen
        BBlit 0,0,SMouseX/2+80,SMouseY/2+50                ;Objekt blitten dem Puffer hinzufügen
      Wend
    


    siehe auch: Buffer, UnBuffer



    Index

    Befehl: UnBuffer

    Syntax: UnBuffer Buffernummer

    Modus: Amiga/Blitz


    Löscht mit BBlit gezeichnete Shapes von der Bitmap, und die Hintergrundgrafik wird wieder hergestellt. Weitere Informationen erhalten Sie unter Buffer.

    siehe auch: Buffer, BBlit



    Index

    Befehl: FlushBuffer

    Syntax: FlushBuffer Buffernummer

    Modus: Amiga/Blitz


    FlushBuffer entleert den Buffer. Der nächste UnBuffer-Befehl hat keine Wirkung.

    siehe auch: Buffer, BBlit



    Index

    Befehl: BBlitMode

    Syntax: BBlitMode BLTCON0

    Modus: Amiga/Blitz


    Wie BlitMode, hier für BBlitting. Weitere Informationen unter BlitMode.

    siehe auch: BlitMode



    Index

    Befehl: Stencil

    Syntax: Stencil Stencilnummer,Bitmapnummer

    Modus: Amiga/Blitz


    Der Stencil-Befehl erstellt ein Stencilobjekt basierend auf den Daten der zuvor erstellten Bitmap. Stencil beinhaltet alle Grafikdaten der Bitmap und wird mit den SBlit- und ShowStencil-Befehlen benutzt.

    Beispiel:

      For k=1 To 7               ;einige konzentrische Kreise zeichnen
        Circle 160,115,k*10,k
      Next
    
      Stencil 0,0                ;ein Stencil aus Bitmap 0 machen
      Buffer 0,16384             ;Puffer für BBlit setzen
      BLITZ                      ;BLITZ!
    
      For x=0 To 280             ;Shapes bewegen
        VWait                    ;auf Vertical Blank warten
        UnBuffer 0               ;BBlits erstezen
        For y=50 To 150 Step 50
          BBlit 0,0,x,y          ;einige unserer Shapes BBlitten
        Next
        ShowStencil 0,0          ;Stencil
      Next
      MouseWait
    




    Index

    Befehl: SBlit

    Syntax: SBlit Stencilnummer,Shapenummer,X,Y[,Excessonoff]

    Modus: Amiga/Blitz


    SBlit arbeitet wie Blit, speichert aber die Stencildaten. Dies ist ein schneller Weg, um eine "Vordergrundgrafik" auf der Bitmap auszugeben. Weitere Informationen erhalten Sie unter Blit.

    Beispiel:

      Screen 0,3                           ;ein Intuition-Bildschirm
      ScreensBitMap 0,0                    ;benutze seine Bitmap
      Boxf 0,0,31,31,3                     ;eine Box auf der Bitmap zeichnen
      GetaShape 0,0,0,32,32                ;als Shape 0 aufnehmen
      Cls                                  ;Bitmap löschen
      Boxf 0,0,15,15,4                     ;eine andere Box malen
      GetaShape 1,0,0,16,16                ;und sie als Shape 1 aufnehmen
      Cls                                  ;ein anderes CLS
      Stencil 0,0                          ;Stencil erzeugen
    
      For k=7 To 1 Step -1                 ;ein "Bullauge" im Hintergrund malen
        Circlef 160,115,k*10,k
      Next
    
      For k=1 To 50                        ;50 Zufalls-Vordergrund-Kästen zeichnen
        SBlit 0,1,Rnd(320-16),Rnd(200-16)
      Next
    
      Buffer 0,16384                       ;initialsiere Buffer
    
      BLITZ                                ;ab in den BLITZ-Mode!
      For x=0 To 280                       ;Schleifenstart
        VWait                              ;auf Vertical Blank warten
        UnBuffer 0                         ;Pufferinhalt ersetzen
        For y=50 To 150 Step 50
          BBlit 0,0,x,y                    ;unser Shape blitten
        Next
        ShowStencil 0,0
      Next
    
      MouseWait
    




    Index

    Befehl: SBlitMode

    Syntax: SBlitMode BLTCON0

    Modus: Amiga/Blitz


    Wie BlitMode, hier für SBlitting. Weitere Informationen erhalten Sie unter BlitMode.

    siehe auch: BlitMode



    Index

    Befehl: ShowStencil

    Syntax: ShowStencil Buffernummer,Stencilnummer

    Modus: Amiga/Blitz


    Mit den Stencil-Befehlen (SBlit, ShowStencil) erhalten Sie ungeahnte Möglichkeiten. Allerdings ist es nicht einfach, das Prinzip zu erklären. Wenn Sie aber einmal die Zusammenhänge verstanden haben (und das erreichen Sie, wie bei vielen anderen Befehlen auch, am besten durch Ausprobieren) werden Sie Effekte anwenden können, die Sie kaum für möglich halten. Und Sie werden erkennen, daß viele Profispiele genau diese Effekte nutzen.

    Erst vor kurzer Zeit lag mir ein sehr gutes PD-Programm vor, worin sich der Autor etwa wie folgt in der Anleitung äußert:

    "...leider können Stencils (was immer dies auch sein soll) nicht angezeigt werden..."

    Damit Sie nicht ebenso dastehen, werde ich jetzt versuchen, Ihnen das Prinzip von Stencil zu erklären. ShowStencil wird in Verbindung mit dem BBlit-Befehl benutzt, um bei Stencilobjekten den "Stencileffekt" zu erzeugen. Na,ja. Jetzt sind Sie sicherlich genauso schlau wie zuvor. Das englische Handbuch gibt hier nicht viel Schützenhilfe.

    Ich probiere es mal mit einem Beispiel:

    Stellen Sie sich vor, Sie möchten ein Spiel im Weltall programmieren. Hierzu benötigen Sie den Weltraum, also Planeten und Sterne. Als Grafikvordergrund wählen Sie das Fenster Ihres Raumschiffes mit vielen kleinen Details (z.B.: Radarortung in der Mitte des Fensters). Um nun einen Stencileffekt zu erzeugen, benötigen wir die komplette (also Vorder- und Hintergrundgrafik (oder für unser Beispiel Weltall- und Raumschiffenster-Grafik, die wir als Bitmap anzeigen. Weiterhin benötigen wir ein Stencilobjekt, das nur die Vordergrundgrafik (Fenster mit den Details) enthält und das wir später mit dem Stencil- oder SBlit-Befehl verwenden.

    Nun blitten wir mit dem BBlit-Befehl unsere Shapes auf die Bitmap. Natürlich werden dadurch alle Grafikteile (Vorder- UND Hintergrund) überschrieben. Aber nachdem Sie alle Shapes geBBlittet haben und nun den ShowStencil-Befehl ausführen, wird die überschriebene Vordergrundgrafik (Ihr Fenster mit den Details) wieder hergestellt.
    Somit erscheinen Ihre Shapes zwischen der "Hintergrund-" und der "Vordergrundgrafik". 3D läßt grüßen.

    Beachten Sie: Stencilobjekte beinhalten alle wichtigen Grafikdaten, aber keine Farbinformationen.

    Beispiel:

      Screen 0,3                 ;ein Intuition-Bildschirm
      ScreensBitMap 0,0          ;seine Bitmap - nun unsere!
      Cls                        ;lösche Bitmap
      Boxf 0,0,7,15,1            ;ein Shape malen
      Boxf 8,6,15,11,2
      GetaShape 0,0,0,16,16      ;und aufnehmen
      Cls                        ;Bitmap wieder löschen
      Boxf 80,50,240,150,3       ;irgendetwas malen
      Boxf 90,60,230,140,0
      Box 85,55,235,145,0
      Stencil 0,0                ;aus der Bitmap ein Stencil machen
      Cls                        ;Bitmap löschen
      Circlef 160,100,90,4       ;Hintergrundgrafikem malen
      Boxf 80,50,240,150,3       ;und (wieder!) Vordergrund
      Boxf 90,60,230,140,4
      Box 85,55,235,145,4
      Buffer 0,16384             ;ein Puffer für BBlit einrichten
      BLITZ                      ;kein Kommentar!
      For x=0 To 300             ;Schleifenstart
        VWait:UnBuffer 0         ;auf Frameanfang warten und Puffer ersetzen
        For y=40 To 140 Step 50  ;Schleifenstart, um 3 Shapes zu zeichnen
          BBlit 0,0,x,y          ;ein Shape darstellen
        Next
        ShowStencil 0,0          ;Vordergrund ersetzen
      Next
    
      MouseWait
    




    Index

    Befehl: Block

    Syntax: Block Shapenummer,X,Y

    Modus: Amiga/Blitz


    Block ist eine extrem schnelle Version des Blit-Kommandos mit einigen Einschränkungen. Block kann nur mit Shapes der Breite 16,32,48,64... (16er Schritte) Pixel benutzt werden und diese dürfen nur an den entsprechenden X-Positionen (0,16, 32,48,64...) geblittet werden. Mit Block können Map-Type-Bildschirme aufgebaut werden. Die Höhe und Y-Position des Shape ist nicht begrenzt.






    Impressum
    Copyright © 2001-2007 by Cj-Stroker. Alle Rechte vorbehalten (Legal Info)
    AMIGA und zugehörige Logos sind eingetragene Warenzeichen von Amiga, Inc.