Skip navigation

ARES


Page Content:

Elemente des Hauptfensters

Screenshot des Hauptfensters

Warriors (A)

Im Bereich "Warriors" werden die Dateinamen der beiden Gegner festgelegt. Du kannst den Dateinamen direkt eintippen oder mit einer Datei-Auswahlbox festlegen, indem du die Eingabezeile doppelklickst. Ein Doppelklick auf einen der beiden Buchstaben, "A" bzw. "B", links neben der Eingabezeile, löscht deren Inhalt. "New" bzw. "Edit" öffnet den Editor.

Arena (B)

Compile + Run

Ein Klick auf diesen Button lädt die definierten Warriors in den Core und startet die Simulation. Wenn du die Programm nur übersetzen lassen willst, ohne sie zu starten, dann benutze die Funktion "Compile to Core" (Menu "File"), der voreingestellte Shortcut ist Strg-F9.

Tournament

In dem Popupfenster müssen zuerst einmal die gewünschten Kampfprogramme definiert werden. In der Datei-Auswahlbox unter "Add Competitors" ist eine Mehrfachauswahl möglich. Diese Funktion ist inzwischen veraltet und soll in Zukunft durch eine bessere Variante ersetzt werden.

Queues (C)

Dieser Bereich zeigt die Task Queues der laufenden Simulation. Wenn zwei Kämpfer definiert sind, wird die Simulation unterbrochen (BREAK), sobald eine Queue leer wird. Du kannst eine oder mehrere der eingetragenen Adressen durch Anklicken selektieren. Wenn dann der "STEP"-Button benutzt wird, läuft die Simulation solange weiter, bis einer der selektierten Prozesse ganz oben in der Queue steht. Ein Rechtsklick hebt alle Selektionen auf.

Debugger

Control Block (D)

Mit den Schalftflächen "Run", "Break", "Continue" und "Step" wird der Ablauf der Simulation gesteuert. Sofern noch keine Einträge in den Task Queues vorhanden sind, werden die Adressen aus den Texteingabefeldern des "Trace Block" (E) als Startwerte in die Queues übertragen, wenn man auf "Run" klickt. Adressen können in diese Felder direkt eingegeben oder mittels "Set Entry Point" aus dem Monitor (G) übernommen werden. Dabei wird die Adresse der zentrierten Zelle (roter Rahmen) in das Start-Adress-Eingebefeld übertragen, das mit dem Radio-Button links davon selektiert ist. Ist die jeweilige Checkbox "trace program A/B" aktiviert, so wird die Ausführung der Prozesse des jeweiligen Spielers im Monitor verfolgt (Siehe auch 1.3). Während einer Debug-Sitzung kann die Zelle mit der Adresse des aktuellsten Instruction Pointer im Monitor zetriert werden, indem man auf die freie Fläche zwischen Startadresse und "trace Program A/B" klickt. Ist das Programm in den Core compiliert worden, dann wird die Ausführung auch im Editor verfolgt; ist der Editor geöffnet, dann wird die aktuelle Instruktion markiert, wodurch man der Ablauf im Quelltext und im Monitor zugleich beobachten kann.

Monitor (G)

Dieser Bereich zeigt den Inhalt des Core in disassemblierter Form an. Die linke äußere Spalte zeigt die Break- (rot) und Tracepoints (gelb) an; ist eine Zelle hier markiert, dann wird die Simulation unterbrochen, sobald der Befehl in dieser Zelle ausgeführt werden soll. Tracepoints wirken nur, wenn der Prozess mittels Trace (E) verfolgt wird. Breakpoints können im Quelltext mittels ;break gesetzt werden. Break- und Tracepoints können durch Anklicken des Kreises im Monitor auch während der Simulation verändert werden. Wenn sich der Mauscursor über dem Monitor befindet, dann kann man mit dem Mausrad scrollen.

Die Farben der Zellen im Monitor zeigen die "Ownership" an - sie werden eingefärbt, nachdem ein Warrior darauf zugegriffen hat. Des Weiteren werden die aktuellen Schreib/Lese/Exekutionszugriffe visualisiert, indem die jeweiligen Zellen farbig hinterlegt werden. Zellen, die vom A-Operanden referenziert wurden, werden in einer helleren Abstufung der Spielerfarbe hinterlegt, Zellen des B-Operanden etwas dünkler. Der zuletzt ausgeführte Befehl wird mit dunkler Spielerfarbe, den nächste Befehl (Topmost queued IP) mit rötlicher Hintergrundfarbe markiert. Ein einfacher Klick mit der linken Maustaste zeigt A/B-Pointer und A/B-value der entsprechenden Zelle in der Statuszeile an.

Die Cursortasten, [Bild ↑] und [Bild ↓] sowie das Mausrad scrollen den Inhalt des Monitors. Man kann die zentrierte Zelle (roter Rahmen) editieren, nachdem man die [Return]-Taste gedrückt hat, Abstände dürfen dabei völlig entfallen. Mit der rechten Maustaste erhält man ein Kontextmenu, das die angeklickte Zelle als Startadresse im Control Block setzen, wie auch eine Zelle den Watches hinzufügen läßt.

Eine Funktionen ist nur über das Kontextmenu erreichbar: "Show Corresponding Line in Editor". Wenn die Zelle unter dem Maus-Cursor einen Befehl beinhaltet, der durch Übersetzung aus einer Datei entstanden ist, dann kann man die entsprechende Zeile im Quelltexteditor anzeigen lassen.

Watches (H)

Um besseren Überblick über die "Variablen" eines Programmes zu haben, kann man in diesem Bereich ausgesuchte Zellen des Core anzeigen lassen. Zellen, die hier angezeigt werden, können ebenfalls als Break Conditions verwendet werden; diese werden durch einen Klick auf die Schaltfläche "Edit Watch" festgelegt. So kann man ein Programm laufen lassen, bis eine bestimmte Situation eintritt. Bestimmte Instruktionen können im Quellcode mit der Direktive ;watch markiert werden. Bei der Assemblierung werden die entsprechenden Zellen des Core automatisch in die Watches-Liste eingetragen. Solange die Watches ausgeblendet sind, werden die Break Conditions ignoriert.

P-Space (I)

Hier wird der Inhalt der P-Spaces angezeigt.

Core View (J)

Der Core View bietet einen groben Überblick über die Geschehnisse im Speicher. Wenn man mit der Maus auf eine Zelle zeigt, wird der Inhalt dieser Zelle neben dem Mauscursor eingeblendet. Ein einzelner Klick in den Core View zeigt die entsprechende Zelle im Monitor, ein Doppelklick läßt den Inhalt der Zelle editieren. Ein Klick mit der Rechten Maustaste schaltet in den "fast mode" um, alle Anzeigen des Debuggers werden ausgeblendet und die Core-Animation der Speicherzugriffe wird vorrübergehend auf schnell gestellt. Ab der Zoom-Stufe 10x können zu den farbigen Quadraten auch Buchstaben angezeigt werden, die die Instruktion repräsentieren, die in der jeweiligen Zelle gespeichert ist. Die Hintergrundfarbe zeigt an, welches Programm zuletzt auf die Zelle zugegriffen hat, die Farbe des Buchstaben zeigt an, wer der "Owner" dieser Zelle ist: Ein Programm "besitzt" eine Zelle, wenn die Instrukion zum Übersetzten Programmcode gehört, oder eine Kopie mittels MOV aus diesem ursprünglichen Code ist. Wenn sich der Mauscursor über dem Core View befindet, und nur ein Ausschnitt des Core angezeigt wird, dann kann man mit dem Mausrad scrollen.

Statuszeile (K)

Während der Programmausführung wird hier angezeigt, wieviele Zyklen bereits durchlaufen wurden, wie auch die Anzahl der Prozesse, Kills und Suicides der jeweiligen Warriors. Des Weiteren wird am rechten Ende der Statuszeile angezeigt, welche Schalter ein- bzw. ausgeschaltet sind. Die Buchstaben entsprechen den voreingestellten Shortcuts. Großbuchstaben zeigen an, daß die Funktion aktiviert ist.



Content Management:

μCMS α1.6