Belegung der Bits von PIA Port B bei Atari 800 XL und höher mit RAM-Erweiterungen Achtung!!! Alle Angaben ohne Gewähr. Bit 800 XL 130 XE 800 XL 800 XL (64K) (128K) (320K) (320K) Version: Version: ATARI-Magazin Compy-Shop (Kürzel: AM) (Kürzel: CS) --------------------------------------------------------------------------- PB0 OS-ROM ein/aus PB1 BASIC-ROM ein/aus --------------------------------------------------------------------------- PB2 n.b. Auswahl 1 RAM-Bank Auswahl 1 RAM-Bank Auswahl 1 RAM-Bank PB3 n.b. aus 4*16 K aus 4*16 K aus 4*16K --------------------------------------------------------------------------- PB4 n.b. 0 = CPU-Zugriff | Zusatz-RAM ein | 0 = CPU-Zugriff auf Erweiterung | (CPU & ANTIC) | auf Erweiterung 1 = CPU-Zugriff | | 1 = CPU-Zugriff auf Hauptspeicher | | auf Hauptspeicher --------------------------------------------------------------------------- PB5 n.b. 0 = ANTIC-Zugriff | Auswahl 1 RAM-Bank | 0 = ANTIC-Zugriff auf Erweiterung | aus 4*64 K | auf Erweiterung 1 = ANTIC-Zugriff | | 1 = ANTIC-Zugriff auf Hauptspeicher | | auf Hauptspeicher ---------------------------------- --------------------- PB6 n.b. n.b. | | Auswahl 1 RAM-Bank ------------------------------------------------------| aus 4*64 K PB7 Selbsttest spiegeln nach $5000 | --------------------------------------------------------------------------- n.b. = nicht benutzt Achtung: Die Angaben für die Compy-Shop-Version sind ohne Garantie, da ich selbst keine Original-CS-Version besitze noch den Schaltplan zur Verfügung habe. Erklärungen: ------------ Auswahl der Speicherbank: Beim 130 XE (64 K Zusatzspeicher) wird aus 4 Speicherbänken zu je 16 K eine Speicherbank ausgewählt. Dafür sind 2 Bit notwendig (PB2/3 = 00/01/10/11). Bei Ataris mit 256 K Speichererweiterung (gesamt: 320 K) wird aus 16 Bänken zu je 16 K eine Speicherbank ausgewählt. Dafür sind 4 Bit notwendig (PB2/3/5/6 bzw. PB2/3/6/7). Um mit dem 130 XE kompatibel zu bleiben und den Hardware-Aufwand für die Erweiterungen so gering wie möglich zu halten, erfolgt hardwaremäßig die Auswahl einer Speicherbank etwas anders: Zunächst wird aus 4 Speicherbänken zu je 64 K eine Speicherbank ausgewählt (PB5/6 bzw. PB6/7). Danach wird aus diesen 64 K eine Speicherbank von 16 K ausgewählt (PB2/3 wie beim 130 XE). Für den Programmierer spielt es aber keine Rolle, ob die Auswahl 2-stufig (erst 1 aus 4*64 K, dann 1 aus 4*16 K) oder einstufig (1 aus 16*16 K) ist. Entscheidend ist, daß mit 4 Bit aus 16 möglichen Speicherbänken eine Speicherbank von 16 K ausgewählt wird. Unterschiede der Erweiterungen: Wie der Tabelle zu entnehmen ist, sind nur beim Original 130 XE und der CS-Version ein getrennter Zugriff von CPU und ANTIC auf zusätzliches RAM und Hauptspeicher möglich. Bei der AM-Version ist nur ein gemeinsamer Zugriff entweder auf den Hauptspeicher oder auf das Zusatz-RAM möglich. Um bei der CS-Version die Funktionalität von PB4/5 des 130 XE zu erhalten, mußte für das 4. Speicherbank-Auswahl-Bit ein anderes Bit doppelt benutzt werden. Hier hat man sich für das Selbsttest-Bit entschieden, da dieser ohnehin nur beim Einschalten/Reset benötigt wird. Bei der AM-Version ist ein gleichzeitiges Benutzen von RAM-Erweiterung und Selbsttest möglich (wer braucht das?), dafür fehlt der getrennte CPU/ANTIC- Zugriff. Was bringt der getrennte Zugriff von ANTIC und CPU? (Für die Freaks: Diese Erklärung ist absolut vereinfacht.) Bis auf wenige Spezialbauten kann bei "normalen" Computern technisch immer nur eine Einheit auf eine Speicherzelle zugreifen (auch bei heutigen PCs). Dies liegt daran, das es je nur einen Adreßbus/Datenbus gibt, mit dem eine Speicherzelle ausgewählt und gelesen/geschrieben werden kann. Müssen nun mehrere Einheiten auf Speicher zugreifen, so müssen diese sich den Bus teilen und entsprechend warten, wenn dieser gerade belegt ist. Jetzt zu den Ataris: Der ANTIC, der für die Bildschirmausgabe zuständig ist, greift regelmäßig auf den Speicher zu, um die Display List abzuarbeiten und den Bildschirmspeicherinhalt auszulesen. Bei "normalen" Ataris mit 64 K ist es möglich, den ANTIC komplett auszuschalten. Dann arbeitet die CPU ca. 30% schneller, da sie ja nicht mehr mit dem ANTIC teilen muß. Allerdings ist dann keine Bildschirmausgabe mehr möglich. Eines der wenigen Programme, die den ANTIC abschalten, ist der Software- Synthesizer SoftSynth, bei dem die CPU jede Menge mit der Berechnung der Samples zu tun hat. Beim 130 XE und der CS-Erweiterung ist ein getrennter Zugriff möglich, d.h. die CPU könnte auf den Zusatzspeicher der ausgewählten RAM-Bank zugreifen, während gleichzeitig der ANTIC seine Grafikdaten aus dem Hauptspeicher holt. Bei der AM-Version können CPU und ANTIC nur gemeinsam entweder auf den Hauptspeicher oder auf den Erweiterungsspeicher zugreifen. Wer braucht den getrennten Zugriff wirklich? Gute Frage - mir ist kein Programm bekannt, das dies wirklich nutzt. (Zumindest kein Programm, das man unbedingt haben muß). Letztendlich erreicht man durch den getrennten Zugriff, das zusätzlich zum kompletten Hauptspeicher noch auf eine RAM-Bank zugegriffen werden kann. Bei der AM-Version kann bei Einblendung einer Speicherbank auf den jetzt darunterliegenden, ausgeblendeten Hauptspeicher (der ja an der gleichen Adresse liegt) nicht mehr zugegriffen werden. Bei der 130 XE/CS-Version hat man also im Vergleich zu der AM-Version nicht insgesamt mehr Speicher zur Verfügung, kann aber bei einer Speicherbankeinblendung weiterhin auf den darunterliegenden Hauptspeicherbereich (an der gleichen Adresse) zugreifen. Man hat zu jedem Zeitpunkt also mehr Speicher im Zugriff (in der Größe einer eingeblendeten RAM-Bank). Welche Version ist die Bessere? Hmmm, gut Frage. Die CS-Version ist "kompatibler", da sie die wenigsten Einschränkungen hat (nur der Selbsttest). Dafür ist die AM-Version verbreiteter und meines Erachtens auch von Programmen besser unterstützt. Programme erkennen nur die halbe Größe einer RAM-Erweiterung: Dann ist das Programm für eine andere RAM-Disk-Version geschrieben. Dies passiert z.B. häufig bei CS-Programmen auf Rechnern mit AM-Version. Da diese RAM-Disk-Versionen sich in einem Port-Bit unterscheiden, wird nur die Hälfte erkannt. Abhilfe: 1. Programm ändern, viel Spaß 2. Ram-Disk umlöten, s.u. šbrigens: Das RAM-Disk-Testprogramm vom Compy-Shop (Bibo-DOS) erkennt bei der AM-Version nur die halbe RAM-Disk (warum wohl 8-)...). Der getrennte Zugriff auf den Speicher kann natürlich auch nur bei einer CS-Version funktionieren. Deshalb stürzt das Testprogramm bei anderen Versionen auch ab. Dies ist also kein Hinweis auf eine defekte RAM-Disk, wenn es sich um eine andere Version handelt. Mit anderen Worten: Das CS-Testprogramm kann man nur mit einer CS-kompatiblen RAM-Disk nutzen. Umbauten, Tips, Ergänzungen: Wenn man PB4 an einem Schalter aus dem Gehäuse führt, kann man die RAM-Disk bequem ein-/ausschalten. Wer noch einen zusätzlichen Schalter für PB5/6 bzw. PB6/7 einbaut, kann zwischen beiden RAM-Disk-Versionen umschalten. Voraussetzung ist allerdings, daß die Software keinen getrennten Zugriff von CPU und ANTIC benutzt - den kann man natürlich nicht ein-/ausschalten. Umbau der Version: Ich hatte mir zunächst eine 256 K-Erweiterung mit AM-Bitbelegung gebaut. Diese kann man leicht in die CS-Bitbelegung umbauen, indem man an der PIA statt PB5/6 die beiden Anschlüsse PB6/7 verwendet. Voraussetzung ist auch hier, daß die Software keinen getrennten Zugriff von CPU und ANTIC benötigt. mögliche Erweiterungen: Wer volle Kompatibilität (130 XE-Version und Selbsttest) wünscht, kann nur 3 Bit benutzen (PB2/3/6). Damit kommt man auf 128 K RAM-Disk-Größe (8*16 K). Wer die AM-Version verwendet und zusätzlich noch das Bit für den Selbsttest benutzt (wie bei der CS-Version), kann noch einmal verdoppeln: 5 Bit (PB2/3/5/6/7) = 32*16 K = 512 K RAM-Erweiterung. Zusätzlich gibt es RAM-Disk-Versionen, die statt 16 K gleich 32 K Zusatzspeicher einblenden. Auch auf diese Weise kann man den Zusatzspeicher verdoppeln. Meines Erachtens gibt es aber keine Software, die diese Version unterstützen. Zusammen mit der 5-Bit-Version wären das dann 32*32 K = 1 MByte Erweiterung... Durch Anschluß einer zusätzlichen 6520-PIA am Erweiterungsport hätte man noch einmal 16 Bit zur Verfügung...aber das ist nun wirklich Träumerei... Ich hoffe, dieser Text hat etwas Licht in das RAM-Disk-Dunkel gebracht. Falls noch Fragen offen sind, Mail: henrik@bytecruncher.de Bitte keine Fragen zu Schaltplankopien o.ä., diese gibts auf einschlägigen Internet-Seiten; beim Abbuc (www.abbuc.de) - oder bei Obi (www.obi.de)... Auch kann ich keine Tips zum Aufbau geben, da ich "Softie" bin und von Hardware nur so viel verstehe, um sie vernünftig ansprechen zu können...8-)))