Zu Beginn dieses Maschinensprache-Lehrganges möchte ich Euch die wichtigsten Bauteile (IC's) des ATARI XL/XE und deren Funktion vorstellen. Danach erfolgt eine Aufgliederung des Speicherbereiches, in der nächsten Ausgabe dann die Zusammenfassung aller Maschinenbefehle.
Viele der für Euch vielleicht unverständlichen Begriffe findet Ihr in dem Anhang "Begriffserläuterungen" genauer erklärt. Alle Adressangaben sind in Hexadezimal mit vorangestelltem "$" gemacht. Dezimale Angaben sind mit einem "#" versehen.
Die Geschwindigkeit, mit der der Prozessor arbeitet, wird durch einen Quarz bestimmt. Dieser Quarz ist das Herz des Computers, nur dass dieses Herz nicht schlägt, sondern elektrische Schwingungen erzeugt. Die Anzahl der Schwingungen pro Sekunde stellt die sogenannte Taktfrequenz dar. Eine Schwingung oder Periode bezeichnen wir als Taktzyklus. Die Zeit, die der Prozessor für die Ausführung eines Befehles benötigt, ist durch eine bestimmte Anzahl von Taktzyklen festgelegt. Der kürzeste Befehl braucht 2 Taktzyklen, der längste braucht 7 Taktzyklen.
Die Taktfrequenz bestimmt auch die Arbeitsgeschwindigkeit aller anderen Bausteine des Computers. Sie beträgt ca. 1,78 Megahertz also ca. 1780000 Hz. (Abkürzung für Hertz = Schwingungen pro Sekunde).
Das ANTIC-Programm wird als Display-List bezeichnet.
Für eine genauere Beschreibung der einzelnen IC's verweise ich vorläufig auf spätere Ausgaben des Magazins. Diverse Kurzbeschreibungen werden aber auch innerhalb dieses Maschinensprache-Lehrganges an geeigneten Stellen zu finden sein.
Nun kommen wir zu den Registern der CPU und deren Funktion. Diese haben die Aufgabe, Werte bzw. Zahlen zu speichern oder von einer Quelle zu einem Ziel zu transportieren.
Der Akkumulator (Accu) ist das wichtigste Register des Prozessors. Nur mit ihm kann man Rechenoperationen ausführen.
Die sogenannten Indexregister "X" und "Y" werden zur besonderen Adressierung von Speicherstellen verwendet.
Das Statusregister "S" dient der Überwachung und Steuerung von Rechenoperationen und Programmabläufen.
Damit der Prozessor weiß, welchen Befehl er abarbeiten soll, benötigt er den Programmzähler "PC". Dieser beinhaltet die Adresse des gerade zu bearbeitenden Befehles.
Zuletzt noch der Stackpointer, der auf einen festen Speicherbereich zeigt, den sogenannten "Stack", der bei jedem 6502-System auf Page 1 liegt, also in dem Adressbereich zwischen $100-$1FF (in Hexadezimal). Das Register des Stackpointers ist 16 Bit groß, wobei die obersten 8 Bit immer mit $01 belegt sind. Auf dem Stack legt der Prozessor Werte bzw. Rücksprungadressen ab. Der Stackpointer zeigt auf die nächste "leere" Speicherstelle auf dem Stack. Hierzu in den nächsten Ausgaben des Magazins noch mehr.
Auf das Statusregister und den Programmzähler hat man keinen direkten Zugriff.
Die folgende Grafik zeigt eine Übersicht über den gesamten Speicherbereich des ATARI 800XL :
Die älteren Modelle ATARI 400 und ATARI 800 besitzen im Adressbereich $C000 bis $FFFF allerdings kein RAM (Der ATARI 400 auch im Speicherbereich $4000 bis $BFFF nicht). Daher kann bei diesen Modellen das ROM nicht weggeschaltet werden. Bei allen XL- und XE-Geräten befindet sich im Adressbereich von $D000 bis $D7FF, verdeckt durch die Register der Bausteine GTIA, POKEY, PIA und ANTIC, das Selbsttest-ROM, welches bei Bedarf mittels einer Portleitung (PB7) des PIA über den RAM-Bereich $5000 bis $57FF eingeblendet wird.
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12, 13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F, 20,21 ...................... 98,99,9A, 9B,9C,9D,9E,9F,A0,A1,A2 usw.
Hexadezimale Zahlen stellen wir mit einem vorangestelltem "$" dar, dezimale Zahlen mit einem vorangestellten "#". Wird weder "#" noch "$" angegeben, so handelt es sich zumeist um dezimale Zahlen. Wer mit dieser Kurzbeschreibung noch nicht allzu viel anfangen konnte, den verweise ich auf den Artikel "Zahlensysteme im Computer" der in der April Ausgabe des CSM erschienen ist.
Bis zur nächsten Ausgabe Euer R. Wilde.
CSM / 6.1988