RETRODREAMSAMIGA & SPECTRUM
Menü

← Alle Chips

agnus.chip

PLCC-84 · 8372A · Zeichnung, kein Foto

Amiga-ChipsCommodore (MOS / CSG)

1985

Agnus / Alice

Der Chip, der über den Speicher des Amiga herrscht und Copper und Blitter in sich trägt.

Die Agnus entscheidet, wer das Chip RAM wann nutzt, und versteckt zwei Koprozessoren: den Copper, der das Videobild im Takt des Elektronenstrahls ändert, und den Blitter, der Bildblöcke kopiert und zeichnet, ohne den Prozessor zu belasten. Sie entwickelte sich von der ursprünglichen Agnus mit 512 KB bis zur Alice des AGA mit 2 MB.

Bit Bus
16

Eine Konsole aus Steckbrettern

Alles beginnt 1982 bei Hi-Toro, der kleinen Firma aus Kalifornien, die sich kurz darauf Amiga Corporation nannte. Jay Miner, der schon die Grafikchips des Atari 2600 und der 8-Bit-Atari entworfen hatte, leitete die Hardware einer Konsole mit dem Codenamen Lorraine, dem Namen der Frau von Dave Morse, dem Präsidenten der Firma.

Bevor es Silizium gab, existierten die Chips als Stapel von Steckbrettern (Breadboards) voller gewöhnlicher Bauteile, verbunden durch ein Gewirr aus Drähten. Man erzählt, das Ganze habe einen Küchentisch gefüllt. In diesem Zustand wurde die Lorraine auf der CES im Januar 1984 gezeigt.

Anfangs hießen die drei Chips Agnus, Daphne und Portia. Agnus behielt als einziger den Namen; aus den anderen beiden wurden später Denise und Paula.

Die Pförtnerin des Chip RAM

Im Amiga liegen Bild, Ton und Diskettendaten in einem gemeinsamen Speicher, dem Chip RAM. Prozessor und andere Chips dürfen dort nicht nach Belieben zugreifen: Sie müssen die Agnus fragen. Sie verwaltet 25 DMA-Kanäle (direkter Speicherzugriff), das heißt, Video, Ton und Diskette holen sich ihre Daten selbst, ohne dass der Prozessor sie einzeln heranschaffen muss.

Der Trick liegt in der Zeitaufteilung. Der 68000 nutzt den Speicher nur in jedem zweiten Zyklus, deshalb gibt die Agnus die ungeraden Zyklen an Video, Ton und Diskette und lässt die geraden dem Prozessor. Im normalen Betrieb merken die beiden nichts voneinander. Nur wenn der Bildschirm viele Farben in hoher Auflösung nutzt oder der Blitter unter Volllast arbeitet, muss der Prozessor warten.

All das läuft im Takt des Bildschirms. Die Zeiteinheit der Agnus ist der Farbtakt von etwa 280 Nanosekunden, die Dauer von zwei Pixeln in niedriger Auflösung. Die Agnus führt die Zähler für die Strahlposition und kann sich auf ein externes Videosignal synchronisieren (Genlock), einer der Gründe, warum der Amiga so schnell in Fernsehstudios Einzug hielt.

Der Copper: ein Koprozessor, der nur an den Bildschirm denkt

Der Copper (von coprocessor) ist eine kleine Maschine, die parallel zum Prozessor ein eigenes Programm ausführt, die Copperliste. Er kennt nur drei Befehle: MOVE schreibt einen Wert in ein Chipregister, WAIT wartet, bis der Strahl eine Bildschirmposition erreicht, und SKIP überspringt den nächsten Befehl, wenn der Strahl schon vorbei ist. Jeder Befehl belegt 4 Bytes.

Das klingt nach wenig, aber genau das gibt dem Amiga sein Gesicht. Weil der Copper Farben, Auflösung oder Bildadresse mitten im Bild ändern kann, kann eine Zeile andere Farben haben als die nächste: Das sind die Farbbalken (raster bars) so vieler Demos und Spiele. Der Copper erlaubt es auch der Workbench, zwei Bildschirme mit unterschiedlicher Auflösung gleichzeitig übereinander zu zeigen.

Die Liste beginnt bei jedem Bild von vorn, 50-mal pro Sekunde bei PAL. Einen Endbefehl gibt es nicht: Man beendet sie mit einem WAIT auf eine Position, die der Strahl nie erreicht. Während er wartet, gibt der Copper den Bus frei und verbraucht keine Speicherzyklen.

Der Blitter: kopieren, verknüpfen, zeichnen

Blitter kommt von „block image transfer“. Er liest bis zu drei Speicherblöcke (A, B und C genannt), verknüpft sie Bit für Bit mit einer frei wählbaren logischen Funktion und schreibt das Ergebnis in einen vierten Block, D. Es gibt 256 mögliche logische Funktionen, und unterwegs kann jede Zeile um 0 bis 15 Pixel verschoben werden. So zeichnet man eine freigestellte Figur über die Kulisse: Die Maske sagt, wo die Figur den Hintergrund verdeckt und wo sie ihn durchscheinen lässt.

Programmierer nannten diese vom Blitter gezeichneten Figuren Bobs (blitter objects), um sie von den Sprites der Denise zu unterscheiden. Der Blitter zieht auch Linien (nach dem Bresenham-Algorithmus) und füllt Flächen zwischen Linien, was zusammen gefüllte Polygone ergibt: die Grundlage der 3D-Vektoren in den Demos. Selbst das Lesen der Disketten nutzt ihn, um die MFM-Daten jeder Spur zu dekodieren.

Im ursprünglichen Chipsatz deckt jede Operation höchstens 1024 × 1024 Pixel ab. Weil der Blitter Fenster und Grafiken kopiert, bleibt der Prozessor frei für andere Aufgaben, und deshalb konnte ein 68000 mit 7 MHz Fenster und Spiele so flüssig bewegen wie kaum ein anderer Rechner jener Zeit.

Von Agnus zu Alice: die Revisionen

Die erste Agnus aus dem A1000 und dem ersten A2000 kam im DIP-Gehäuse mit 48 Pins: die 8361 für NTSC und die 8367 für PAL. Sie adressiert 512 KB Chip RAM. 1987 kam mit dem A500 und dem B2000 die Fat Agnus (8370 NTSC, 8371 PAL) in einem quadratischen PLCC mit 84 Pins. Sie bleibt auf 512 KB Chip RAM beschränkt, verwaltet aber weitere 512 KB Slow RAM, den Speicher im Trapdoor des A500.

Das ECS brachte die 8372A, die 1 MB Chip RAM adressiert und in PAL oder NTSC arbeitet. Sie erschien in den letzten Revisionen des A500 und des B2000 (ab Revision 6) und im CDTV. Die 8372AB und 8372B des A3000 und mehrere Versionen der 8375 (A500 Plus und A600) kommen auf 2 MB. Die ECS-Agnus schafft auch Blits bis 32.768 × 32.768 Pixel und hat programmierbare Strahlzähler, die Videomodi wie Productivity erlauben, 640 × 480 ohne Zeilensprung.

Beim AGA heißt die Nachfolgerin Alice (8374), und sie steckt im A1200, im A4000 und im CD32. Sie adressiert 2 MB Chip RAM und holt Bild- und Spritedaten in 32-Bit-Wörtern und im Fast-Page-Modus, was die Bandbreite vervierfacht. Kurioserweise arbeiten Blitter und Copper der Alice weiterhin mit 16 Bit, genau wie 1985.

Warum die Agnus wichtig war

Ohne Copper und Blitter gäbe es die Amiga-Demoszene nicht: Farbbalken, geteilte Bildschirme, weiches Scrolling und gefüllte Vektoren kommen alle von hier. In Spielen brachten die Bobs des Blitters und die vom Copper mitten im Bild getauschten Paletten mehr Farbe und mehr Objekte, als die Hardware zu erlauben schien.

Beim Video machten Genlock und das fernsehnahe Timing den Amiga zu einem billigen Generator für Untertitel und Effekte. Der Video Toaster von NewTek, der 1993 einen technischen Emmy gewann, erzeugte einen großen Teil seiner Effekte mit Hilfe des Amiga-Chipsatzes, synchronisiert mit dem NTSC-Signal.

Wusstest du…

  1. Angeblich kommt Agnus von „Address GeNerator UnitS“, den Einheiten, die die Speicheradressen erzeugen.

  2. Angeblich trugen die Chips Frauennamen, damit die Ingenieure in der Öffentlichkeit über sie reden konnten, ohne Verdacht zu erregen: Wer von Agnus oder Portia hörte, hätte sie für Menschen gehalten.

  3. Der Name Fat Agnus (dicke Agnus) kommt vom Gehäuse: Das PLCC mit 84 Pins ist viel breiter als das ursprüngliche DIP. Die Version mit 1 MB nennen manche Fatter Agnus.

  4. Eine Copperliste endet traditionell mit dem Befehl $FFFF,$FFFE: einem WAIT auf eine Bildschirmposition, die nie kommt.

  5. Ein Bit gibt dem Blitter vollen Vorrang vor dem Prozessor und lässt den 68000 wartend stehen. Programmierer nannten es blitter nasty.

  6. Die Platine des A4000 hat einen Jumper, der für 8 MB Chip RAM beschriftet ist. Er bewirkt nichts: Die Alice adressiert nur 2 MB, egal in welcher Stellung.

  7. Mitchy, die Hündin von Jay Miner, begleitete ihn überallhin. Man erzählt, sie habe schon zu Atari-Zeiten einen Mitarbeiterausweis mit der Nummer 000 gehabt.

  8. Vor dem ECS entwarf Commodore einen ehrgeizigeren Chipsatz, den Ranger. Er wurde 1989 gestrichen, weil er zu teuer war, und das ECS trat an seine Stelle.

RUN "DEMO"

Der Copper in Aktion

Der Copper ist ein kleiner Koprozessor in Agnus, der dem Elektronenstrahl folgt und mitten im Bild Register ändert. Die Hintergrundfarbe in jeder Zeile zu wechseln, ohne den Prozessor zu belasten, ergibt diese Farbbalken: das Markenzeichen der Amiga-Demos.

MOVE #$0F00,COLOR00

Wo er steckt