Versuche MC 6400

Themenmenü:

Home / Versuche / MC 6400

Anleitung MC6400

Von der Anleitung zum Mikrocomputer MC 6400 ist mir nur die deutsche Erstausgabe bekannt. Sie enthält im Impressum keinen Datumshinweis. Prof. Georg Guertler erwähnt jedoch in der Einleitung die Kürung des Personal Computers zur "Persönlichkeit" des Jahres 1982 im US Magazin TIME. Diese Ausgabe ist im Januar 1983 erschienen.

TIME Magazine Cover

Somit kommt 1983 als frühestes Erscheinungsjahr der Anleitung zum Master Lab MC 6400 in Betracht. Ob es danach noch weitere Auflagen oder Übersetzungen in andere Sprachen gab, entzieht sich meiner Kenntnis.

In folgenden Kapiteln befinden sich fehlerhafte oder missverständliche Hinweise:

Titelbild

Einleitung, Seite 3

Microcomputer 6400, Seite 12

1.1 Wir nehmen den Computer in Betrieb, Seite 13

3.2.7 Die Schaltung für die Eingänge, Seite 23

12.1 Bemerkungen zum Status-Register S, Seite 64

16.5 Das T-Register und der Multiplikationsbefehl, ab Seite 101

Weitere Mitteilungen sind mir jederzeit willkommen! Weiterführende Informationen zur CPU INS 8070 habe ich auf einer Extraseite aufbereitet.

^ Seitenanfang

Titelbild

Das Titelbild und die Abbildung auf dem Karton zeigt vermutlich eine Designstudie der ursprünglich geplanten Ausführung des MC 6400 ohne EPROM. Angedacht war bestimmt eine Kundenversion des Prozessors INS8072 mit dem Monitorprogramm im eingebauten ROM. In der Entwicklungsphase und beim Debugging war das allerdings unpraktisch. Da das Programm etwas zu groß wurde, hat man auch in der Auslieferversion den INS8070 mit externem EPROM beibehalten. Natürlich hätte man noch auf eine Größe von 2,5 KB optimieren können. Da das Monitorprogramm jedoch auch didaktische Ziele unterstützen sollte, schied eine allzu trickreiche Programmierung aus.

^ Seitenanfang

Einleitung, Seite 3

Prof. Georg Guertler schreibt in der Einleitung:

Den Arbeitsspeicher bildet ein eingebauter Festwertspeicher (EPROM) mit 4 KB (Kilobytes), d. h. es stehen 4096 x 8 Speicherplätze zur Verfügung.

Es ist zwar richtig, dass im MC 6400 ein EPROM mit 4 KB eingebaut ist. Dieses EPROM enthält jedoch das Betriebssystem und ist nicht veränderbar. Zumindest nicht mit Bordmitteln des MC 6400. In diesem Festwertspeicher sind auch einige Demonstrations-Programme gespeichert - die sogenannten Spiele.

Unter Arbeitsspeicher versteht man aber den Schreib-Lesespeicher (RAM), dessen Inhalt nach Belieben geändert werden kann. Dieser Bereich ist in der Grundausstattung nur 1 KB groß. Für den Anfang ist aber auch das schon mehr als genug!

^ Seitenanfang

Microcomputer 6400, Seite 12

Die Abbildung auf dieser Seite zeigt eine Verdrahtung, deren Sinn sich mir nicht so ohne weiteres erschließt. Der einseitige Anschluss der LED zur Basis des Transistors und die Verbindung vom Taster zum Außenanschluss sind möglicherweise Relikte aus einem früheren Versuchsaufbau:

Microcomputer 6400

Ansonsten ist ein Transistor-Verstärker für den Lautsprecher auszumachen. Allerdings ohne Lautstärkeregler. Hierzu fehlen aber die Verbindungen mit Masse und +5V an der Computer-Box. Damit der Verstärker auf die gezeigte Weise überhaupt funktionieren kann, wurde die Experimentierbox B wahrscheinlich um einen Batteriekasten ergänzt oder durch ein separates Netzgerät versorgt.

^ Seitenanfang

1.1 Wir nehmen den Computer in Betrieb, Seite 13

Auf dieser Seite gibt es nur etwas zum schmunzeln:

Wir verbinden das Netzgerät mit unserem Computer und schalten das Gerät mit dem Ein-Aus-Schalter ein. Der Computer meldet sich mit seinem Namen:
    H A L L O  

Hier sollte man die letzten drei Worte besser streichen. Vielleicht haben die Entwickler zu spät festgestellt, dass sich das "M" für "MC 6400" nicht auf einer Sieben-Segment-Anzeige darstellen lässt.

^ Seitenanfang

3.2.7 Die Schaltung für die Eingänge, Seite 23

Der gezeigte Schaltungsteil in der Anleitung ist völlig korrekt!

Schaltungsauszug

In der weiteren Beschreibung wird jedoch immer ein Transistor statt des Inverters aus dem CD 4069 erwähnt. Hier sollte das Wort "Transistor" also jeweils durch "Inverter" ersetzt werden. Ansonsten ist die Beschreibung korrekt und verständlich!

^ Seitenanfang

12.1 Bemerkungen zum Status-Register S, Seite 64

Die Beschreibung des Status-Registers in diesem Kapitel ist absolut richtig! In die Abbildung hat sich jedoch ein kleiner Fehler eingeschlichen:

Kopieren von A nach S

Der hier dargestellte Befehl ist natürlich nicht LD A, S sondern es muss LD S, A sein!

^ Seitenanfang

16.5 Das T-Register und der Multiplikationsbefehl, ab Seite 101

In diesem Kapitel macht Herr Erhard Meyer (Autor der Anleitung und vermutlich auch einer der Entwickler des MC 6400) einige Angaben zum Multiplikationsbefehl MPY EA,T, die im Widerspruch zum Datenblatt der INS 8070 CPU sind. So steht beispielsweise auf Seite 102:

Eine Einschränkung gibt es: Die Hexadezimalzahl, die vor Ausführung der Multiplikation (bei unserem Programm als 2. Faktor ins EA-Register geladen wird, darf maximal 7FFF sein. Das höchste Produkt, das wir mit dem Multiplikationsbefehl berechnen können, ist FFFF · 7FFF = 7FFE 8001. Es kann also eine sechzehnstellige Dualzahl mit einer fünfzehnstelligen multipliziert werden. Das Produkt ist eine maximal 31stellige Dualzahl (Bit 30 bis Bit 0).

Im Datenblatt steht es sinngemäß genau anders herum. Hiernach darf das EA-Register Werte bis FFFF und das T-Register nur bis 7FFF enthalten. Mancher fragt sich jetzt vielleicht, was diese Haarspalterei soll? Für die Multiplikation gilt schließlich das Kommutativgesetz, wonach FFFF · 7FFF ja das gleiche Ergebnis liefern muss, wie 7FFF · FFFF.

Für den Mikroprozessor ist das aber sehr wohl ein Unterschied, wie die Tabelle mit Multiplikationsbeispielen auf Seite 103 der Anleitung zeigt. Der Multiplikand im EA-Register wird nämlich von der CPU als duale Zweier-Komplement-Zahl behandelt. Für den Multiplikator im T-Register ist das aber nicht der Fall. Aus welchen Gründen auch immer! Der Inhalt des T-Registers muss vor der Ausführung der Multiplikation eine positive Zahl sein. Deshalb hat der Hersteller den gültigen Zahlenbereich im T-Register kurzerhand auf 0…7FFF begrenzt.

Nr. 1.Faktor
(T)
2.Faktor
(EA)
erwartetes
Produkt
Anzeige
1. 444 2000 88 8000
0 0 8 8 8 0 0 0
2. F00 F0 E 1000
0 0 0 E 1 0 0 0
3. FFFF 1000 FFF F000
0 F F F F 0 0 0
4. FFFF 7FFF 7FFE 8001
7 F F E 8 0 0 1
5. 2710 2710 5F5 E100
0 5 F 5 E 1 0 0
6. 7FFF FFFF 7FFE 8001
F F F F 8 0 0 1
7. 1111 8000 888 8000
F 7 7 7 8 0 0 0
8. 1 FFFF FFFF
F F F F F F F F

Herr Meyer ging offensichtlich davon aus, dass die Faktoren im EA- und T-Register stets als positive Zahlen zu betrachten sind. So kommt er zu dem Schluss, dass die in der zweiten Gruppe (Nr. 6 bis 8) angezeigten Ergebnisse fehlerhaft sind. Die Ursache sieht er in der Überschreitung des Wertebereichs im EA-Register.

Die CPU betrachtet den Faktor im EA-Register jedoch als duale Zweier-Komplement-Zahl. Bei den Beispielen der zweiten Gruppe ist das Vorzeichen-Bit (Bit 15) im EA-Register gesetzt. Es wird also mit einem negativen Faktor gerechnet und das Produkt ist dann logischerweise ebenfalls negativ. Die angezeigten Ergebnisse sind somit korrekt!

7FFF
32.767
x FFFF
-1
= FFFF 8001
-32.767
1111
4.369
x 8000
-32.768
= F777 8000
-143.163.392
1
1
x FFFF
-1
= FFFF FFFF
-1

Hochinteressant ist, was Herr Meyer über den Zahlenbereich 8000…FFFF als Faktor im T-Register herausgefunden hat. Wie bereits dargelegt, sind laut Datenblatt nur die Werte 0…7FFF zulässig. Die Zahl ist dann ganz eindeutig positiv (Bit 15 = 0). Wie Herr Meyer in den Beispielen zeigt, ist das von der CPU berechnete Produkt auch dann korrekt, wenn der Faktor im T-Register als vorzeichenlose Zahl von 0…FFFF (0…65.535 dezimal) betrachtet wird.

Diese Sichtweise lässt sich sogar anwenden, wenn im EA-Register eine negative Zahl steht. Für die berechneten Produkte können somit vier Bereiche unterschieden werden. Die zweite Zeile zeigt jeweils, wie die Zahlen im Dezimalsystem zu interpretieren sind:

Nr. Multiplikand
(EA)
Multiplikator
(T)
Produkt
(EA,T)
1. 0 … 7FFF
0 … 32.767
0 … 7FFF
0 … 32.767
0 … 3FFF 0001
0 … 1.073.676.289
2. 8000 … FFFF
-32.768 … -1
0 … 7FFF
0 … 32.767
C000 8000 … FFFF FFFF … 0
-1.073.709.056 … -1 … 0
3. 0 … 7FFF
0 … 32.767
8000 … FFFF
32.768 … 65.535
0 bzw. 8000 … 7FFE 8001
0 bzw. 32.768 … 2.147.385.345
4. 8000 … FFFF
-32.768 … -1
8000 … FFFF
32.768 … 65.535
8000 8000 … FFFF 8000
-2.147.450.880 … -32.768
  1. In beiden Faktoren enthält das Vorzeichen-Bit (Bit 15) eine 0. Das heißt beide Zahlen sind positiv und damit wird auch das Ergebnis positiv.
  2. Hier ist das Bit 15 im EA-Register eine 1, sodass EA als negative Zahl behandelt wird. Das T-Register hat im Bit 15 eine 0 und enthält somit eine positive Zahl. Damit wird das Produkt negativ.
  3. Wie Herr Erhard Meyer herausgefunden hat, kann man diesen Bereich als Fortsetzung des ersten auffassen. Hierbei muss jedoch beachtet werden, dass der Multiplikator im T-Register nicht als duale Zweier-Komplement-Zahl behandelt wird. Dieser Bereich ist im Datenblatt nicht definiert!
  4. Ebenso ist der vierte Bereich im Datenblatt undefiniert! Aber auch hier ist das Ergebnis korrekt, wenn der Faktor im T-Register als positive 16 Bit Zahl aufgefasst wird. Allerdings macht sich hier sehr irritierend bemerkbar, dass der gleiche hexadezimale Zahlenbereich im EA- und T-Register unterschiedlich zu bewerten ist. Das ist wahrscheinlich der Hauptgrund, weshalb der Faktor im T-Register von National Semiconductor auf 0…7FFF begrenzt wurde.

Zusammenfassend kann festgestellt werden, dass der MPY Befehl mit jeder hexadezimalen Zahlenkombination im EA- und T-Register ein korrektes Ergebnis liefert. Wichtig ist nur, dass der Faktor im EA-Register als duale Zweier-Komplement-Zahl aufgefasst wird, während der Faktor im T-Registers als positive 16-Bit Zahl zu betrachten ist. Das Ergebnis ist dann immer eine 32 Bit große duale Zweier-Komplement-Zahl.

^ Seitenanfang

©2007-2016 · Norbert Schneider · Impressum · Stand: Feb 16