[ CHEAP ]   [ CASM ]   [ CSIM ]   [ CSIM-P ]   [ Impressum ]


Der Simulator CSIM


Allgemeines

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.

Installation

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.

Aufruf

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
            

Oberfläche und Bedienung

Allgemeines

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.

Laufzeitinformationen

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.

  1. Befehlszähler
  2. Hexadezimalwert
  3. menschenlesbare Informationen

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.

Speicher

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.

Virtueller Bildschirm

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.

Optionen

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.


[ CHEAP ]   [ CASM ]   [ CSIM ]   [ CSIM-P ]   [ Impressum ]