DIP-48 · 5719 · Zeichnung, kein Foto
Amiga-ChipsCommodore (MOS / CSG)
1987
Gary
Der Kitt des Amiga 500: Er entscheidet, wem jede Adresse gehört, und antwortet dem Prozessor für alle.
Gary ist der Glue-Logic-Chip von A500, A2000 und CDTV. Er liest die Adressen, die der 68000 auf den Bus legt, wählt Speicher, ROM, CIAs oder Custom-Chips aus und gibt dem Prozessor die Antwort, die er braucht, um jeden Zyklus abzuschließen, auch wenn an der Adresse nichts ist. Er ersetzte eine Handvoll loser Chips des Amiga 1000.
Wofür der A1000 zwanzig Chips brauchte
Gary steht für Gate Array: eine nach Maß belichtete Matrix aus Logikgattern. Im Amiga 1000 war die Logik, die den 68000 mit den Custom-Chips verbindet, über Dutzende Bausteine der 74er-Reihe und PALs verstreut. Für A500 und A2000 fasste Commodore sie in einem einzigen 48-poligen Chip zusammen, und die Spezifikation beschreibt ihn bescheiden: „verschiedene Steuerschaltungen, die Schnittstelle und Steuerung für Systeme mit dem Amiga-Chipsatz und einem 68000 bereitstellen“.
Der Chip hat zwei Nummern. Der 5718 kam in den A2000, der 5719 in A500 und A500+, beide unter der Teilenummer 318072-01. Die allerersten A2000 der Revision 4 trugen ein von Toshiba gefertigtes Gate Array mit Fehlern: Commodores Service-Bulletins rieten, es durch die MOS-Version zu ersetzen, die zur üblichen wurde.
In den 32-Bit-Maschinen A3000 und A4000 ging die Aufgabe an den Fat Gary über, ein PLCC, das dieselbe Arbeit für einen 68030 oder 68040 erledigt. Und in A600 und A1200 wurde Gary durch Gayle ersetzt, der ihm IDE und PCMCIA hinzufügt.
Wer unter welcher Adresse wohnt
Garys Hauptaufgabe ist es, die sieben höchsten Adressbits des 68000, A17 bis A23, anzusehen und zu entscheiden, wer antwortet. Die ersten 2 MB sind das Chip-RAM; von $200000 bis $9FFFFF liegt der Raum für Zorro-II-Karten; bei $BFxxxx sitzen die beiden CIAs; bei $C00000 der Erweiterungsspeicher der Bodenklappe, den es nur gibt, wenn die A501-Karte seinen Pin EXP auf null zieht; weiter oben die Echtzeituhr und die Register der Custom-Chips; und ganz oben das Kickstart-ROM. Die Karte weiter unten zeigt es.
Es gibt eine Ausnahme, die nur beim Start lebt: Solange OVL High ist, antwortet Gary an den untersten Adressen mit dem ROM, damit der 68000 dort seinen Reset-Vektor findet. CIA-A zieht OVL herunter, und von da an ist Adresse null wieder RAM.
Für jede Adresse erzeugt Gary die passenden Auswahlsignale: ROMEN für das ROM, RAMEN für den Videospeicher, RGAE für die Register der Custom-Chips, VPA, das dem 68000 sagt, dass er mit einer Peripherie vom Typ 6800 spricht (den CIAs), und die Lese- und Schreibfreigaben der Uhr.
- $000000Chip-RAM
- $200000Zorro-II-Erweiterung
- $A00000CIAs ($BFD000, $BFE001)
- $C00000Erweiterungsspeicher ($C00000)
- $C80000Im Chip ohne Verwendung
- $D80000Echtzeituhr
- $DC0000Im Chip ohne Verwendung
- $DF0000Chip-Register ($DFF000)
- $E00000Kickstart-ROM
- $E80000Im Chip ohne Verwendung
- $F80000Kickstart-ROM
Streifen: ROM an den untersten Adressen beim Start (OVL). 24-Bit-Adressen; in der Leiste sind die kleinen Blöcke verbreitert, damit man sie sieht. Quelle: Commodore, A500/A2000 Gary Specification.
Die Antwort, auf die der 68000 wartet
Der 68000 beendet einen Speicherzyklus nicht allein: Er wartet, dass jemand DTACK herunterzieht, das Zeichen, dass die Daten bereit sind. Kommt DTACK nie, bleibt der Prozessor für immer stehen. Gary erzeugt es für jedes Gerät auf der Platine und auch für den Erweiterungsraum, selbst wenn dort nichts ist: So liefert ein Zugriff auf eine leere Adresse Datenmüll, statt die Maschine aufzuhängen.
Zwei Eingänge lassen die Außenwelt das ändern. XRDY, von einer Erweiterungskarte gezogen, verzögert DTACK und fügt Wartezyklen für langsame Geräte ein. OVR schaltet die interne Dekodierung und DTACK ganz ab, damit eine Karte den Platz eines Geräts der Hauptplatine einnehmen kann, etwa eines externen ROMs, und selbst antwortet. Die Spezifikation warnt, dass der Trick nicht taugt, um das Chip-RAM oder die Chip-Register zu ersetzen: Die Zeiten sind nicht verlässlich.
Gary mischt sich auch ein, wenn die Custom-Chips DMA machen. Versucht der Prozessor, auf den Videobus zu gehen, während Agnus ihn benutzt, hält Gary DTACK zurück, und der 68000 wartet, bis er dran ist. Und wenn der Prozessor im Bereich $C00000 unterwegs ist, aktiviert er das Signal, das den Blitter bremst.
Amiga 500 · 1987Und dazu Diskette, Reset und Puffer
Jenseits der Adressen hat Gary eine Reihe kleiner Aufgaben, die nirgendwo sonst Platz fanden. Er steuert die Puffer zwischen Prozessorbus und Videobus, die Signale CDR, CDW und C4, die die Latches im richtigen Moment der Takte C1 und C3 öffnen. Er empfängt den Reset der Tastatur, und er ist es, der die Reset- und Halt-Leitungen des 68000 zieht.
Und er erledigt ein Stück des Diskettenlaufwerks: Er speichert den Zustand des Motors, wenn das Laufwerk angewählt wird, und puffert die Schreib- und Motorsignale, die zum Anschluss gehen. Deshalb kann bei einem Laufwerk, dessen Motor nicht anläuft, Gary schuld sein und nicht nur CIA-B.
Der Chip arbeitet mit den Takten des Agnus: C1 und C3 mit 3,58 MHz, um 90 Grad versetzt, und CDAC mit 7,14 MHz. Er hat weder eigenen Takt noch Register: Er ist reine Logik, wird also nicht programmiert, nur verdrahtet.
Wusstest du…
Ohne Gary bliebe ein 68000, der auf eine leere Adresse zugreift, für immer hängen und wartete auf DTACK. Gary sorgt dafür, dass jede Adresse antwortet, auch eine ohne etwas dahinter.
Die ersten A2000 trugen einen fehlerhaften Gary von Toshiba. Commodore ließ ihn durch den von MOS ersetzen, und die Spezifikation selbst räumt einen Fall ein, in dem keiner der beiden die Zeiten einhält.
Über den Pin EXP erfährt Gary, dass Speicher in der Bodenklappe steckt: Die A501-Karte legt ihn auf Masse, und erst dann antwortet Gary an der Adresse $C00000.
Er zieht höchstens 25 mA. Für einen 48-poligen Chip, der an jedem Buszyklus beteiligt ist, ist das fast nichts.
Fat Gary ist kein größerer Gary: Er ist ein PLCC für A3000 und A4000, mit einem 32-Bit-Bus zum Dekodieren und zwei Teilenummern (4393 und 4791) für dieselbe Arbeit.
Störungen, an denen er beteiligt ist
Diagnoseanleitungen des Platinen-Explorers, die Signale dieses Chips messen, Platine für Platine.
Schwarzer Bildschirm, startet nicht
Die Betriebsleuchte geht an, aber der Bildschirm bleibt schwarz, ohne jede Farbe. Der Reihe nach messen: Jeder Schritt lohnt sich nur, wenn der vorige in Ordnung ist.
Amiga 500 rev 8A →Amiga 4000 rev 2 →Amiga 4000 rev B →Amiga 4000T rev 4 →
Diskette wird nicht gelesen
Das interne Laufwerk dreht nicht, bewegt den Kopf nicht oder dreht, liest aber nicht. CIA-B gibt dem Laufwerk die Befehle, Paula empfängt die Daten.
Amiga 500 rev 8A →Amiga 4000 rev 2 →Amiga 4000 rev B →Amiga 4000T rev 4 →
Wo er steckt
Quellen
- [1]A500/A2000 Gary Specification · Commodore · arquivo de Dave Haynie (espelho devili.iki.fi)
- [2]Gary 5718/5719 e Fat Gary (números de peça, máquinas, nota sobre a Toshiba) · Big Book of Amiga Hardware
- [3]A500 Service Manual (PN-314981-04) · Commodore, 1990
- [4]Amiga custom chips · Wikipédia




