9.8.2005 Christian Corti Kurzanleitung zum LGP30-Simulator - Version 1.70 ------------------------------------------------ 1. Dateien ---------- Der Simulator besteht im Wesentlichen aus dem Hauptprogramm LGP30SIM.EXE. Zusätzlich existieren Unterverzeichnisse mit der Endung .TRM, in denen "Schnappschüsse" des Trommelinhalts abgelegt sind. Im Simulator können diese angefertigt und abgerufen werden. LGP30SIM.EXE Hauptprogramm LOCHSTR/ Verzeichnis mit den Lochstreifen-Dateien für den LGP-30 START.TRM/ Verzeichnis mit dem Trommelinhalt "START", 9.0 (Bootstrap) und 10.4 (Monitor) sind bereits auf der Trommel. 2. Start -------- Im Verzeichnis mit den Simulatordateien einfach LGP30SIM starten. Es erscheint daraufhin der Konsolenschirm. Beim Aufruf des Simulators können bei Bedarf weitere Optionen mit der Kommandozeile übergeben werden. Diese sind: /? Optionen anzeigen /S Aktiviere serielle Konsole Damit wird die Ein-/Ausgabe des simulierten Flexowriters auf eine serielle Schnittstelle umgeleitet. Die Start-Taste am Flexowriter wird durch BREAK (z.B. BREAK-Taste an einem V.24-Terminal) simuliert. Die Syntax lautet: /S:port,baud,par,bits,stop port: Nummer des COM-Ports (0, 1, 2, 3) baud: Baudrate (z.B. 9600) par: Parität (N=keine, E=gerade, O=ungerade) bits: Anzahl Datenbits (7 oder 8) stop: Anzahl Stopbits (1 oder 2) /P Aktiviere Ausgabe auf Drucker Die Ausgabe des simulierten Flexowriters wird nach PRN (dem Standarddrucker unter DOS) geschickt. Die Eingabe erfolgt weiterhin mit der Tastatur am Rechner. Syntax: /P:1 /L Langsame Simulation Hiermit wird die Ausführungsgeschwindigkeit des Simulator ungefähr auf die reale Verarbeitungsgeschwindigkeit des LGP-30 gesetzt. Selbst auf einem 4,77 MHz 8088 System ist die Simulation deutlich schneller wie das Originalsystem. /Z Lösche Default-Trommelinhalt Die Trommel ist beim Starten des Simulators komplett gelöscht und enthält nicht den Zustand des letzten Simulatorlaufs. 3. Bedienung ------------ Nach dem Start erscheint als Erstes der Konsolenschirm des Simulators. Die Konsole ist in mehrere Bereiche unterteilt: - Status (erste Bildschirmzeile) Hier wird der momentane Zustand des Simulators dargestellt, folgende sind möglich: HALT - Ausführung ist angehalten RECHNET - Programm bzw. Befehl wird gerade ausgeführt ÜBERLAUF - Ausführung wurde wegen eines Überlaufs im Akkumulator angehalten EINGABE - Programm erwarten Eingabe vom simulierten Flexowriter (Tastatur) Zusätzlich erscheint auf der linken Seite beim Einlesen eines Lochstreifens (von Datei) 'LESEN', beim Schreiben dementsprechend 'SCHREIBEN'. - Registeranzeige (rechts oben) Die Registeranzeige entspricht der Anzeige auf der Oszilloskopröhre beim LGP-30. Es sind zu sehen: Befehlszähler, Befehlsregister und Akkumulator. Direkt darunter ist die Maske für Befehl, Spur und Zelle angedeutet. Links neben der Maske steht der Befehl, der sich momentan im Befehls- register befindet, in disassemblierter Form; bei leerem Register daher Z 0000. - Betriebszustand (links oben) Mit den angegebenen Tasten kann der Betriebszustand geändert werden, der aktuelle Zustand ist dabei hervorgehoben. Man kann zwischen Normalbetrieb, Einzeloperation und Eingabe von Hand umschalten. Im dritten Modus läßt sich dabei nach Drücken der Return-Taste etwas in den Akkumulator eingeben, wobei entweder 4-Bit oder 6-Bit Eingabe erfolgt, abhängig vom Status der Taste "6-Bit Eingabe". - Speicherauszug (mitte) Im Feld Speicherauszug läßt sich der Inhalt der Trommel darstellen. Es werden dabei immer 8 Zellen angezeigt. Links der bitweisen Darstellung steht dabei die Adresse der Zelle in der Form [Spur, Zelle], wiederum links davon der Befehl, der in der Zelle steht (siehe Maske). Mit Hilfe der Cursortasten kann man innerhalb der Trommel navigieren. Die Tastenbelegung steht dabei als Hilfe am linken Bildschirmrand. - Konsolentasten (am unteren Bildschirmrand) Die Tasten des LGP-30 sind mit den Tasten F1 bis F10 realisiert. Analog zum LGP-30 haben nur Tasten, die hell beschriftet sind, im momentanen Betriebs- zustand eine Funktion. Die Ausgabe des Flexowriters erfolgt auf einem zweiten Schirm, auf den mit der Tastenkombination Alt-F2 gewechselt werden kann. Ebenso erscheinen dort alle Eingaben über die Tastatur. Zur Konsole gelangt man mit Alt-F1. Eines der wichtigsten Programme auf dem LGP-30 ist das Programm 10.4, mit dem sich weitere Programme einlesen lassen oder mit dem man Programme assemblieren kann (mit Adreßumwandlung). Zu diesem Zweck wurde bereits ein Schnappschuß der Trommel mit geladenem 10.4 angefertigt, welches den Namen START trägt. Dieser wird mit Strg-L geladen. Analog dazu läßt sich mit Strg-S die gesamte Trommel inkl. Register speichern. Die Bedienung des Simulators wird weiter unten anhand eines Beispiels erläutert werden. 4. Tastenkürzel --------------- Alt-F1 Darstellung der Konsole auf dem Schirm Alt-F2 Darstellung der Flexowriter Ein-/Ausgabe auf dem Schirm ESC Simulator beenden (nach vorheriger Rückfrage), bzw. Eingabe in den Akkumulator vorzeitig beenden (nur während EINGABE) Strg-L: Trommelinhalt laden Als Name der Trommel darf nur der eigentliche Name ohne die Endung .TRM angegeben werden. Strg-S: Trommelinhalt speichern Für den Namen gilt dasselbe wie oben. Der Name wird um die Endung .TRM ergänzt und ein Unterverzeichnis erstellt, worin sich dann zwei Dateien befinden: REGS.MEM und TROMMEL.MEM. Alt-E: Umschaltung der Eingabe Mögliche Eingabequellen sind: Tastatur (T) Datei (D), darin sollte sich der Inhalt eines Lochstreifens befinden. Die Option Lochstreifen (L) funktioniert nur mit spezieller Hardware und kann daher nicht benutzt werden. Alt-O: Umschaltung der Ausgabe Mögliche Ausgabegeräte sind: Bildschirm (S), mit Alt-F2 zu sehen Datei (D), damit kann die Ausgabe in eine Datei umgelenkt werden. Für die Option Lochstreifen gilt das gleiche wie im Absatz darüber. Alt-T: Trace Bei eingeschalteter Trace-Funktion werden alle Befehle, die ausgeführt werden, in eine Datei mitgeloggt, zusammen mit den Registerinhalten. N Normal Dies ist der normale Betriebsmodus des LGP-30. E Einzeloperation In diesem Modus wird bei Drücken von Start der jeweils nächste Befehls ausgeführt. H Eingabe von Hand In diesem Modus kann über die Tastatur eine Eingabe in den Akkumulator erfolgen. Mit wird die Eingabe begonnen, danach wird sie mit beendet. F1 Start F2 Zähler löschen - der Befehlszähler wird auf Null gesetzt. F3 Befehl eingeben - der Inhalt des Akkumulators wird in das Befehlsregister übertragen. F4 Befehl ausführen - der aktuelle Befehl im Befehlsregister wird ausgeführt. F5..F8 Kein Halt - Dies sind die bedingten Breakpoints, die in einer Anwendung abgefragt werden können. F9 6-Bit Eingabe - Statt mit 4 Bits erscheint jedes Zeichen bei der Eingabe mit seinem vollen 6-Bit Code im Akkumulator. F10 Sprung - Bedingter Sprung, der mit Hilfe des -T Befehls abgefragt werden kann. Die Tasten F5 bis F10 funktionieren auch, während der Simulator eine Eingabe erwartet. A. Beispiel ----------- Übersetzung des Programms Mondlandung mit Hilfe des ACT-V Compilers und anschließendem Start. Es werden dabei folgende Lochstreifen (jeweils als Datei auf dem Rechner abgelegt) benötigt: ACT-V Compiler, ACT-V Basic Subroutines, Quelltext der Mondlandung, Wurzel-Unterprogramm. 1. Laden der Trommel mit bereits eingelesenem 10.4 Strg-L -> start Wie oben bereits erwähnt nur "start" eingeben, nicht z.B. "start.trm". 2. Einlesen des ACT-V Compilers Alt-E -> D -> lochstr\act5 Die Anzeige "Eingabe von Tastatur" ändert sich zu "Eingabe von Datei". Wird die Datei nicht gefunden, wird dies mit einem kurzen Ton mitgeteilt und die Anzeige ändert sich nicht. Danach: N (Umschaltung in den Normalmodus) F1 (Start) 3. Einlesen der ACT-V Basic Subroutines Alt-E -> D -> lochstr\act5bs E (Einzeloperation) F2 (Zähler löschen, d.h. 10.4 neu starten) N (Normal) F1 (Start) 4. Übersetzung des Quellprogramms Alt-E -> T (Umschalten auf Eingabe von Tastatur) E F2 N F1 Hier erwartet 10.4 eine Eingabe von der Tastatur (EINGABE oben rechts blinkt), in diesem Beispiel muß der Compiler gestartet werden. Hierzu bitte eingeben: .0002000 F1 Der Simulator hält gleich wieder an (HALT), denn jetzt müssen einige Breakpoints ("Kein Halt") gesetzt, auf 6-Bit Eingabe umgeschaltet und der Quelltext lesebereit gemacht werden. Daher: F7 F8 F9 Alt-E -> D -> lochstr\mondl F1 Jetzt wird das Quellprogramm eingelesen und übersetzt. Am Ende der Über- setzung wird die Symboltabelle ausgedruckt. HINWEIS: Nicht vergessen, gegebenenfalls mit Alt-F1 und Alt-F2 zwischen den Bildschirmen umzuschalten. Dies funktioniert auch, während der Simulator rechnet. 5. Einlesen des Wurzel-Unterprogramms In der Symboltabelle erkennt man, daß das Label s000 (= letzte Codeadresse) bei 1042 liegt. Diese Information brauchen wir, um einen Platz für die Wurzel zu finden. Geeigneterweise wird sie nach 1045 geladen. F7, F8, F9 (Tasten wieder zurücksetzen) Alt-E -> T E, F2, N, F1 (10.4 neu starten) Folgendes jetzt eingeben: ;0001045 F1 /0001045 WICHTIG: Hier jetzt die Eingabe mit ESC vorzeitig beenden. Alt-E -> D -> lochstr\wurzel F1 Alt-E -> T 6. Zu guter Letzt: Starten der Mondlandung E, F2, N, F1 Eingeben: .0000300 F1, F1 So, und nun viel Spaß bei der Mondlandung! (Nicht vergessen: Immer Vorzeichen bei der Eingabe von Zahlen eingeben!) Wenn man die Mondlandung immer wieder spielen möchte, sollte man sich den Trommelinhalt sichern, so daß man in Zukunft nur noch den Inhalt laden und mit F1 die Simulation starten muß. Dazu sollte man folgendes vor oder nach Punkt 6 tun: E, F2, N, F1 Eingeben: .0000300 F1 Strg-S -> [Dateiname, z.B. MOND] (Namen ohne Endung eingeben!) Beim nächsten Start des Simulators wird die Mondlandung wie folgt gestartet: Strg-L -> [Dateiname, s.o.] N F1