[ CHEAP ] [ CASM ] [ CSIM ] [ CSIM-P ] [ Impressum ]
Mit dem CSIM wird das Verhalten eines
CHEAP bei Verarbeitung von durch
CASM
erzeugten Maschinencode simuliert. Durch den Einsatz einer modernen
grafischen Benutzerschnittstelle zeichnet sich die Anwendung vor allem
durch einfache und intuitive Bedienung aus. Darüberhinaus kann das
Programm auf einer Vielzahl von Systemplattformen betrieben werden. Die
einzige wesentliche Voraussetzung stellt die Verfügbarkeit eines
Mozilla Browsers
für die entsprechende Plattform dar.
Die Verwendung des bekannten Open Source Browsers als Backend ermöglicht aber nicht nur große Plattformunabhängigkeit sondern auch den großzügigen Einsatz von standardisierten, zukunftsweisenden sowie lizenzkostenfrei verfügbaren Technologien wie XUL, RDF, CSS, JavaScript, DOM und HTML.
Zum gegenwärtigen Entwicklungszeitpunkt existiert für den CSIM keine automatisierte Installationsroutine. Die manuelle Installation beschränkt sich jedoch auf wenige Handgriffe. Bei der folgenden Anleitung wird ein bereits installierter Mozilla Browser vorausgesetzt. Desweiteren werden eventuell Root Rechte zum Ändern einer zentralen Datei benötigt.
Nachdem die erforderlichen Dateien an beliebiger Stelle abgelegt wurden, muss die Datei installed-chrome.txt angepasst werden. Diese befindet sich im Unterverzeichnis chrome/ des Mozilla Browsers. Der Pfad lautet unter UNIX also beispielsweise /opt/firefox/chrome/installed-chrome.txt. Unter einem anderen System eventuell c:\temp\mozilla\bin\chrome\installed-chrome.txt.
Der erste Eintrag zeigt auf das sogenannte content/ Verzeichnis des CSIM. Angenommen, der CSIM wurde unter UNIX im Verzeichnis /home/guest/assembler/csim/ abgelegt, dann müsste der gesamte Pfad /home/guest/assembler/csim/content/csim/ lauten. Ein zweiter Eintrag zeigt auf das locale/ und ein dritter auf das skin/ Verzeichnis.
adding settings to installed-chrome.txt |
---|
cd /opt/firefox/chrome/ echo 'content,install,url,file:///home/guest/assembler/csim/content/csim/'\ >> installed-chrome.txt echo 'locale,install,url,file:///home/guest/assembler/csim/locale/en-US/csim/'\ >> installed-chrome.txt echo 'skin,install,url,file:///home/guest/assembler/csim/skin/csim/'\ >> installed-chrome.txt cd - |
Neben dem manuellen Anpassen oben genannter Datei ist es für einige grundlegende Funktionen des CSIM erforderlich, den Mozilla Browser mit einer zusätzlichen Bibliothek, der sogenannten jsLib auszurüsten. Die erforderlichen Dateien sind frei verfügbar und können als Root oder auch als User via XPI installiert werden.
Mit geringer Wahrscheinlichkeit ist es noch erforderlich, die Datei b2a.c für das verwendete Zielsystem zu übersetzen. Dies sollte jedoch zumindest auf nahezu jedem UNIX oder an UNIX angelehnten System problemlos möglich sein. Der Name der ausführbaren Datei richtet sich nach dem Wert, den Mozilla in navigator.platform vorhält. Der Wert kann beispielsweise über die JavaScript Console ausgelesen werden.
Wurden die Änderungen bei bereits geöffnetem Mozilla vorgenommen, ist als letzter Schritt ein Neustart des Browsers erforderlich.
Da der CSIM auf den Mozilla Browser aufsetzt, ist es grundsätzlich erforderlich eine Instanz des Browsers zu starten und anschließend den eigentlichen CSIM zu laden. Die gebrächliche Form ist dabei der Start aus der Kommandozeile unter Verwendung eines chrome Parameters. Alternativ kann aber auch direkt eine entsprechende chrome URL in die Adreßzeile des Browsers eingegenen werden. Die zweite Variante hat jedoch den Nachteil, daß der Simulator kein eigenes Anwendungsfenster besitzt.
Über den Parameter -P kann der Browser mit einem speziell für die Benutzung des CSIM vorgesehenen Profils gestartet werden. Ist das angegebene Profil noch nicht existent, wird ein entsprechender Wizard zur Erstellung eingeblendet. Für weitere Informationen lohnt hier auch ein Blick in die Dokumentation zum Browser.
starting CSIM from command line |
---|
/opt/firefox/firefox -P chromedev -jsconsole -chrome chrome://csim/content |
Nach dem Programmstart zeigt die Oberfläche lediglich eine
Menuleiste, darunter eine deaktivierte Leiste zur Steuerung des
Simulationsablaufs und am unteren Rand eine leere Statusleiste.
Die Menueinträge sind weitestgehend selbsterklärend. Über die Schaltfläche File -> Open kann eine CHEAP Binärdatei in den Simulator eingeladen werden. Einige Beispieldateien befinden sich im Unterverzeichnis samples/. Wurde eine Datei geladen, zeigt die Statuszeile deren Pfad, Namen und Größe.
Der erste und zu Beginn aktive Karteireiter zeigt die Simulation in der
sogenannten Runtime Ansicht. Die Ansichtmodi können
jederzeit durch anklicken der entsprechenden Reiter umgeschaltet werden.
Durch Anwahl der Option Help -> Tabbed documentation wird ein
weiterer Reiter hinzugefügt. Dieser bietet dem Nutzer einen
Schnellzugriff auf die vorliegende Dokumentation.
Die Ansicht Runtime zeigt im linken Bereich zu jedem interpretierten Befehl eine Zeile mit Statusinformationen. Eine solche Zeile besteht aus den folgenden drei Spalten.
Die Informationen der dritten Spalte können wie folgt schematisiert werden.
CSIM operation, scheme | CSIM operation, example | |
---|---|---|
instr/type [rg1<value>|imm [, rg2<value>|imm]] |
add/i r18[1024], 16 |
Der rechte Bereich gibt zunächst einmal Auskunft über die Registerinhalte des CHEAP. Eine Aktualisierung der Werte erfolgt, wie auch bei allen übrigen Anzeigen, in Echtzeit und ohne weitere Aufforderung durch den Nutzer. Der gesamte Bereich kann bei Bedarf ausgeblendet werden.
Weiter unten können, in Form von aufleuchtenden LEDs, Informationen zum Status von Unterbrechungsanforderungen abgelesen werden. Eine eingeschaltete orange LED symbolisiert eine Anforderung. Das Aufleuchten einer roten LED zeigt an, daß sich die entsprechende Anforderung in Abarbeitung befindet.
Darunter befindet sich zum aktuellen Entwicklungszeitpunkt ein Eingabefeld, das als virtuelle Tastatur dient. Es können beliebige Zeichen an den CHEAP gesendet werden, um diese daraufhin im Rahmen des laufenden Programms auszuwerten. Weitere Informationen zum Gerät finden sich in der Dokumentation zur Peripherie.
Die Ansicht Memory gestaltet sich denkbar simpel. Die linke
Spalte zeigt die Position im virtuellen Speicher des CHEAP, rechts
können die zugehörigen Werte in Hexadezimaldarstellung
abgelesen werden. Die Standardansicht zeigt nur einen kleinen Ausschnitt
des Speichers. Höhere Positionen werden zusätzlich
eingeblendet, sobald ein Schreibzugriff auf eine entsprechende Stelle
erfolgt. Daraus resultiert, daß nicht angezeigte Speicherbereiche
ausschließlich den Wert Null beinhalten.
Die Ansicht Virtual Screen zeigt die Ausgaben des an den
CHEAP angeschlossenen Bildschirms.
Über den Bildschirm kann ein
laufendes Programm dem Nutzer Zugriff auf menschenlesbare Informationen
bieten. Mit der zusätzlich angeschlossenen Tastatur bietet sich
die Möglichkeit, eine Interaktion zu realisieren. Weitere
Informationen zum Gerät finden sich in der
Dokumentation zur Peripherie.
Mit dem über Options -> Advanced aufrufbaren
Dialogfenster lassen verschiedene Standardeinstellungen des CSIM
modifizieren. Die eingegebenen Daten werden nicht auf Gültigkeit
geprüft. Unsinnige Eingaben führen daher zu einem
undefinierten Verhalten des Simulators.
In der Sektion CPU settings kann eine Einstellung zur Geschwindigkeit des simulierten Prozessors vorgenommen werden.
In der Sektion Device settings können verschiedene Einstellungen in Bezug auf simulierte Peripheriegeräte vorgenommen werden.
In der Sektion History settings können verschiedene Einstellungen in Bezug auf die Anzeige von Informationen zu abgearbeiteten Befehlen vorgenommen werden.