Class ToyEmulatorKernel

java.lang.Object
  |
  +--ToyEmulatorKernel

public class ToyEmulatorKernel
extends java.lang.Object

Bei der Klasse ToyEmulatorKernel handelt es sich um die eigentliche Hauptklasse des Toy-Programmpaketes. Hier wird der Akkumulator, der Programmzähler sowie das Instruktionsregister verwaltet. Auch auf Speicherinhalte wird von hier aus zugegriffen. Ausserdem existieren Referenzen zu fast allen weiteren Klassen des Programmpaketes. Alle anzuzeigenden Informationen werden an die Klasse ToyEmulatorGUI weitergeleitet.


Constructor Summary
ToyEmulatorKernel()
          Hier wird eine neue GUI-Instanz angelegt, sowie zwei Initialisierungsmethoden aufgerufen.
 
Method Summary
 void arch()
          Diese Methode erstellt oder zerstört das Architekturfenster, je nachdem ob es zur Zeit vorhanden ist oder nicht.
 java.lang.String getAccuValue()
          Methode um den aktuellen Akkumulatorwert zu ermitteln.
 TArchGUI getArchGUI()
          Gibt den aktuellen Wert des Attributes archGUI zurück
 WholeHexNumber getArgumentFromMemory(int adr)
          Liefert Argument (Inhalt ohne erstes Zeichen) der an Nummer adr gelegenen Speicheradresse.
 boolean getgomode()
          Gibt den aktuellen Wert des Attributes gomode zurück
 WholeHexNumber getInsnregFromMemory()
          Diese Methode liefert den Instructioncode aus der aktuellen Speicherzelle.
static java.lang.String getMnemonicFromInt(int i)
          Die Methode liefert die Mnemonic zum übergebenem Integerwert.
 java.lang.String getPCValue()
          Gibt den aktuellen Wert des Programmzählers als String zurück
 int getStepWidth()
          Gibt den aktuellen Wert des Attributes stepWidth zurück
 ToyMemory getToyMemory()
          Gibt den aktuellen Wert des Attributes memory zurück
 void go()
          Alle Instructions werden nacheinander ausgeführt, bis entweder im Quelltext die STOP-Instruktion auftaucht, oder eine beliebige Maustaste gedrückt wird.
 void loadFile(java.lang.String file)
          Einlesen eines neuen Quelltextes aus einer Datei in einen Stringbuffer.
 java.lang.String preCalcAccuValue()
          Ausrechnen des Accu-Wertes, schon bevor dies tatsächlich getan wird.
 void reset()
          Diese Methode bewirkt ein Neuladen der aktuell geladenen Quelltextdatei sowie den Reset des Programmzählers auf die erste Instrktion.
 void setAccuValue(java.lang.String newAccuValue)
          Methode zum aktualisieren des privaten Attributes accumulator.
 void setgomode(boolean mode)
          Methode zum Aktualisieren des privaten Attributes gomode.
 void setMemoryValue(int adr, java.lang.String value)
          Setzt die Speicherstelle Nummer adr auf den Wert value.
 void setPCValue(java.lang.String newPCValue)
          Methode zum Aktualisieren des privaten Attributes pc.
 void setStepWidth(int width)
          Methode zum Aktualisieren des privaten Attributes stepWidth.
 void step()
          Mit der step()-Methode wird in der Quelltextabarbeitung ein, oder eine von stepWidth vorgegebene Anzahl von Schritten, fortgefahren.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ToyEmulatorKernel

public ToyEmulatorKernel()
Hier wird eine neue GUI-Instanz angelegt, sowie zwei Initialisierungsmethoden aufgerufen.
Method Detail

loadFile

public void loadFile(java.lang.String file)
Einlesen eines neuen Quelltextes aus einer Datei in einen Stringbuffer. Dieser wird dann in der Methode loadmemory in den Speicher eingelesen.
Parameters:
file: - Zeichenkette, die den Namen der zu ladenden Datei enthält.

reset

public void reset()
Diese Methode bewirkt ein Neuladen der aktuell geladenen Quelltextdatei sowie den Reset des Programmzählers auf die erste Instrktion. Auch der Speicher wird in den ursprünglichen Zustand zurückversetzt.

preCalcAccuValue

public java.lang.String preCalcAccuValue()
Ausrechnen des Accu-Wertes, schon bevor dies tatsächlich getan wird. Wird für Darstellung im Architekturfenster benötigt.
Returns:
Akkuwert, der nach der nächsten Instruktion entsteht

setAccuValue

public void setAccuValue(java.lang.String newAccuValue)
Methode zum aktualisieren des privaten Attributes accumulator.
Parameters:
newAccuValue: - Neuer Akkumulatorwert

getAccuValue

public java.lang.String getAccuValue()
Methode um den aktuellen Akkumulatorwert zu ermitteln.
Returns:
Akkumulatorwert in Stringrepräsentation

setPCValue

public void setPCValue(java.lang.String newPCValue)
Methode zum Aktualisieren des privaten Attributes pc.
Parameters:
newPCValue: - Neuer Programmzählerwert

getPCValue

public java.lang.String getPCValue()
Gibt den aktuellen Wert des Programmzählers als String zurück
Returns:
pc als string

setMemoryValue

public void setMemoryValue(int adr,
                           java.lang.String value)
Setzt die Speicherstelle Nummer adr auf den Wert value.
Parameters:
adr: - Adresse der zu ändernden Speicherstelle
value: - Neuer Wert der zu ändernden Speicherstelle

setgomode

public void setgomode(boolean mode)
Methode zum Aktualisieren des privaten Attributes gomode.
Parameters:
mode: - Neuer gomode-wert

getgomode

public boolean getgomode()
Gibt den aktuellen Wert des Attributes gomode zurück
Returns:
Wert von gomode

setStepWidth

public void setStepWidth(int width)
Methode zum Aktualisieren des privaten Attributes stepWidth.
Parameters:
width: - Neuer stepWidth-wert

getStepWidth

public int getStepWidth()
Gibt den aktuellen Wert des Attributes stepWidth zurück
Returns:
Wert von stepWidth

getInsnregFromMemory

public WholeHexNumber getInsnregFromMemory()
Diese Methode liefert den Instructioncode aus der aktuellen Speicherzelle.
Returns:
aktuelle Instruktion als Hexadezimalnummer

getMnemonicFromInt

public static java.lang.String getMnemonicFromInt(int i)
Die Methode liefert die Mnemonic zum übergebenem Integerwert.
Parameters:
i: - Instruktionscode
Returns:
Mnemonic als String

getArgumentFromMemory

public WholeHexNumber getArgumentFromMemory(int adr)
Liefert Argument (Inhalt ohne erstes Zeichen) der an Nummer adr gelegenen Speicheradresse.
Parameters:
adr: - Adresse der gesuchten Speicheradresse
Returns:
Argument als Hexadezimalzahl

getToyMemory

public ToyMemory getToyMemory()
Gibt den aktuellen Wert des Attributes memory zurück
Returns:
Wert von memory

getArchGUI

public TArchGUI getArchGUI()
Gibt den aktuellen Wert des Attributes archGUI zurück
Returns:
Wert von archGUI

step

public void step()
Mit der step()-Methode wird in der Quelltextabarbeitung ein, oder eine von stepWidth vorgegebene Anzahl von Schritten, fortgefahren. Abhängig vom Instructioncode wird dann eine der möglichen Anweisungen ausgeführt und anschließend alle Veränderungen sichtbar gemacht

go

public void go()
Alle Instructions werden nacheinander ausgeführt, bis entweder im Quelltext die STOP-Instruktion auftaucht, oder eine beliebige Maustaste gedrückt wird. Zum Ausführen der Instruktionen wird die step-Methode aufgerufen.

arch

public void arch()
Diese Methode erstellt oder zerstört das Architekturfenster, je nachdem ob es zur Zeit vorhanden ist oder nicht. Das Attribut archGUI wird dafür verwendet.