Die ersten Schritte mit dem Lehrcomputer
Um den Umgang mit dem Rechner zu illustrieren, soll das kleine Additionsprogramm
Adresse Datum
0 JMP 3 Befehle 0000 0000 10 000011
1 INC 7 0000 0001 00 000111
2 DEC 8 0000 0010 01 001000
3 TST 8 0000 0011 11 001000
4 JMP 1 0000 0100 10 000001
5 JMP 5 * 0000 0101 10 000101
6 0 Lücke 0000 0110 00000000
7 3 Daten 0000 0111 0000 0011
8 2 0000 1000 0000 0010
in den Speicher gebracht und ausgeführt werden.
Jeden von-Neumann-Rechner kann man in Operationswerk und Steuerwerk aufteilen. Das Operationswerk
ermöglicht vielerlei 'Operationen' wie Registertransfers, Rechnungen u.s.w., das Steuerwerk
steuert diese Operationen. Mit dem Lehrcomputer ist es möglich, die Rolle des Steuerwerks selbst
zu übernehmen und das eingebaute Steuerwerk abzuschalten. Genau das müssen Sie bei
Ein-und Ausgaben auch tun.
Achten Sie bei den folgenden Ausführungen auf die Zahlen (1,2,3,...), sie ermöglichen Ihnen mit
Hilfe der Übersichtszeichnung eine einfachere Orientierung:
- Stellen Sie den Schalter zur Steuerwerkskontrolle auf 'Hand' (Knebel nach rechts), die rote
Leuchtdiode, die das Schreiben des Steuerwerks auf den Steuerbus anzeigt, erlischt.
- Wählen Sie auf der PC-Platine die richtige Adresse. Benutzen Sie dazu die gelben Tasten 'up'
und 'down' bzw. die graue 'clear'-Taste zum 'Auf-Null-Setzen'. Beachten Sie die Anzeige
des Adressbusses auf der Speicherplatine, sie folgt der Anzeige des PC. Die rotleuchtende
Diode auf der PC-Platine zeigt, dass der PC auf den Datenbus schreibt.
- Stellen Sie mit den acht Kippschaltern der Eingabe das richtige Datum ein
('1' = Knebel nach oben).
- Drücken Sie die grüne 'write'-Taste auf der Speicherplatine, um das eingestellte Datum
in den Speicher zu schreiben Wenn Sie die Taste etwas gedrückt halten, können Sie am
Aufleuchten der Leuchtdioden den Weg der Eingabedaten verfolgen. Der Eingabemodul schreibt
auf den Datenbus (rote Leuchtdiode), der Speicher liest vom Datenbus (grüne Leuchtdiode).
Sie können auch während des Schreibens ('write'-Taste gedrückt) das Datum ändern
(die Eingabeschalter betätigen).
- Mit Hilfe der roten 'read'-Taste können Sie das in den Speicher geschriebene Datum
wieder auslesen. Da Sie während des Lesens die Adresse ändern dürfen, ist es ein leichtes,
z.B. zu Kontrollzwecken den Speicher durchzublättern.
- Haben Sie durch mehrmaliges Wiederholen der Schritte 2 bis 4 das Programm und
seine Daten in den Speicher gebracht, können Sie das Programm starten. Durch
Drücken der blauen Reset-Taste auf der Platine EIN/TAKT/RESET wird ein
'Hardware-Reset' durchgeführt, der im einzelnen folgendes bewirkt:
- der PC wird auf Null gesetzt
- der Mikroprogrammzähler (MPC) im Steuerwerk wird auf Null gesetzt
- der AKKU wird auf Null gesetzt
- das Befehlsregister (instruction register, IR) wird mit Nullen gefüllt
- das Steuerwortregister im Steuerwerk wird mit lauter '1'en (alle Signale auf inaktiv) gefüllt
- Überprüfen Sie die Stellung der beiden Kippschalter am Taktgeber:
Mit dem oberen Schalter können Sie zwischen dem hohen und dem niederen Frequenzbereich
umschalten. Es ist an sich gleich wie dieser Schalter steht, aber wenn Sie von der
Ausführung des Programms etwas sehen wollen, stellen Sie ihn auf 'langsam' (Knebel nach unten).
Der untere Kippschalter schaltet zwischen Einzel- und Dauertakt um, stellen Sie ihn zunächst auf
Einzeltakt (Knebel nach unten). Sollte der Taktgeber gelaufen sein (die rote Leuchtdiode
'Takt' auf der gleichen Platine war in Betrieb), so stellen Sie durch einen neuerlichen
RESET sicher, dass der Mikroprogrammzähler auf Null steht (Die vier grünen Leuchtdioden
auf der Steuerwerksplatine müssen aus sein.).
- Übergeben Sie nun dem Steuerwerk durch Betätigen des Schalters Hand/ Steuerwerk
(1) die Kontrolle. Das Steuerwerk schreibt auf den Steuerbus, wenn die dreieckige rote
Leuchtdiode (1) aufleuchtet. Jetzt starten Sie das Programm, indem Sie entweder den
Dauertakt einschalten oder einzelne Taktimpulse durch Betätigen der 'Takt'-Taste (6) auslösen.
- Wie bereits bei der binären Kodierung erwähnt fehlt ein HLT-Befehl. Der Rechner
wird durch eine Endlosschleife abgefangen, deren Auftreten an einem stabilen Bitmuster
(im Beispielprogramm: 10 000101) im Befehlsregister zu erkennen ist.
- Auslesen der Ergebnisse:
Wenn nicht schon geschehen, so wird der Rechner durch Schalten auf Einzeltakt angehalten.
Jetzt wird das Steuerwerk abgeschaltet und am PC die Adresse der interessierenden
Speicherzelle (hier: z.B. 710 = 0000 01112) eingestellt.
Drücken der READ-Taste auf der Speicherplatine läßt nun das Datum
(hier: z.B. 510 = 0000 01012) auf dem Datenbus erscheinen.
Ein kleines Delphi-Tool (bma2bin.zip oder - komfortabler -
bma2bin2.zip) kann bei der Erstellung der Binärdaten aus der bma-Datei helfen.
Der Bonsai-Computer ist schnell!
In der Simulation (Duron 800) dauert die Multiplikation 13x17 = 227 mit ihren 22826 Takten ca. 1 h. Die Hardware läuft
über 1MHz schnell, hier dauert die Rechnung ca. 0,02s!
Anspruchsvolleres Beispiel
Das 'ordentliches' Divisionsprogramm divmodpy.bon, das
systematisch
erstellt wurde, kann ein weiterer Prüfstein für den Bonsai-Computer sein.
Nachdem das Programm automatisch zu divmodpy.bma übersetzt wurde, benötigt es 2531 Takte um 7 durch 3 zu dividieren.
Es kann mit Hilfe des Tools bma2bin weiter in eine binäre Darstellung
divmodpy.bin (divmodpy.txt) konvertiert werden.
Mit einem weiteren Tool, bin2hard kann, wenn auch unter DOS,
die Bonsai-Hardware direkt programmiert werden