Das Prinzip eines Microcomputers

Hauptkategorie: 8-Bitter
Erstellt: 27 November 2011
Zugriffe: 1943

"Computer können uns nicht einen einzigen Hintergedanken abnehmen" sagte einmal eine bedeutende amerikanische Firma in ihrer Werbung - und hat damit völlig Recht. Aber was können sie dann?

Die meisten Besitzer von Mikrocoputern wenden ihre Geräte auf die unterschiedlichsten Arten und Weisen an. Der größte Teil spielt ganz einfach damit oder, genauer, mit der darauf laufenden Software. Ein weiterer Teil benutzt den ATARI zum Programmieren oder zur Text- und Datenverarbeitung und ein, wenn auch nur kleiner, Teil benutzt ihn zur Realisierung von Steuerungsaufgaben.

Computer können lediglich das, was man ihnen beigebracht hat. Jede Regel für eine Entscheidung, bzw. jede Regel nach der andere Regeln aufgestellt werden sollen, den gesamten Arbeitsablauf, sowie das gesamte Wissen, das zur Lösung notwendig ist, muß man dem Computer in einer für ihn verständlichen Sprache mitteilen. Wenn man sich überlegt, was dies bedeutet, so kommt man zu dem Schluß, daß Computer an sich "ziemlich doof" sind.

Wissenschaftler, die sich mit der INTELLIGENZ verschiedener Lebewesen und auch des Mikrocomputers befaßt haben, kamen zu dem Schluß, daß die Intelligenz eines Mikrocomputers nur knapp über der eines Regenwurms angeordnet ist. Die hohe Leistungsfähigkeit der Mikrocomputer stammt allein von ihrer hohen Verarbeitungsgeschwindigkeit. Es kursieren über Computer allgemein verschiedene Sprüche, die den Sachverhalt auf humorvolle Weise wiedergeben. Ein bekannter Satz lautet zum Beispiel: "Computer sind doof, dafür aber wenigstens fleißig". Oft redet man auch davon, daß der "Computer ein Produkt menschlicher Faulheit ist".

Mikroprozessor. Personal Computer. Hobbycomputer. Mikrocomputer. Arbeitsspeicher. ROM. Peripherie. Minirechner. Einplatinencomputer. Entwicklungssystem. OEM - Computer - alles das sind Ausdrücke, mit denen man in der heutigen Zeit im Zusammenhang mit Computern zu tun hat - mit denen man zum

Beispiel beim Kauf eines Systems "vollgepumpt" wird von Verkäufern, die manchmal (oder meist ?) selber nicht wissen, was sie erzählen. Um mehr von Computern zu verstehen, muß man zuerst die Struktur, das Grundprinzip von Computern, kennen.

Ein Computer besteht aus Speicher, Zentraleinheit und Ein/Ausgabe - Systemen, und kennt nur zwei Zustände. Das war schon immer so, und wird es bleiben - könnte man meinen! Aber nein, was die meisten nicht wissen: Es exisieren zwei Arten von Rechnern, der ANALOG- und der DIGITAL-Rechner. Der Analogrechner sei hier aber nur der Vollständigkeit halber erwähnt.

Uns wird hier nur der Digitalrechner beschäftigen. Die Sache mit den zwei Zuständen stimmt allerdings: Er ist entweder defekt oder in Ordnung. Ansonsten weiß zwar der Zuhörer, was mit den zwei Zuständen gemeint ist, aber richtig ist diese Aussage dennoch nicht. Ein "Von Neumann - Rechner", wie wir ihn in Form des ATARI zu Hause zu stehen haben, kennt zwar effektiv nur endlich viele Zustände, aber es sind doch immerhin noch eine ganze Menge! Doch dazu kommen wir später. Erst einmal wollen wir die Sache mit den zwei Zuständen endgültig klarstellen:

Das Zahlensystem, mit dem Digitalrechner arbeiten, kennt nur zwei Zustände.

Was heißt das? Unser Zahlensystem, nach dem wir dem Bäcker die Brötchen bezahlen, kennt zehn Zustände. Sie werden durch die zehn Ziffernsymbole 0,1,2,3,4,5,6,7,8,9 gekennzeichnet. Daraus lassen sich dann Kombinationen dieser Ziffern erstellen, die Zahlen genannt werden. Als Beispiel die Zahl 1234, eintausendzweihundertvierunddreißig (eigentlich ..dreißigundvier, aber das sind Eigenheiten der deutschen Sprache, genauso wie elf, zwölf usw.). Unter dieser Zahl kann man sich ab der 2. Schulklasse etwas vorstellen, man kann sogar damit arbeiten (rechnen):

"1234 und 17 macht ( 4 und 7 macht 1, 1 im Sinn, 3 und 1 und 1 im Sinn macht 5, und 2 und 1 bleiben) 1251."

So rechnet man. Später, nach einiger Übung, geht das schneller, das Prinzip bleibt aber. Nur: WARUM rechnet man so? Oder anders gefragt: Rechnet man immer so? Die Antwort auf diese Frage lautet: Nein.

Zum Beispiel: Wieviele Stunden liegen zwischen 18:00 und 03:00 Uhr?

Normalerweise würde man 3,00 - 18,00 rechnen und somit -15:00 herausbekommen. Es sind aber 9:00 Stunden - WARUM ?

Wer mitgelesen hat, hat das Problem erkannt: Die Zeit läuft nicht nach dem Dezimalsystem mit 10 Ziffern, sondern nach dem Duodezimalsystem mit (eigentlich) 12 Ziffern. Denn eigentlich müßte man folgende Rechnung aufstellen:
Der Tag endet bei 24:00. 24:00 + 3:00 = 27:00 , 27:00 - 18:00 = 09:00.

Wir sehen also, die Sache mit den Zahlensystemen ist reichlich konfus; speziell bei der Zeit, weil diese auf Grund der zehn benutzten Ziffern bei einem 12er-System die Vollendung des Zahlenchaos bedeutet. Aber wir wollen nicht vergessen, daß die Engländer lange im 12er-System gerechnet haben, und gestorben sind sie daran nicht.

Weshalb sollte nun ein Computer mehr als zwei Ziffern kennen?

Sollten wir Mathematiker unter uns haben, so sei gesagt, daß sich genau berechnen läßt, mit welcher Anzahl von Ziffern die Effektivität des Zahlensystems am höchsten ist. Schlaue Leute haben sich die Mühe des Nachrechnens gemacht und kamen auf das Ergebnis, daß bei Verwendung von ca. 2,7 Ziffern die Effektivität am höchsten sei. Bloß- was soll die 0,7. Ziffer

darstellen? Normalerweise würde man den (mathematisch richtigen) Unsinn auf 3,0 erhöhen; man hätte dann die Ziffern 0,1 und 2 zur Verfügung, was sich heute technisch in Computern realisieren ließe (und auch teilweise in komplexen Zählersystemen angewandt wird), aber man darf nicht vergessen, daß es den Computer schon eine Weile gibt; damals war noch nicht einmal an den Transistor oder den konsequenten Einsatz von Röhren zu denken (mechanische Rechenwerke seien hier nicht betrachtet!).

Im Jahre 1939 bauten die Bell- Ingenieure ihren ersten Relais-Computer Model I.

Relais - wer kennt das nicht, das Gebilde aus einer Spule und einem Anker mit Schaltkontakten? Fließt Strom durch die Spule, bewegt sich der Anker und öffnet bzw. schließt die Kontakte. H A L T !!! Da war es schon:"... öffnet oder schließt die Kontakte" - das sind genau zwei klar definierte Zustände, die sich abfragen und generieren lassen! Also, wenn drei Zustände (das Optimum) schlecht zu erreichen sind, dann nehmen wir halt zwei. Dieser Gedanke hat uns prinzipiell den ATARI beschert!

Die zwei Zustände können auf verschiedene Arten auftreten: Zum Beispiel Relais angezogen und Relais abgefallen, Licht an und Licht aus, Taste gedrückt und Taste nicht gedrückt, Zusatzgerät vorhanden und Zusatzgerät nicht vorhanden, Spannung auf "HIGH-Pegel" und Spannung auf "LOW-Pegel", es fließt Strom, und es fließt kein Strom. Diese Gegenüberstellung läßt sich fast beliebig fortsetzen.

Von Bits und Bytes

Wir haben die Entstehungsgeschichte des Systems mit den zwei Ziffern kennengelernt; jetzt wollen wir damit rechnen.

Im Englischen heißt die Ziffer DIGIT. Hat man nur zwei Ziffern zur Verfügung, nennt sie der Engländer BINARY DIGIT, also binäre (zweiwertige) Ziffer, abgekürzt

B I T

Wir haben also jede Menge Bits - aber was damit anfangen? Was machen wir mit unseren zehn Ziffern? Wir 'hängen' sie nebeneinander und geben ihnen die ihnen zugehörigen Wertigkeiten:

1234     ist eine Zahl, hier sei sie aus dem Zehnersystem.
Das heißt, es sind       1  *  1000
                      +  2  *   100
                      +  3  *    10
                      +  4  *     1
Nun wollen wir es noch einmal anders formulieren:
Jetzt sind es            1  *   10
                      +  2  *   10
                      +  3  *   10
                      +  4  *   10

Das ist logisch, denn 10 ** 3 (andere Formulierung für 10 ) = 1000, 10**2 = 100, 10**1 = 10 und schließlich: 10**0 = 1 . Daß 10**0 = 1 ist, sollten wir uns besonders merken, denn es gilt allgemein:

Für JEDES "a" aus der Menge der reellen Zahlen gilt:

a ** 0 = 1

Diesen Satz benötigen wir später wieder, also: Merken!

So, und nun setzen wir einfach mehrere BInary DigiTs aneinander:

1101 0111

(der Lesbarkeit halber in zwei Vierergruppen aufgeteilt). Das ergibt dann, ebenfalls von links nach rechts aufgeschlüsselt:

               1  *  2**7 = 1 * 128 = 128
            +  1  *  2**6 = 1 *  64 =  64
            +  0  *  2**5 = 0 *  32 =   0
            +  1  *  2**4 = 1 *  16 =  16
            +  0  *  2**3 = 0 *   8 =   0
            +  1  *  2**2 = 1 *   4 =   4
            +  1  *  2**1 = 1 *   2 =   2
            +  1  *  2**0 = 1 *   1 =   1
            __________________________
                                      215

Jetzt haben wir unsere Zahlen, deren Ziffern (Bits) nur zwei Zustände kennen. Die Aufteilung der Zahlen in Gruppen zu mehreren Ziffern (hier Vierergruppen) ergibt sich auch bei unserem Dezimalsystem, denn wie schreibt der Kaufmann die Million? 1.000.000,

Hier haben wir die Aufteilung der Zahl in Dreiergruppen, hervorgerufen durch den Dezimalpunkt (im Deutschen - im Englischen sind Dezimalpunkt und - Komma in der Bedeutung genau vertauscht, also nicht durch englische Literatur irritieren lassen!). Die Aufteilung der Binärzahlen kann auch in Dreiergruppen oder sonstwie erfolgen, durchgesetzt bei den informatorischen Wissenschaften haben sich jedoch nur Dreier- und Vierergruppen.

Die Zahl 1101 0111 liest sich natürlich etwas langatmig: "einseinsnulleinsnulleinseinseins" - das wäre sehr umständlich. Was ist also zu tun? Man überläßt dem Computer die Fieselarbeit mit den Nullen und Einsen, als gebildeter Informatiker jedoch unterhält man sich 'Hex', d.h., Hexadezimal (Genaugenommen müßte man von "Sedezimal" reden, doch dieser Begriff ist nur selten anzutreffen.). Was bedeutet das?

Wir hatten unsere Zahl in zwei Vier-Bit-Gruppen eingeteilt, und wie man leicht ausprobieren kann, hat man bei vier Stellen und jeweils zwei Möglichkeiten pro Stelle insgesamt SECHZEHN Kombinationsmöglichkeiten. Diese wären

0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 .

Jetzt wollen wir diesen sechzehn Kombinationsmöglichkeiten einmal Namen geben:

 0000     soll heißen :  0  und bedeutet dezimal  0
 0001                    1                        1
 0010                    2                        2
 0011                    3                        3
 0100                    4                        4
 0101                    5                        5
 0110                    6                        6
 0111                    7                        7
 1000                    8                        8
 1001                    9                        9
 1010                    A                       10
 1011                    B                       11
 1100                    C                       12
 1101                    D                       13
 1110                    E                       14
 1111                    F                       15

Auf unsere Zahl bezogen können wir nun sagen:

1101 0111 heißt in Hexadezimalform : D 7 .

Wir haben es hier also mit der Zahl D7 zu tun. Aber wie erhält man nun aus D7 eine Dezimalzahl?

Ganz einfach, wir wandeln die Zahl D7 wieder in 1101 0111 um und berechnen nach der oben gezeigten Methode die Dezimalzahl 215. Gibt es auch noch einen anderen, vielleicht einfacheren Weg, diese, und vor allem größere Hex-Zahlen umzuwandeln? Sicherlich gibt es den, und der aufmerksame Leser kennt oder ahnt ihn zumindest schon: Wir haben es hier ganz offensichtlich mit zwei Ziffern aus dem Hexadezimalsystem zu tun, können also sagen:

      D7  =    D  *  16**1  =  13 * 16**1 = 13 * 16 =   208
             + 7  *  16**0  =   7 * 16**0 =  7 *  1 =     7
            ------------------------------------------------
                                                        215

Wir kennen nun die Umrechnungsart von binär oder hexadezimal nach dezimal; und wie verhält es sich umgekehrt? Hier gibt es mehrere Methoden. Als erstes könnte man die Dezimalzahl in eine binäre und die dann, durch einfache Aufteilung in Vierergruppen von rechts nach links, in eine Hexzahl wandeln. Da dazu jedoch eine ganze Reihe von Divisionen notwendig ist, empfiehlt sich diese Art nur dann, wenn man nur seinen Kopf zum Rechnen hat.

Wir nehmen uns wieder die dezimale 215:

215 / 2 = 107      Rest 1
107 / 2 =  53      Rest 1
 53 / 2 =  26      Rest 1
 26 / 2 =  13      Rest 0
 13 / 2 =   6      Rest 1
  6 / 2 =   3      Rest 0
  3 / 2 =   1      Rest 1
  1 / 2 =   0      Rest 1

Unsere Binärzahl besteht aus den Restziffern, von UNTEN NACH OBEN gelesen!

Aber wie gesagt, die Methode läßt sich auch am Montagmorgen im Kopf ausführen, die nun folgende geht wesentlich schneller, erfordert aber Rechenarbeit, speziell bei großen Zahlen:

            215,00 / 16 = 13,44 (Dez)  = D (Hex)
              0,44 * 16 =  7,04   "    = 7   "

Also: durch die größte Potenz von 16, die kleiner ist als die zu wandelnde Zahl teilen, und dann den jeweiligen Rest so oft mit 16 muliplizieren, wie die Potenz betrug, durch die wir zu Beginn geteilt hatten.

Aber das sollten wir besser noch einmal an einem etwas größeren Beispiel ausprobieren:

Die Zahl 60413 (Dez) wollen wir wandeln. Die nächstkleinere 16er-Potenz ist 16**3 = 4096 (denn 16**4 = 65536, also viel größer!).

0).  60413  / 4096 = 14,7493  ==: 14 (Dez)   = E (Hex)
1).  0,7493 *   16 = 11,9888  ==: 11   "     = B   "
2).  0,9888 *   16 = 15,8208  ==: 15   "     = F   "
3).  0,8208 *   16 = 13,1328  ==: 13   "     = D   "

Hier hören wir auf, denn unsere Sechzehnerpotenz betrug 3 (zur Erinnerung, wir hatten als Erstes durch 16**3 = 4096 geteilt!), und wir haben danach 3 Mal mit 16 multipliziert.

Unsere Hexadezimalzahl steht nun deutlich da: EBFD. Zur Überprüfung machen wir die Probe:

Es gilt, die Hexzahl EBFD in eine Dezimalzahl zu wandeln:

EBFD  =     E * 16**3 = 14 * 16**3 = 14 * 4096 =   57344
          + B * 16**2 = 11 * 16**2 = 11 *  256 =    2816
          + F * 16**1 = 15 * 16**1 = 15 *   16 =     240
          + D * 16**0 = 13 * 16**0 = 16 *    1 =      13
         -----------------------------------------------

Die Probe zeigt also das gleiche Ergebnis.

Wenn man das mehrfach übt, und sich einige Übungsaufgaben stellt, beherrscht man diese Umrechnungsarten recht schnell. Wer dazu allerdings keine Lust verspürt, kann sich ein geeignetes Programm schreiben...

Denn diese Umrechnungen von Dez nach Hex und umgekehrt werden uns auf dem Atari noch eine ganze Weile nachlaufen, denn das Atari-BASIC versteht nur Dezimalzahlen!!! Wer allerdings wissen will warum, der möge die Götter fragen, denn eines wissen wir inzwischen genau: Der Computer mag wählen zwischen binärer oder hexadezimaler Darstellung, Dezimal rechnet er auf gar keinen Fall!

Wir bezeichnen in unserem Buch übrigens die Hexadezimalzahlen mit einem "$". Die "d7" hieße also "$d7".

Die Bits haben wir nun kennengelernt, jetzt beschäftigen wir uns mit den

Bytes

Dieser Ausdruck, ist schnell erklärt. Wir haben vorhin 8 Bits, aufgeteilt in zwei Vierergruppen, genannt NIBBLEs (sprich: Nibbel), betrachtet. Warum denn gerade acht, warum nicht sieben oder neun? Nun, da wir uns geeinigt hatten, Vierergruppen zu verwenden, ist es schon nicht unpraktisch, diese Vierergruppen jeweils "voll" zu machen. Außerdem "holt" sich der ATARI immer 8 Bits auf einmal zum Arbeiten; warum sollten wir nun auch wieder anders "denken" als unser großer Bruder? In der Computerbranche hat sich für diese 8 gleichzeitigen (parallelen) Bits der Name BYTE eingebürgert. Er bedeutet BINARY TERZ also binäre Dreiergruppe. Diese Bezeichnung wurde von einer großen Firma in den USA geprägt. Sie erklärte ihren Programmierern nicht das Hexadezimalsondern das Oktalsystem, bei dem immer drei Bits zusammengefaßt werden.

Wir merken uns: Ursprünglich bedeutete "BYTE" im Oktalsystem die Zusammenfassung von drei Bits.

Jetzt hingegen gilt: 1 Byte besteht aus 8 Bits (Hexadezimalsystem).

Die HARDWARE eines Mikrocomputers

Im vorigen Kapitel hatten wir gesagt, woraus ein Computer besteht:

  • Speicher
  • Zentraleinheit
  • Ein-/Ausgabeleitungen

Diese drei Komponenten findet man aber nicht in nur drei Bausteinen, es befinden sich erheblich mehr ICs (Integrated Circuit, integrierter Schaltkreis) im Atari. Der schaltungstechnische Aufwand ist nur damit zu begründen, daß es noch keinen Baustein gibt, der den ganzen, im ATARI zur Verfügung stehenden Speicherplatz z.B. ausfüllt; bei der Zentraleinheit und den I/O (INPUT/OUTPUT) - Leitungen verhält es sich genauso. Man muß nämlich bedenken, daß alle im ATARI eingebauten Bausteine auch allgemein anwendbar sind, und somit zur Ein- und Ausgabe mehrere "Interfacebausteine" gehören.

Der Speicher

Wir wollen hier prinzipiell zwei Arten des Speichers unterscheiden :

1) den Schreib / Lesespeicher

und

2) den Nur - Lesepeicher. (ROM bzw. Read Only Memory)

Den Schreib / Lesespeicher nennt man auch Neudeutsch "RAM" (sprich: Ramm), was "Random Access Memory" bedeutet, oder "Speicher mit wahlfreiem Zugriff". Mit Zugriff wird hier nicht der Zugriff auf eine bestimmte Adresse gemeint; der ist für RAM wie ROM gleich. Es soll hier vielmehr eine Unterscheidung getroffen werden, ob es sich um einen Schreib- oder Lesezugriff handelt. Diese Speicherart kann man sich vorstellen als eine Kommode mit mehreren Schubladen.

Nehmen wir an, unsere Kommode hätte sechs Schubladen mit zwei Reihen zu je drei Stück. Dann können wir die sechs Schubladen auf zwei Arten bezeichnen:

1)       ---------------------------------------------------
          I               I               I               I
          I       0       I       1       I       2       I
          I               I               I               I
          -------------------------------------------------
          I               I               I               I
          I       3       I       4       I       5       I
          I               I               I               I
         ---------------------------------------------------


Damit hätten wir die Schubladen 0 ... 5, die wir nun eindeutig unterscheiden können. Es gibt auch noch eine andere Methode:

2)       ---------------------------------------------------
          I               I               I               I
       0  I       0       I      1        I       2       I
          I               I               I               I
          -------------------------------------------------
          I               I               I               I
       1  I       0       I      1        I       2       I
          I               I               I               I
         ---------------------------------------------------
*** ATARI INTERN         Das Prinzip eines Mikrocomuters ***


Hiermit erhalten wir die Namen    (0,0), (0,1), (0,2),
                                  (1,0), (1,1), (1,2) .

Auch hiermit lassen sich alle Schubladen eindeutig bezeichnen.

 

Wir wollen uns für die Zukunft diese beiden Arten der Numerierung merken: Die erste nennt man LINEARE ANORDNUNG, die zweite versehen wir mit dem Begriff MATRIXFÖRMIGE ANORDNUNG.

Hardwaremäßig gesehen, arbeiten Speicher ab einer bestimmten Größe matrixförmig; aber softwaremäßig werden die Speicherstellen linear angesprochen (verwirrender Weise auch wenn man Matritzen programmiert - aber damit kämen wir vom Thema ab).

Wir haben also in unserem Falle sechs Schubladen, die wir unterscheiden können. Nun wollen wir sie aber auch benutzen. Wir öffnen Schublade Null und sehen nach, was darin ist :

NICHTS

Warum? Wir haben ja noch nichts hineingetan. Aber ist Nichts denn wirklich NICHTS ? Die Frage ist ein bißchen philosophisch, deshalb wollen wir einmal ein wenig vom Thema abschweifen, um drei äußerst wesentliche informationstechnische Begriffe zu klären, mit deren Hilfe sich die oben gestellte Frage (für unsere Zwecke!!!) leicht lösen läßt.

Der Informatiker unterscheidet drei Merkmale einer Information:

  1. Die syntaktischen,
  2. die semantischen und
  3. die pragmatischen Aspekte einer gegebenen Information.

Was bedeuten diese Fremdworte?

Unter "SYNTAX" versteht man den prinzipiellen Aufbau einer Information.

Nehmen wir ein beliebiges Wort: zum Beispiel "MANN". Würden wir zwar MANN meinen, aber MAN schreiben, verstünde uns keiner. Also halten wir uns an die Regeln (Syntaxregeln!) der deutschen Sprache und schreiben "MANN".

Als anderes Beispiel sei hier die Verkehrsampel gewählt: Die Syntax der sog. "Wechsellichtanlage" lautet:

rot
rot + gelb
grün
gelb

Würden Rot und Grün zusammen erscheinen, wüßte niemand etwas mit dieser Information anzufangen - sie wäre SYNTAKTISCH FALSCH.

Unter SEMANTIK versteht man den Informationsgehalt, den sich der Entsender der Information gedacht hat oder, anders formuliert, das, was normalerweise bei Eintreffen der Information daraufhin passieren sollte.

Der semantische Aspekt der roten Ampel wäre: "HALT".

Die dritte Betrachtung einer Information, die PRAGMATIK bezeichnet das, was den Nutzer der Information zu deren Nutzung treibt, oder wie er eine Information für sich speziell verwendet. Sieht man z.B. eine gelbe Ampel, denkt man sich "Stoff, dann schaff' ich sie noch", oder "hat sowieso keinen Zweck mehr, Gas weg".

Mit diesen Definitionen läßt sich die an sich philosophisch nicht zu lösende Frage informationstechnisch relativ leicht beantworten. "Wir sehen in der soeben geöffneten Schublade nichts"; soweit waren wir schon.

NICHTS, WAS WIR SINNVOLL VERWERTEN KÖNNEN

Nach unseren drei Punkten aufgeschlüsselt:

  1. Die Syntax der Information stimmt; irgendetwas ist sicherlich in der Schublade, und wenn es ein Vakuum (luftleerer Raum) ist.
  2. Die Semantik ist auch klar, wir haben noch nichts hineingepackt, also können wir auch nichts herausholen.
  3. Pragmatisch betrachtet ist die Schublade für uns leer (obwohl etwas, nämlich NICHTS darin ist!), wir können also irgendetwas hineintun. Tun wir es, und nehmen wir oder ein anderer nicht wieder etwas heraus, werden wir es immer wieder nach Öffnen der Schublade finden.

Jetzt formulieren wir den eben beschriebenen Vorgang technisch :

Wir nennen die Nummern, mit denen wir die Schubladen bezeichnet haben, Adressen

In jede Schublade passen GENAU acht Bits hinein (also weder mehr noch weniger, eben: genau acht!).

Jetzt öffnen wir eine Schublade, nehmen wir als Beispiel die Nummer 3. Diesen Vorgang des Öffnens der Schubladen wollen wir in Zukunft adressieren nennen,

das Hineinsehen soll Lesen , das Hineinlegen soll Schreiben, die Schublade selber soll Speicherplatz heißen.

Das sind zwar eine ganze Menge Namen auf einmal, aber mit der Zeit werden wir lernen, richtig damit umzugehen.

Also, wir ADRESSIEREN SPEICHERPLATZ 3, und LESEN ihn aus. Was steht darin? Nichts ist die Antwort, denn wir haben ja noch nichts hineingeschrieben.

Wie wir im vorigen Kapitel erfahren haben, können nur Nullen und Einsen in dem Speicherplatz stehen, denn wir haben ja nur zwei Ziffern, und außerdem hatten wir eben gesagt, daß nichts nicht unbedingt nichts sein muß. Es könnte also sein, daß z.B. die Zahl 0110 1100 (6c Hex, $6c) darin enthalten ist - wieso auch nicht?!?

Technisch läßt sich das so erklären, daß durch interne Unebenheiten der in den Bauteilen enthaltenen Leiterbahnen beliebige Bitkombinationen nach dem Einschalten enthalten sind. Und diese Bitkombinationen können also alle 256 Möglichkeiten der Kombination von acht Nullen und Einsen sein, nämlich 0000 0000 bis 1111 1111 (es gibt zwei Möglichkeiten, entweder man glaubt uns, daß es 256 Kombinationen sind, oder man berechnet die Anzahl - letzteres wäre eine gute Übung zum vorherigen Kapitel!).

Nehmen wir also an, wir hätten einen Computer vor uns, bei dem nach dem Einschalten in Speicherplatz 3 die Hexzahl $6C steht.

Diese können wir natürlich jederzeit wieder lesen, denn sie steht ja drin. Nur, der pragmatische Teil dieser Information ist für uns als Benutzer unwesentlich größer als Null, denn es ist eine reine ZUFALLSINFORMATION !!!

Also wollen wir etwas Vernünftiges hineinschreiben. Dazu wählen wir unsere Hexzahl aus dem vorigen Kapitel, die "$d7". Wir haben unseren Speicherplatz Nummer 3 immer noch adressiert, und SCHREIBEN nun die Zahl $d7 hinein.

Was geschieht?

Die Zufallszahl $6c räumt den Speicherplatz 3 und es wird die $d7 GESPEICHERT. Wenn wir nun später wieder auf Speicherplatz Nummer 3 zugreifen, werden wir immer wieder die Zahl $d7 lesen, bis wir eine neue Zahl in die Speicherstelle schreiben oder den Rechner ausschalten.

Im ersten Fall wird selbstverständlich die $d7 von der neuen Zahl ÜBERSCHRIEBEN im zweiten Fall erhalten wir wieder unsere Zufallsinformation.

Gibt es denn keine Möglichkeit, eine einmal eingespeicherte Information auch nach dem Abschalten zu erhalten oder vor dem Überschreiben zu sichern?

Nur durch schaltungstechnische Eingriffe in den Computer; das RAM ist eben ein Schreib / Lesespeicher. Wollen wir einen Speicher haben, der zwar (für uns verwertbare) Informationen hergibt, sie aber nicht überschreiben kann, müssen wir Nur - Lesespeicher verwenden. Um die Informationen im RAM beim ausgeschalteten Rechner zu schützen, müßte man die RAMs auch nach dem Abschalten aller anderen Teile des Rechners weiter mit Strom versorgen. Zu diesem Zweck gibt es auch RAMs die nur sehr wenig Strom verbrauchen. Im Atari wurden jedoch "normale" RAMs verwendet.

Die Nur-Lesespeicher werden ROM (Read Only Memory) genannt. Es gibt viele unterschiedlich Arten von ROMs, die sich in der Bezeichnung immer nur durch Buchstaben vor dem "ROM" unterscheiden, z.B. EPROM, EEROM, EAROM, PROM, IPROM. In der Bezeichnung der Hersteller "heißt" ein bestimmtes EPROM aber zum Beispiel "2716".

Alle haben aber eines gemeinsam: Der Computer kann die in ihnen enthaltene Information nicht OHNE HILFSMITTEL ändern, bei einigen Bausteinen wird die Information sogar gleich bei der Entwicklung des Types hineingegeben, sodaß sie von uns niemals mehr änderbar ist (außer natürlich durch Zerstörung des Bausteines).

Die Zentraleinheit

Die Zentraleinheit übernimmt die gesamte Verwaltung des Computers. Sie adressiert den zur Verfügung stehenden Speicher, behandelt Daten in dem Speicher und verwaltet bzw. dirigiert die I/O - Leitungen. Sie ist also das Kernstück eines jeden Computers. Ist sie defekt, läuft der ganze Rechner nicht mehr.

Allgemein besteht sie aus einigen internen Speicherplätzen, sogenannten Registern, die im Gegensatz zum übrigen Speicher den Vorteil haben, daß sie wesentlich schneller von der Zentraleinheit angesprochen werden können.

Außerdem sind in der CPU (Central Processing Unit, Zentrale Prozesseinheit) noch eine komplexe Logik zum Rechnen, Treiber zum Ansteuern der Speicher und I/O - Leitungen sowie einige interne, nicht direkt adressierbare Zwischenspeicher enthalten.

Nach außen hin liefert die CPU Adressensignale zum Ansteuern der weiteren Baugruppen, Datenleitungen zum Transport (Lesen oder Schreiben) von Daten sowie einige Kontrollsignale, die den Status der CPU angeben, so z.B. eine Schreib/Leseleitung, die angibt, ob Daten gesendet oder gelesen werden sollen.

In unserem ATARI haben wir es mit der 6502 - CPU ( lies: fünfundsechzignullzwo zehpehuh ), bzw. der 6502C - CPU zu tun. Sie besitzt u.a. 8 Datenleitungen, mit denen sie die jeweils 8 Bit vom oder zum Speicher transportieren kann.

Weiterhin liefert sie 16 Adressensignale, mit denen man Speicher oder I/O - Leitungen ansprechen kann. 16 Leitungen also, wieviele Speicherplätze sind das denn? Wer im vorigen Kapitel aufgepaßt hat, hat die Antwort schnell parat: es sind genau 2**16 Speicherstellen oder I/O - Adressen.

Hier sei noch folgende Konvention der Techniker erwähnt :

Im Gegensatz zum "normalen" Kilo, das einem Faktor von l000 entspricht (man denke z.B. an das Kilogramm: 1kg = 1000g), spricht der Informatiker von dem Kilo als 1024.

Also : 1 KBit = 1024 Bit

Die "krumme" Zahl 1024 läßt sich leicht begründen: 1024 = 2**10. Wenn man also von einem Kilobyte spricht, meint man 1024 Byte. 16 KByte sind 16384 Bytes und 64 KByte sind 65536 Bytes. DAS IST KEIN DRUCKFEHLER!

Genau bei 64 Kilo stimmt die Daumenregel Anzahl mal tausend nicht mehr! Also nicht verwirren lassen, z.T. zum Verkauf angebotene Computer mit 65 KByte gibt es nicht! Leider wird selbst in Elektronikzeitschriften gelegentlich von 65 KByte gesprochen.

Wer bis hierhin alles verstanden hat, ist auch sicherlich in der Lage zu erklären, weshalb es keinen Computer geben KANN der GENAU 65 KByte adressiert.

Die Begründung ist einfach: 16 Adressleitungen adressieren 64 KByte RAM, 17 Adressleitungen dagegen schon 128 KByte. Wieviele Adressleitungen bräuchte man also für 65 KByte Adressraum ?

Die 64 KByte Adressraum der CPU werden nun aufgeteilt in RAM, ROM und

Input- / Output - Leitungen

Unter diesem Begriff versteht man nicht bloß eine Anordnung von Leitungen, über die Daten transportiert werden, sondern insbesondere die zu deren Ansteuerung notwendige Elektronik, die aus den Computer-Bits elektromechanische, elektronische, optische oder akustische Signale erzeugt, und somit die vom Computer gegebenen Informationen hörbar, sichtbar oder für ein beliebiges Medium speicherbar macht. Diese Wandler werden gemeinhin als "INTERFACES" oder "CONTROLLER" bezeichnet.

Unter einem INTERFACE versteht man eine Baugruppe, die die von einem beliebigen Geber gesendeten Signale so umwandelt und weitersendet, daß ein ebenfalls daran angeschlossener Empfänger sie erkennen, kontrollieren und verarbeiten kann.

Ein CONTROLLER "bewacht" das ihm schutzbefohlene Peripheriegerät (Peripherie = griech. Umfeld, Umfeld, also das, was "drumrum" ist wie z.B. Drucker, Floppy o.ä.) und versorgt es mit Befehlen und Daten, beziehungsweise holt Daten von ihm ab.

Selbstverständlich gehört zu der jeweiligen Elektronik auch immer eine Software, der TREIBER, der das sogenannte PROTOKOLL, das den Ablauf der Datenübertragung regelt, festlegt. Er reagiert zum Beispiel auf eine Datenanfrage, einen Fehler in einer Übertragung oder ähnliches mehr. Einige Protokolle sind standardisiert, oder ihre Standardisierung ist in Vorbereitung. Zuständig hierfür sind Institutionen wie die ISO (International Standardisation Organisation) oder CCITT, das französische Gegenstück.

LOW und HIGH

Uns interessiert jetzt die Frage, wie sich der Computer mit dem Speicher und den peripheren Geräten unterhalten kann, denn selbst bei Aufschrauben des Computers sind nirgends Nullen oder Einsen zu finden (Schlaumeier aufgemerkt, wer meint, die 6502 - CPU enthalte eine Null, hat irgendetwas nicht richtig verstanden...). Auch die am Anfang beschriebenen Relais, die offen oder geschlossen gewesen sein konnten, sind nicht im ATARI zu finden; wo steckt dann die Information?

Sie wird in Form von elektrischen Spannungen übertragen, die im Interesse der einzelnen Computerfirmen standardisiert sind. Es gibt dafür allerdings mehrere unterschiedliche Arten elektronischer Baugruppenstandards, aber uns interessiert hier nur einer:

Der TTL - Standard

Alle Bausteine auf TTL - Basis (Transistor - Transistor Logik) arbeiten mit einer Versorgungsspannung von +5 Volt, sofern sie nicht für den Interfacebetrieb an höheren Spannungen entwickelt wurden. Die Versorgungsspannung ist die Spannung, die einen Baustein zum "Leben" erweckt, ohne die sich "nichts tut".

Ein anderes Herstellungsverfahren als das der TTL - Logik, das uns die MOS (Metal Oxyd Semiconductor, Metalloxyd Halbleiter) - Bausteine "schenkte", lieferte uns auch die 6502 - CPU sowie alle höher integrierten Bausteine, wie z.B. die Speicher.

Unter höherer Integration verstehen wir, daß auf gleichem Platz (Quadratmillimeter) mehr Bauteile untergebracht sind und solche Bausteine wie Speicher oder CPUs "verbraten" immense Mengen von Bauteilen. Wollte man z.B. die CPU mit einzelnen Transistoren aufbauen, bräuchte man schon einen kompletten mittleren Wohnzimmerschrank inclusive Kühlanlage! Der ist aber, wie gesagt, nicht (mehr) notwendig.

Betrieben werden unsere Bausteine also mit einer Versorgungsspannung von +5 Volt gegen Massepotential (entspricht meist dem Erdpotential). Jetzt können wir zwei unterscheidbare Zustände definieren:

  1. Der LOW (niedrigere) - Zustand soll der negativeren und
  2. der HIGH (höhere) - Zustand soll der positiveren Spannung entsprechen.

Warum so kompliziert, warum nicht einfach LOW=Masse und HIGH=+5V? Diese komplizierte Ausdrucksweise ist notwendig, da in (nicht TTL-) Baugruppen Versorgungsspannungen von z.B. -5V existieren können. Hier wäre dann eine neue Definition notwendig, die man mit der komplizierten Beschreibung oben aber ebenfalls abgedeckt hat. Bei TTL-Bausteinen sind die Potentiale der Pegel folgendermaßen definiert :

  • HIGH - Potential liegt zwischen +2,4 Volt und +5,0 Volt
  • LOW - Potential liegt zwischen 0 Volt und +0,8Volt

Was liegt aber zwischen +0,8 und 2,4 Volt Eingangsspannung?

Bitte nicht lachen: Das weiß der Baustein, der diese Eingangsspannung empfängt, selbst nicht!

Im Allgemeinen fangen ICs bei unklaren Eingangspegeln an zu schwingen, das heißt, sie erkennen in schnellem Wechsel am Eingang abwechselnd LOW und HIGH.

Im übrigen gilt diese Definition oben von Low und High nicht immer; wir sprechen hier von POSITIVER LOGIK. Bei der negativen Logik ist alles genau umgekehrt, aber darauf wollen wir jetzt nicht weiter eingehen.

Jetzt wissen wir, wie der Computer seine Daten haben möchte: in Form von Spannungen. Spannungen kann man nicht sehen, nur ihre Auswirkungen (z.B. Blitze!) . Man kann aber auch Geräte benutzen, die uns das Vorhandensein oder Fehlen von Spannungen anzeigen. Da wären als einfachste Geräte die Logikprüfstifte zu nennen.

Sie bestehen aus einem kugelschreibergroßen Gehäuse, in dem sich zwei oder mehr Lampen befinden; je nachdem, welche der Lampen leuchtet, liegt die eine oder die andere Spannung an. Dies ist das billigste Meßinstrument in der Digitaltechnik, nur leider arbeitet unser ATARI so schnell, daß wir in den meisten Fällen beide Lämpchen leuchten sehen würden, da sich die Pegel an den ICs 50000 Mal so schnell ändern wie wir sehen können! Also ist dieses Meßinstrument für uns meist zwecklos.

Als nächstes gibt es das sogenannte Vielfachmeßinstrument. Es kann mit einem Zeiger oder einer Digitalanzeige versehen sein - man benötigt es zwar manchmal zum Reparieren von Computern, aber prinzipiell ist auch dieses Instrument für die Anzeige "nicht-statischer" Spannungen und Ströme in einem Mikrocomputer zu langsam.

Das Gerät, mit dem man sich an den Computer "heranwagen" darf, ist das Oszilloskop (manchmal auch "Oszi" oder "Oskar" genannt) mit einer Minimalfrequenz von 40MHz (Megahertz).

Eine derartig hohe Frequenz (der Atari arbeitet mit 1,77 MHz) wird benötigt, da wir digitale Signale messen wollen. Um diese richtig zu sehen, brauchen wir eine wesentlich höhere Frequenz als die des zu messenden Signals, denn Rechteckschwingungen bestehen aus beliebig vielen ungeradzahligen Harmonischen, und je mehr man davon sieht, umso besser werden die Signale auf dem Oszischirm gezeigt.

Diese kleine Ausschweifung in das (riesige) Feld der Meßtechnik sei als WARNUNG hier eingebaut.

"Niemals mit ungeeigneten Meßinstrumenten versuchen, etwas zu reparieren! Das kann nur "schief" gehen."

Es gibt zwar für jeden Techniker einmal die Situation, daß er ein Gerät reparieren muß, ohne die geeigneten Meßgeräte dabei zu haben, aber :

"Ein guter Techniker weiß, wann er aufhören muß zu improvisieren !"

Diesen Spruch sollte sich jeder über's Bett nageln, der an seinem ATARI herumschraubt, ohne GENAU zu wissen, was er macht. Damit wollen wir die kurze Einführung das "Prinzip eines Mikrocomputers" beenden.