diff --git a/.idea/misc.xml b/.idea/misc.xml
index bfbb0ff..e0844bc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/programs/fill.mia b/programs/fill.mia
index f7ce768..d9ca8c2 100644
--- a/programs/fill.mia
+++ b/programs/fill.mia
@@ -12,3 +12,4 @@ Num: word 522
+s
\ No newline at end of file
diff --git a/programs/test.mia b/programs/test.mia
new file mode 100644
index 0000000..e69de29
diff --git a/src/Anzeige.java b/src/Anzeige.java
index 5f560d6..1e8568d 100644
--- a/src/Anzeige.java
+++ b/src/Anzeige.java
@@ -13,11 +13,7 @@
import com.apple.eawt.AppEvent.OpenFilesEvent;
import com.apple.eawt.AppEvent.QuitEvent;
*/
-import com.formdev.flatlaf.FlatDarkLaf;
-import com.formdev.flatlaf.FlatIntelliJLaf;
import com.formdev.flatlaf.FlatLightLaf;
-import com.formdev.flatlaf.FlatPropertiesLaf;
-import javafx.scene.input.KeyCode;
import res.R;
import java.awt.event.ActionEvent;
@@ -227,7 +223,7 @@ void FenstereintragEntfernen(int var1) {
this.windowsMenu.getItem(var1 + 3).setText(var2.TitelGeben());
}
- void Aktivieren() {
+ void show() {
if (!this.window.isVisible()) {
this.window.setVisible(true);
}
@@ -235,7 +231,7 @@ void Aktivieren() {
this.window.toFront();
}
- void Ausblenden() {
+ void hide() {
this.window.setVisible(false);
}
@@ -254,7 +250,7 @@ class FensterAktion implements ActionListener {
}
public void actionPerformed(ActionEvent var1) {
- this.anzeige.Aktivieren();
+ this.anzeige.show();
}
}
}
diff --git a/src/AssemblerAnzeige.java b/src/AssemblerAnzeige.java
index 1c8f233..415a4dc 100644
--- a/src/AssemblerAnzeige.java
+++ b/src/AssemblerAnzeige.java
@@ -3,6 +3,8 @@
// (powered by Fernflower decompiler)
//
+import res.R;
+
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
@@ -59,11 +61,11 @@ public void actionPerformed(ActionEvent var1) {
public void actionPerformed(ActionEvent var1) {
}
});
- JMenuItem var1 = new JMenuItem("Ausschneiden", 88);
+ JMenuItem var1 = new JMenuItem(R.getResources().getString("edit_menu_cut"), 88);
var1.setAccelerator(KeyStroke.getKeyStroke(88, 256));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Kopieren", 67);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_copy"), 67);
var1.setAccelerator(KeyStroke.getKeyStroke(67, 256));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
@@ -71,11 +73,11 @@ public void actionPerformed(ActionEvent var1) {
}
});
this.editMenu.add(var1);
- var1 = new JMenuItem("Einfügen", 86);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_paste"), 86);
var1.setAccelerator(KeyStroke.getKeyStroke(86, 256));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Alles auswählen", 65);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_select_all"), 65);
var1.setAccelerator(KeyStroke.getKeyStroke(65, 256));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
diff --git a/src/Kontrolleur.java b/src/Controller.java
similarity index 71%
rename from src/Kontrolleur.java
rename to src/Controller.java
index 224b945..5da8b94 100644
--- a/src/Kontrolleur.java
+++ b/src/Controller.java
@@ -8,29 +8,31 @@
import model.SpeicherLesen;
import model.minilanguage.ParserEinfach;
import model.minilanguage.ParserErweitert;
+import res.R;
-class Kontrolleur implements KontrolleurInterface {
+class Controller implements KontrolleurInterface {
private Cpu cpu;
- private Cpu cpuEinfach;
+ private Cpu cpuSimple;
private Cpu cpuDetail;
- private FensterVerwaltung verwaltung;
+ private WindowManager windowManager;
private boolean erweitert;
- Kontrolleur(Cpu cpuSimple, Cpu cpuDetailed) {
- this.cpuEinfach = cpuSimple;
- this.cpuDetail = cpuDetailed;
- this.cpu = cpuDetailed;
- this.verwaltung = null;
+ Controller(Cpu cpuSimple, Cpu cpuDetail) {
+ this.cpuSimple = cpuSimple;
+ this.cpuDetail = cpuDetail;
+ this.cpu = cpuDetail;
+ this.windowManager = null;
this.erweitert = false;
}
- void VerwaltungSetzen(FensterVerwaltung var1) {
- this.verwaltung = var1;
- var1.CpuAnzeigeWählen(true, false);
+ void setWindowManager(WindowManager manager) {
+ this.windowManager = manager;
+
+ manager.setCpuDisplayMode(true, false);
}
public void CpuHexaSetzen(boolean var1) {
- this.cpuEinfach.HexaSetzen(var1);
+ this.cpuSimple.HexaSetzen(var1);
this.cpuDetail.HexaSetzen(var1);
}
@@ -46,6 +48,7 @@ public boolean assemble(String assemblyText, Editor editor) {
if (fehlerVerwaltung.FehlerAufgetreten()) {
editor.FehlerAnzeigen(fehlerVerwaltung.FehlertextMelden(), fehlerVerwaltung.FehlerpositionMelden());
} else {
+ editor.displayStatusMessage(R.getResources().getString("editor_assembly_success"));
this.cpu.ZurückSetzen();
}
@@ -77,7 +80,7 @@ public boolean AssemblertextZeigen(String var1, Editor var2) {
var2.FehlerAnzeigen(var3.FehlertextMelden(), var3.FehlerpositionMelden());
} else {
AssemblerAnzeige var4 = new AssemblerAnzeige(this, var5);
- this.verwaltung.EditorEintragen(var4);
+ this.windowManager.EditorEintragen(var4);
}
return !var3.FehlerAufgetreten();
@@ -105,55 +108,55 @@ public void MikroSchritt() {
public void NeuAusführen() {
Editor editor = new Editor(this);
- this.verwaltung.EditorEintragen(editor);
- editor.Aktivieren();
+ this.windowManager.EditorEintragen(editor);
+ editor.show();
}
public void ÖffnenAusführen() {
Editor editor = new Editor(this);
- this.verwaltung.EditorEintragen(editor);
+ this.windowManager.EditorEintragen(editor);
editor.DateiLesen();
}
public void ÖffnenAusführen(String path) {
Editor editor = new Editor(this);
- this.verwaltung.EditorEintragen(editor);
+ this.windowManager.EditorEintragen(editor);
editor.DateiLesen(path);
}
public void SchließenAusführen(Anzeige var1) {
- this.verwaltung.EditorAustragen(var1);
+ this.windowManager.EditorAustragen(var1);
}
public void FensterTitelÄndernWeitergeben(Anzeige var1) {
- this.verwaltung.EditorTitelÄndern(var1);
+ this.windowManager.EditorTitelÄndern(var1);
}
public void CpuFensterAuswählen() {
- this.verwaltung.CpuFensterAuswählen();
+ this.windowManager.CpuFensterAuswählen();
}
public void SpeicherFensterAuswählen() {
- this.verwaltung.SpeicherFensterAuswählen();
+ this.windowManager.SpeicherFensterAuswählen();
}
public void EinfacheDarstellungAnzeigen() {
- this.cpu.Übertragen(this.cpuEinfach);
- this.cpu = this.cpuEinfach;
- this.verwaltung.CpuAnzeigeWählen(false, this.erweitert);
+ this.cpu.Übertragen(this.cpuSimple);
+ this.cpu = this.cpuSimple;
+ this.windowManager.setCpuDisplayMode(false, this.erweitert);
}
public void DetailDarstellungAnzeigen() {
this.cpu.Übertragen(this.cpuDetail);
this.cpu = this.cpuDetail;
- this.verwaltung.CpuAnzeigeWählen(true, this.erweitert);
+ this.windowManager.setCpuDisplayMode(true, this.erweitert);
}
public void ErweiterungenEinschalten(boolean var1) {
this.erweitert = var1;
this.cpu.ErweitertSetzen(var1);
this.cpu.ZurückSetzen();
- this.verwaltung.CpuAnzeigeWählen(this.cpu == this.cpuDetail, this.erweitert);
+ this.windowManager.setCpuDisplayMode(this.cpu == this.cpuDetail, this.erweitert);
}
public void ZeitschrankeSetzen(int var1) {
@@ -161,7 +164,7 @@ public void ZeitschrankeSetzen(int var1) {
}
public void BeendenAusführen() {
- this.verwaltung.BeendenMitteilen();
+ this.windowManager.BeendenMitteilen();
System.exit(0);
}
}
diff --git a/src/CpuAnzeige.java b/src/CpuDisplay.java
similarity index 96%
rename from src/CpuAnzeige.java
rename to src/CpuDisplay.java
index 3509365..cc21fd4 100644
--- a/src/CpuAnzeige.java
+++ b/src/CpuDisplay.java
@@ -14,7 +14,7 @@
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
-class CpuAnzeige extends Anzeige implements CpuBeobachter {
+class CpuDisplay extends Anzeige implements CpuBeobachter {
private JLabel labelA;
private JLabel labelPC;
private JLabel labelIR1;
@@ -43,7 +43,7 @@ class CpuAnzeige extends Anzeige implements CpuBeobachter {
protected JButton einzelButton;
JCheckBoxMenuItem erweiterungenItem;
- CpuAnzeige(KontrolleurInterface var1) {
+ CpuDisplay(KontrolleurInterface var1) {
super(var1);
}
@@ -187,7 +187,7 @@ protected void initLayout() {
this.window.add(this.ausfuehrenButton);
this.ausfuehrenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.Ausführen();
+ CpuDisplay.this.controller.Ausführen();
}
});
this.einzelButton = new JButton("Einzelschritt");
@@ -196,7 +196,7 @@ public void actionPerformed(ActionEvent var1) {
this.window.add(this.einzelButton);
this.einzelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.EinzelSchritt();
+ CpuDisplay.this.controller.EinzelSchritt();
}
});
@@ -408,7 +408,7 @@ protected void initMenus() {
var1.setAccelerator(KeyStroke.getKeyStroke(69, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.EinfacheDarstellungAnzeigen();
+ CpuDisplay.this.controller.EinfacheDarstellungAnzeigen();
}
});
this.toolsMenu.add(var1);
@@ -416,7 +416,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(68, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.DetailDarstellungAnzeigen();
+ CpuDisplay.this.controller.DetailDarstellungAnzeigen();
}
});
this.toolsMenu.add(var1);
@@ -425,7 +425,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(65, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- Zeitschranke.show(CpuAnzeige.this.controller);
+ SetTimeoutDialog.show(CpuDisplay.this.controller);
}
});
this.toolsMenu.add(var1);
@@ -434,7 +434,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(82, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.ZurückSetzen();
+ CpuDisplay.this.controller.ZurückSetzen();
}
});
this.toolsMenu.add(var1);
@@ -444,7 +444,7 @@ public void actionPerformed(ActionEvent var1) {
this.erweiterungenItem.setSelected(false);
this.erweiterungenItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeige.this.controller.ErweiterungenEinschalten(CpuAnzeige.this.erweiterungenItem.isSelected());
+ CpuDisplay.this.controller.ErweiterungenEinschalten(CpuDisplay.this.erweiterungenItem.isSelected());
}
});
this.toolsMenu.add(this.erweiterungenItem);
diff --git a/src/CpuAnzeigeErweitert.java b/src/CpuExtendedDisplay.java
similarity index 97%
rename from src/CpuAnzeigeErweitert.java
rename to src/CpuExtendedDisplay.java
index f80ea7e..5d7df5e 100644
--- a/src/CpuAnzeigeErweitert.java
+++ b/src/CpuExtendedDisplay.java
@@ -6,7 +6,7 @@
import javax.swing.JLabel;
import javax.swing.border.LineBorder;
-class CpuAnzeigeErweitert extends CpuAnzeige {
+class CpuExtendedDisplay extends CpuDisplay {
private JLabel labelSP;
private JLabel labelAdr4;
private JLabel labelAdr5;
@@ -14,7 +14,7 @@ class CpuAnzeigeErweitert extends CpuAnzeige {
private JLabel labelMem5;
private JLabel spLabel;
- CpuAnzeigeErweitert(KontrolleurInterface controller) {
+ CpuExtendedDisplay(KontrolleurInterface controller) {
super(controller);
}
diff --git a/src/CpuAnzeigeDetail.java b/src/CpuGraphicalDisplay.java
similarity index 90%
rename from src/CpuAnzeigeDetail.java
rename to src/CpuGraphicalDisplay.java
index cde2fc4..0879713 100644
--- a/src/CpuAnzeigeDetail.java
+++ b/src/CpuGraphicalDisplay.java
@@ -12,13 +12,13 @@
import java.awt.event.ActionListener;
import javax.swing.*;
-class CpuAnzeigeDetail extends Anzeige implements CpuBeobachter {
+class CpuGraphicalDisplay extends Anzeige implements CpuBeobachter {
private CpuBild bild;
private CpuBildGroß bildgross;
private JPanel content;
private JCheckBoxMenuItem erweiterungenItem;
- CpuAnzeigeDetail(KontrolleurInterface var1) {
+ CpuGraphicalDisplay(KontrolleurInterface var1) {
super(var1);
}
@@ -39,21 +39,21 @@ protected void initLayout() {
var1.add(var2);
var2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.Ausführen();
+ CpuGraphicalDisplay.this.controller.Ausführen();
}
});
var2 = new JButton(R.getResources().getString("cpu_step"));
var1.add(var2);
var2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.EinzelSchritt();
+ CpuGraphicalDisplay.this.controller.EinzelSchritt();
}
});
var2 = new JButton(R.getResources().getString("cpu_micro_step"));
var1.add(var2);
var2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.MikroSchritt();
+ CpuGraphicalDisplay.this.controller.MikroSchritt();
}
});
this.content.doLayout();
@@ -109,7 +109,7 @@ protected void initMenus() {
var1.setAccelerator(KeyStroke.getKeyStroke(69, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.EinfacheDarstellungAnzeigen();
+ CpuGraphicalDisplay.this.controller.EinfacheDarstellungAnzeigen();
}
});
this.toolsMenu.add(var1);
@@ -117,7 +117,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(68, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.DetailDarstellungAnzeigen();
+ CpuGraphicalDisplay.this.controller.DetailDarstellungAnzeigen();
}
});
this.toolsMenu.add(var1);
@@ -126,7 +126,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(65, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- Zeitschranke.show(CpuAnzeigeDetail.this.controller);
+ SetTimeoutDialog.show(CpuGraphicalDisplay.this.controller);
}
});
this.toolsMenu.add(var1);
@@ -135,7 +135,7 @@ public void actionPerformed(ActionEvent var1) {
var1.setAccelerator(KeyStroke.getKeyStroke(82, kommando + 512));
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.ZurückSetzen();
+ CpuGraphicalDisplay.this.controller.ZurückSetzen();
}
});
this.toolsMenu.add(var1);
@@ -145,7 +145,7 @@ public void actionPerformed(ActionEvent var1) {
this.erweiterungenItem.setSelected(false);
this.erweiterungenItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
- CpuAnzeigeDetail.this.controller.ErweiterungenEinschalten(CpuAnzeigeDetail.this.erweiterungenItem.isSelected());
+ CpuGraphicalDisplay.this.controller.ErweiterungenEinschalten(CpuGraphicalDisplay.this.erweiterungenItem.isSelected());
}
});
this.toolsMenu.add(this.erweiterungenItem);
diff --git a/src/FensterVerwaltung.java b/src/FensterVerwaltung.java
deleted file mode 100644
index e4f1022..0000000
--- a/src/FensterVerwaltung.java
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by Fernflower decompiler)
-//
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-class FensterVerwaltung {
- private ArrayList offen = new ArrayList();
- private Anzeige cpuanzeige;
- private Anzeige cpuanzeigeEinfach;
- private Anzeige cpuanzeigeDetail;
- private Anzeige cpuanzeigeEinfachErweitert;
- private Anzeige speicheranzeige;
-
- FensterVerwaltung(Anzeige cpuDisplay, Anzeige cpuDisplay2, Anzeige cpuDisplayAdvanced, Anzeige storageDisplay) {
- this.cpuanzeige = cpuDisplay;
- this.cpuanzeigeEinfach = cpuDisplay;
- this.cpuanzeigeDetail = cpuDisplay2;
- this.cpuanzeigeEinfachErweitert = cpuDisplayAdvanced;
- cpuDisplay2.Ausblenden();
- cpuDisplayAdvanced.Ausblenden();
- this.speicheranzeige = storageDisplay;
- }
-
- void EditorEintragen(Anzeige var1) {
- int var2;
- for(var2 = 0; var2 < this.offen.size(); ++var2) {
- var1.FenstereintragHinzufügen(var2, (Anzeige)this.offen.get(var2));
- }
-
- this.offen.add(var1);
- var2 = this.offen.indexOf(var1);
- Iterator var3 = this.offen.iterator();
-
- while(var3.hasNext()) {
- Anzeige var4 = (Anzeige)var3.next();
- var4.FenstereintragHinzufügen(var2, var1);
- }
-
- this.cpuanzeige.FenstereintragHinzufügen(var2, var1);
- this.speicheranzeige.FenstereintragHinzufügen(var2, var1);
- }
-
- void EditorAustragen(Anzeige var1) {
- int var2 = this.offen.indexOf(var1);
- this.offen.remove(var1);
- Iterator var3 = this.offen.iterator();
-
- while(var3.hasNext()) {
- Anzeige var4 = (Anzeige)var3.next();
- var4.FenstereintragEntfernen(var2);
- }
-
- this.cpuanzeige.FenstereintragEntfernen(var2);
- this.speicheranzeige.FenstereintragEntfernen(var2);
- }
-
- void EditorTitelÄndern(Anzeige var1) {
- int var2 = this.offen.indexOf(var1);
- Iterator var3 = this.offen.iterator();
-
- while(var3.hasNext()) {
- Anzeige var4 = (Anzeige)var3.next();
- var4.FenstereintragÄndern(var2, var1);
- }
-
- this.cpuanzeige.FenstereintragÄndern(var2, var1);
- this.speicheranzeige.FenstereintragÄndern(var2, var1);
- }
-
- void CpuFensterAuswählen() {
- this.cpuanzeige.Aktivieren();
- }
-
- void SpeicherFensterAuswählen() {
- this.speicheranzeige.Aktivieren();
- }
-
- void CpuAnzeigeWählen(boolean var1, boolean var2) {
- if (var1) {
- this.cpuanzeige = this.cpuanzeigeDetail;
- this.cpuanzeigeDetail.Aktivieren();
- this.cpuanzeigeEinfach.Ausblenden();
- this.cpuanzeigeEinfachErweitert.Ausblenden();
- } else {
- if (var2) {
- this.cpuanzeige = this.cpuanzeigeEinfachErweitert;
- this.cpuanzeigeEinfachErweitert.Aktivieren();
- this.cpuanzeigeEinfach.Ausblenden();
- } else {
- this.cpuanzeige = this.cpuanzeigeEinfach;
- this.cpuanzeigeEinfach.Aktivieren();
- this.cpuanzeigeEinfachErweitert.Ausblenden();
- }
-
- this.cpuanzeigeDetail.Ausblenden();
- ((CpuAnzeige)this.cpuanzeige).erweiterungenItem.setSelected(var2);
- }
-
- }
-
- void BeendenMitteilen() {
- Iterator var1 = this.offen.iterator();
-
- while(var1.hasNext()) {
- Anzeige var2 = (Anzeige)var1.next();
- var2.BeendenMitteilen();
- }
-
- }
-}
diff --git a/src/Minimaschine.java b/src/Minimaschine.java
index 55059fb..a513d15 100644
--- a/src/Minimaschine.java
+++ b/src/Minimaschine.java
@@ -10,24 +10,25 @@ private Minimaschine(String[] args) {
Cpu cpuEinfach = Cpu.CpuErzeugen("einfach");
Cpu cpuDetail = Cpu.CpuErzeugen("detail");
- Kontrolleur kontrolleur = new Kontrolleur(cpuEinfach, cpuDetail);
- CpuAnzeige cpuAnzeige = new CpuAnzeige(kontrolleur);
- CpuAnzeigeDetail cpuAnzeigeDetail = new CpuAnzeigeDetail(kontrolleur);
- CpuAnzeigeErweitert cpuAnzeigeErweitert = new CpuAnzeigeErweitert(kontrolleur);
- SpeicherAnzeige speicherAnzeige = new SpeicherAnzeige(kontrolleur);
+ Controller controller = new Controller(cpuEinfach, cpuDetail);
- FensterVerwaltung windowManagement = new FensterVerwaltung(cpuAnzeige, cpuAnzeigeDetail, cpuAnzeigeErweitert, speicherAnzeige);
- kontrolleur.VerwaltungSetzen(windowManagement);
+ CpuDisplay cpuDisplay = new CpuDisplay(controller);
+ CpuGraphicalDisplay cpuAnzeigeDetail = new CpuGraphicalDisplay(controller);
+ CpuExtendedDisplay cpuExtendedDisplay = new CpuExtendedDisplay(controller);
+ SpeicherAnzeige speicherAnzeige = new SpeicherAnzeige(controller);
- cpuEinfach.Registrieren(cpuAnzeige);
+ WindowManager windowManagement = new WindowManager(cpuDisplay, cpuAnzeigeDetail, cpuExtendedDisplay, speicherAnzeige);
+ controller.setWindowManager(windowManagement);
+
+ cpuEinfach.Registrieren(cpuDisplay);
cpuDetail.Registrieren(cpuAnzeigeDetail);
- cpuEinfach.Registrieren(cpuAnzeigeErweitert);
+ cpuEinfach.Registrieren(cpuExtendedDisplay);
cpuEinfach.SpeicherbeobachterSetzen(speicherAnzeige);
if (!Anzeige.IstMacOS()) {
for(int var10 = 0; var10 < args.length; ++var10) {
- kontrolleur.ÖffnenAusführen(args[var10]);
+ controller.ÖffnenAusführen(args[var10]);
}
}
diff --git a/src/Zeitschranke.java b/src/SetTimeoutDialog.java
similarity index 86%
rename from src/Zeitschranke.java
rename to src/SetTimeoutDialog.java
index c5311e9..3a4a8c8 100644
--- a/src/Zeitschranke.java
+++ b/src/SetTimeoutDialog.java
@@ -18,12 +18,12 @@
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
-class Zeitschranke {
+class SetTimeoutDialog {
private JDialog dialog;
- private static Zeitschranke timeoutDialog = null;
+ private static SetTimeoutDialog timeoutDialog = null;
private KontrolleurInterface kontrolleur;
- private Zeitschranke(KontrolleurInterface controller) {
+ private SetTimeoutDialog(KontrolleurInterface controller) {
this.kontrolleur = controller;
this.dialog = new JDialog((JFrame)null);
this.dialog.setTitle(R.getResources().getString("dialog_timeout_title"));
@@ -54,8 +54,8 @@ private Zeitschranke(KontrolleurInterface controller) {
public void actionPerformed(ActionEvent var1) {
try {
int var2 = Integer.parseInt(inputField.getText());
- Zeitschranke.this.kontrolleur.ZeitschrankeSetzen(var2);
- Zeitschranke.this.dialog.setVisible(false);
+ SetTimeoutDialog.this.kontrolleur.ZeitschrankeSetzen(var2);
+ SetTimeoutDialog.this.dialog.setVisible(false);
} catch (Exception var3) {
inputField.selectAll();
}
@@ -71,7 +71,7 @@ public void actionPerformed(ActionEvent var1) {
static void show(KontrolleurInterface controller) {
if (timeoutDialog == null) {
- timeoutDialog = new Zeitschranke(controller);
+ timeoutDialog = new SetTimeoutDialog(controller);
}
timeoutDialog.dialog.setLocationRelativeTo(null);
timeoutDialog.dialog.setVisible(true);
diff --git a/src/SpeicherAnzeige.java b/src/SpeicherAnzeige.java
index 6db9b3e..2cc07c9 100644
--- a/src/SpeicherAnzeige.java
+++ b/src/SpeicherAnzeige.java
@@ -15,13 +15,9 @@
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JFrame;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.KeyStroke;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
@@ -67,7 +63,7 @@ public int getRowCount() {
public Object getValueAt(int var1, int var2) {
if (var2 == 0) {
- return new Integer(var1 * 10);
+ return var1 * 10;
} else {
int var3 = var1 * 10 + (var2 - 1);
if (var3 < 65536) {
@@ -158,9 +154,12 @@ public Component getTableCellRendererComponent(JTable var1, Object var2, boolean
return var7;
}
});
+
+ this.table.getTableHeader().setReorderingAllowed(false);
this.table.getTableHeader().setFont(this.table.getTableHeader().getFont().deriveFont(1));
this.scrollpane = new JScrollPane(this.table);
this.tableGross = new JTable(this.dataModel);
+ this.table.getTableHeader().setReorderingAllowed(false);
this.tableGross.setRowHeight(30);
for(var1 = 0; var1 < 11; ++var1) {
@@ -209,33 +208,33 @@ protected void initMenus() {
this.saveMenuItem.setEnabled(false);
this.saveAsMenuItem.setEnabled(false);
this.printMenuItem.setEnabled(false);
- JMenuItem var1 = new JMenuItem("Widerrufen", 90);
+ JMenuItem var1 = new JMenuItem(R.getResources().getString("edit_menu_undo"), 90);
var1.setAccelerator(KeyStroke.getKeyStroke(90, kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Wiederholen");
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_redo"));
var1.setAccelerator(KeyStroke.getKeyStroke(90, 64 + kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
this.editMenu.addSeparator();
- var1 = new JMenuItem("Ausschneiden", 88);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_cut"), 88);
var1.setAccelerator(KeyStroke.getKeyStroke(88, kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Kopieren", 67);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_copy"), 67);
var1.setAccelerator(KeyStroke.getKeyStroke(67, kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Einfügen", 86);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_paste"), 86);
var1.setAccelerator(KeyStroke.getKeyStroke(86, kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
- var1 = new JMenuItem("Alles auswählen", 65);
+ var1 = new JMenuItem(R.getResources().getString("edit_menu_select_all"), 65);
var1.setAccelerator(KeyStroke.getKeyStroke(65, kommando));
var1.setEnabled(false);
this.editMenu.add(var1);
this.toolsMenu.addSeparator();
- var1 = new JMenuItem("Speicher löschen", 65);
+ var1 = new JMenuItem(R.getResources().getString("memory_clear_memory"), 65);
var1.setEnabled(true);
var1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent var1) {
@@ -244,7 +243,7 @@ public void actionPerformed(ActionEvent var1) {
});
this.toolsMenu.add(var1);
this.toolsMenu.addSeparator();
- this.hexaItem = new JCheckBoxMenuItem("Darstellung hexadezimal");
+ this.hexaItem = new JCheckBoxMenuItem(R.getResources().getString("memory_display_hex"));
this.hexaItem.setEnabled(true);
this.hexaItem.setSelected(false);
this.hexaItem.addActionListener(new ActionListener() {
@@ -258,7 +257,7 @@ public void actionPerformed(ActionEvent var1) {
SpeicherAnzeige.this.controller.CpuInvalidieren();
}
});
- this.opcodeItem = new JCheckBoxMenuItem("Opcodes anzeigen");
+ this.opcodeItem = new JCheckBoxMenuItem(R.getResources().getString("memory_display_op"));
this.opcodeItem.setEnabled(true);
this.opcodeItem.setSelected(false);
this.opcodeItem.addActionListener(new ActionListener() {
@@ -273,7 +272,7 @@ public void actionPerformed(ActionEvent var1) {
this.toolsMenu.add(this.hexaItem);
this.toolsMenu.add(this.opcodeItem);
this.toolsMenu.addSeparator();
- this.editItem = new JCheckBoxMenuItem("Speicher editieren");
+ this.editItem = new JCheckBoxMenuItem(R.getResources().getString("memory_edit"));
this.editItem.setEnabled(true);
this.editItem.setSelected(false);
this.editItem.addActionListener(new ActionListener() {
diff --git a/src/WindowManager.java b/src/WindowManager.java
new file mode 100644
index 0000000..1aa34cb
--- /dev/null
+++ b/src/WindowManager.java
@@ -0,0 +1,114 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by Fernflower decompiler)
+//
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class WindowManager {
+ private ArrayList offen = new ArrayList();
+ private Anzeige cpuDisplay;
+ private Anzeige cpuSimpleDisplay;
+ private Anzeige cpuGraphicalDisplay;
+ private Anzeige cpuSimpleExtendedDisplay;
+ private Anzeige speicheranzeige;
+
+ WindowManager(Anzeige cpuDisplay, Anzeige cpuDisplay2, Anzeige cpuDisplayAdvanced, Anzeige storageDisplay) {
+ this.cpuDisplay = cpuDisplay;
+ this.cpuSimpleDisplay = cpuDisplay;
+ this.cpuGraphicalDisplay = cpuDisplay2;
+ this.cpuSimpleExtendedDisplay = cpuDisplayAdvanced;
+ cpuDisplay2.hide();
+ cpuDisplayAdvanced.hide();
+ this.speicheranzeige = storageDisplay;
+ }
+
+ void EditorEintragen(Anzeige var1) {
+ int var2;
+ for(var2 = 0; var2 < this.offen.size(); ++var2) {
+ var1.FenstereintragHinzufügen(var2, (Anzeige)this.offen.get(var2));
+ }
+
+ this.offen.add(var1);
+ var2 = this.offen.indexOf(var1);
+ Iterator var3 = this.offen.iterator();
+
+ while(var3.hasNext()) {
+ Anzeige var4 = (Anzeige)var3.next();
+ var4.FenstereintragHinzufügen(var2, var1);
+ }
+
+ this.cpuDisplay.FenstereintragHinzufügen(var2, var1);
+ this.speicheranzeige.FenstereintragHinzufügen(var2, var1);
+ }
+
+ void EditorAustragen(Anzeige var1) {
+ int var2 = this.offen.indexOf(var1);
+ this.offen.remove(var1);
+ Iterator var3 = this.offen.iterator();
+
+ while(var3.hasNext()) {
+ Anzeige var4 = (Anzeige)var3.next();
+ var4.FenstereintragEntfernen(var2);
+ }
+
+ this.cpuDisplay.FenstereintragEntfernen(var2);
+ this.speicheranzeige.FenstereintragEntfernen(var2);
+ }
+
+ void EditorTitelÄndern(Anzeige var1) {
+ int var2 = this.offen.indexOf(var1);
+ Iterator var3 = this.offen.iterator();
+
+ while(var3.hasNext()) {
+ Anzeige var4 = (Anzeige)var3.next();
+ var4.FenstereintragÄndern(var2, var1);
+ }
+
+ this.cpuDisplay.FenstereintragÄndern(var2, var1);
+ this.speicheranzeige.FenstereintragÄndern(var2, var1);
+ }
+
+ void CpuFensterAuswählen() {
+ this.cpuDisplay.show();
+ }
+
+ void SpeicherFensterAuswählen() {
+ this.speicheranzeige.show();
+ }
+
+ void setCpuDisplayMode(boolean graphical, boolean extended) {
+ if (graphical) {
+ this.cpuDisplay = this.cpuGraphicalDisplay;
+ this.cpuGraphicalDisplay.show();
+ this.cpuSimpleDisplay.hide();
+ this.cpuSimpleExtendedDisplay.hide();
+
+ } else {
+ if (extended) {
+ this.cpuDisplay = this.cpuSimpleExtendedDisplay;
+ this.cpuSimpleExtendedDisplay.show();
+ this.cpuSimpleDisplay.hide();
+ } else {
+ this.cpuDisplay = this.cpuSimpleDisplay;
+ this.cpuSimpleDisplay.show();
+ this.cpuSimpleExtendedDisplay.hide();
+ }
+
+ this.cpuGraphicalDisplay.hide();
+ ((CpuDisplay)this.cpuDisplay).erweiterungenItem.setSelected(extended);
+ }
+
+ }
+
+ void BeendenMitteilen() {
+ for(Anzeige display : this.offen) {
+ display.BeendenMitteilen();
+ }
+
+
+
+
+ }
+}
diff --git a/src/model/Cpu.java b/src/model/Cpu.java
index 2d2b67d..49240e3 100644
--- a/src/model/Cpu.java
+++ b/src/model/Cpu.java
@@ -129,28 +129,29 @@ private String HexaString(String var1) {
return var1;
}
- protected void Melden(String var1, String var2, String var3, String var4, String var5, boolean var6, int var7, int var8, int var9, String var10) {
+ protected void Melden(String data, String address, String alu1, String alu2, String alu3, boolean var6, int var7, int var8, int var9, String microStepName) {
this.letzterDa = true;
- this.datenWert_letzter = var1;
- this.adressWert_letzter = var2;
- this.alu1_letzter = var3;
- this.alu2_letzter = var4;
- this.alu3_letzter = var5;
- this.mikro_letzter = var10;
+ this.datenWert_letzter = data;
+ this.adressWert_letzter = address;
+ this.alu1_letzter = alu1;
+ this.alu2_letzter = alu2;
+ this.alu3_letzter = alu3;
+ this.mikro_letzter = microStepName;
this.opMnemo_letzter = var6;
+
String var11 = "" + this.a.WertGeben();
String var12 = "" + this.adresse;
String var13 = "" + (this.befehlscode + this.adressmodus * 256);
if (this.hexaAnzeige) {
- var1 = this.HexaString(var1);
- var3 = this.HexaString(var3);
- var4 = this.HexaString(var4);
- var5 = this.HexaString(var5);
+ data = this.HexaString(data);
+ alu1 = this.HexaString(alu1);
+ alu2 = this.HexaString(alu2);
+ alu3 = this.HexaString(alu3);
var11 = this.HexaString(var11);
var12 = this.HexaString(var12);
var13 = this.HexaString(var13);
- if (var2.length() > 0 && !" ".equals(var2)) {
- var2 = var2 + " [" + this.HexaString(var2) + "]";
+ if (address.length() > 0 && !" ".equals(address)) {
+ address = address + " [" + this.HexaString(address) + "]";
}
}
@@ -202,7 +203,7 @@ protected void Melden(String var1, String var2, String var3, String var4, String
while(var15.hasNext()) {
CpuBeobachter var16 = (CpuBeobachter)var15.next();
- var16.Befehlsmeldung(var1, var2, var3, var4, var5, var11, this.sp.WertGeben() < 0 ? "" + (this.sp.WertGeben() + 65536) : "" + this.sp.WertGeben(), this.eqflag, this.ltflag, this.ovflag, var6 ? (this.adressmodus == 2 ? var17 + "I" : var17) : var13, var12, "" + this.pc.WertGeben(), this.progadr, this.progmem, this.dataadr, this.datamem, this.stackadr, this.stackmem, var10);
+ var16.Befehlsmeldung(data, address, alu1, alu2, alu3, var11, this.sp.WertGeben() < 0 ? "" + (this.sp.WertGeben() + 65536) : "" + this.sp.WertGeben(), this.eqflag, this.ltflag, this.ovflag, var6 ? (this.adressmodus == 2 ? var17 + "I" : var17) : var13, var12, "" + this.pc.WertGeben(), this.progadr, this.progmem, this.dataadr, this.datamem, this.stackadr, this.stackmem, microStepName);
}
}
@@ -214,12 +215,12 @@ public void AnzeigeWiederholen() {
}
- protected void Fehlermeldung(String var1) {
- Iterator var2 = this.beobachter.iterator();
+ protected void reportError(String message) {
+ Iterator listeners = this.beobachter.iterator();
- while(var2.hasNext()) {
- CpuBeobachter var3 = (CpuBeobachter)var2.next();
- var3.Fehlermeldung(var1);
+ while(listeners.hasNext()) {
+ CpuBeobachter listener = (CpuBeobachter) listeners.next();
+ listener.Fehlermeldung(message);
}
}
@@ -384,7 +385,7 @@ protected void OpcodeTesten() {
} while(this.befehlscode != 99 && this.befehlscode != -1 && var1 > System.currentTimeMillis());
if (this.befehlscode != 99 && this.befehlscode != -1) {
- this.Fehlermeldung("Programmabbruch wegen Zeitüberschreitung");
+ this.reportError("Programmabbruch wegen Zeitüberschreitung");
}
}
diff --git a/src/model/CpuDetail.java b/src/model/CpuDetail.java
index 39a4205..5a3c8c6 100644
--- a/src/model/CpuDetail.java
+++ b/src/model/CpuDetail.java
@@ -5,6 +5,8 @@
package model;
+import res.R;
+
class CpuDetail extends Cpu {
private MikroSchritte mikroStatus;
private int op1;
@@ -14,12 +16,12 @@ class CpuDetail extends Cpu {
CpuDetail(Speicher var1) {
super(var1);
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
this.pcAlt = 0;
}
public void ZurückSetzen() {
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
this.pcAlt = 0;
super.ZurückSetzen();
}
@@ -27,26 +29,26 @@ class CpuDetail extends Cpu {
public void Schritt() {
do {
this.MikroSchritt();
- } while(this.mikroStatus != MikroSchritte.komplett);
+ } while(this.mikroStatus != MikroSchritte.COMPLETE);
}
public void MikroSchritt() {
switch(this.mikroStatus) {
- case komplett:
- this.mikroStatus = MikroSchritte.fetch_opcode;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, this.sp.WertGeben(), "komplett");
+ case COMPLETE:
+ this.mikroStatus = MikroSchritte.FETCH_OPCODE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, this.sp.WertGeben(), R.getResources().getString("micro_step_complete"));
break;
- case fetch_opcode:
+ case FETCH_OPCODE:
this.pcAlt = this.pc.WertGeben();
int var1 = this.speicher.WortOhneVorzeichenGeben(this.pcAlt);
this.pc.Inkrementieren(1);
this.adressmodus = var1 / 256;
this.befehlscode = var1 % 256;
- this.mikroStatus = MikroSchritte.fetch_adressteil;
- this.Melden("" + var1, "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), "", "", "", false, this.pcAlt, -1, this.sp.WertGeben(), "fetch_op");
+ this.mikroStatus = MikroSchritte.FETCH_ADDRESS;
+ this.Melden("" + var1, "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), "", "", "", false, this.pcAlt, -1, this.sp.WertGeben(), R.getResources().getString("micro_step_fetch_op"));
break;
- case fetch_adressteil:
+ case FETCH_ADDRESS:
this.pcAlt = this.pc.WertGeben();
this.adresse = this.speicher.WortMitVorzeichenGeben(this.pcAlt);
this.pc.Inkrementieren(1);
@@ -56,46 +58,46 @@ public void MikroSchritt() {
var3 = "" + this.adresse;
this.adresse += this.sp.WertGeben();
this.adressmodus = 2;
- this.mikroStatus = MikroSchritte.decode;
- this.Melden("$" + this.adresse + "(SP)", "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), var3, "" + this.sp.WertGeben(), "" + this.adresse, false, -1, -1, -1, "fetch_adr");
+ this.mikroStatus = MikroSchritte.DECODE;
+ this.Melden("$" + this.adresse + "(SP)", "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), var3, "" + this.sp.WertGeben(), "" + this.adresse, false, -1, -1, -1, R.getResources().getString("micro_step_fetch_addr"));
} else {
if (this.adressmodus == 3) {
- this.mikroStatus = MikroSchritte.fetch_indirekt;
+ this.mikroStatus = MikroSchritte.FETCH_INDIRECT;
this.adressmodus = 1;
} else {
- this.mikroStatus = MikroSchritte.decode;
+ this.mikroStatus = MikroSchritte.DECODE;
}
- this.Melden("" + this.adresse, "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), "", "", "", false, -1, -1, -1, "fetch_adr");
+ this.Melden("" + this.adresse, "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), "", "", "", false, -1, -1, -1, R.getResources().getString("micro_step_fetch_addr"));
}
} else {
var3 = "" + this.adresse;
this.adresse += this.sp.WertGeben();
if (this.adressmodus == 5) {
- this.mikroStatus = MikroSchritte.fetch_indirekt;
+ this.mikroStatus = MikroSchritte.FETCH_INDIRECT;
} else {
- this.mikroStatus = MikroSchritte.decode;
+ this.mikroStatus = MikroSchritte.DECODE;
}
this.adressmodus = 1;
- this.Melden("" + this.adresse + "(SP)", "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), var3, "" + this.sp.WertGeben(), "" + this.adresse, false, -1, -1, -1, "fetch_adr");
+ this.Melden("" + this.adresse + "(SP)", "" + (this.pcAlt < 0 ? 65536 + this.pcAlt : this.pcAlt), var3, "" + this.sp.WertGeben(), "" + this.adresse, false, -1, -1, -1, R.getResources().getString("micro_step_fetch_addr"));
}
break;
- case fetch_indirekt:
- this.mikroStatus = MikroSchritte.decode;
+ case FETCH_INDIRECT:
+ this.mikroStatus = MikroSchritte.DECODE;
int var2 = this.adresse;
this.adresse = this.speicher.WortMitVorzeichenGeben(this.adresse);
- this.Melden("" + this.adresse, "" + var2, "", "", "", false, -1, -1, -1, "fetch_indir");
+ this.Melden("" + this.adresse, "" + var2, "", "", "", false, -1, -1, -1, R.getResources().getString("micro_step_fetch_indir"));
break;
- case decode:
+ case DECODE:
this.OpcodeTesten();
- this.mikroStatus = MikroSchritte.execute_1;
- this.Melden("", "", "", "", "", true, -1, -1, -1, "dekode");
+ this.mikroStatus = MikroSchritte.EXECUTE_1;
+ this.Melden("", "", "", "", "", true, -1, -1, -1, R.getResources().getString("micro_step_decode"));
break;
- case execute_1:
+ case EXECUTE_1:
this.Excecute1();
break;
- case execute_2:
+ case EXECUTE_2:
this.Excecute2();
}
@@ -105,14 +107,14 @@ private void Excecute1() {
int var1;
switch(this.befehlscode) {
case 0:
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, -1, -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 1:
this.ZurückSetzen();
this.speicher.SpeicherLöschen();
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, -1, -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 2:
case 3:
@@ -193,57 +195,57 @@ private void Excecute1() {
int var2;
switch(this.befehlscode) {
case 5:
- this.mikroStatus = MikroSchritte.execute_2;
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
var1 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("", "", "" + var1, "-1", "" + (var1 - 1), true, -1, -1, -1, "exec_1");
+ this.Melden("", "", "" + var1, "-1", "" + (var1 - 1), true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
this.sp.Dekrementieren(1);
return;
case 6:
- this.mikroStatus = MikroSchritte.execute_2;
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
var1 = this.speicher.WortMitVorzeichenGeben(this.sp.WertGeben());
this.pc.WertSetzen(var1);
- this.Melden("" + (var1 < 0 ? var1 + 65536 : var1), "" + (this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben()), "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.Melden("" + (var1 < 0 ? var1 + 65536 : var1), "" + (this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben()), "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
return;
case 7:
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
var2 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
this.sp.Dekrementieren(this.adresse);
var1 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("", "", "" + var2, "" + this.adresse, "" + var1, true, -1, -1, this.sp.WertGeben(), "exec_1");
+ this.Melden("", "", "" + var2, "" + this.adresse, "" + var1, true, -1, -1, this.sp.WertGeben(), R.getResources().getString("micro_step_exec_1"));
return;
case 8:
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
var2 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
this.sp.Inkrementieren(this.adresse);
var1 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("", "", "" + var2, "" + this.adresse, "" + var1, true, -1, -1, this.sp.WertGeben(), "exec_1");
+ this.Melden("", "", "" + var2, "" + this.adresse, "" + var1, true, -1, -1, this.sp.WertGeben(), R.getResources().getString("micro_step_exec_1"));
return;
case 25:
- this.mikroStatus = MikroSchritte.execute_2;
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
var1 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("", "", "" + var1, "-1", "" + (var1 - 1), true, -1, -1, -1, "exec_1");
+ this.Melden("", "", "" + var1, "-1", "" + (var1 - 1), true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
this.sp.Dekrementieren(1);
return;
case 26:
- this.mikroStatus = MikroSchritte.execute_2;
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
this.a.WertSetzen(this.speicher.WortMitVorzeichenGeben(this.sp.WertGeben()));
this.ovflag = false;
var1 = this.a.WertGeben();
this.ltflag = var1 < 0;
this.eqflag = var1 == 0;
var1 = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("" + this.a.WertGeben(), "" + var1, "", "", "", true, -1, -1, this.sp.WertGeben(), "exec_1");
+ this.Melden("" + this.a.WertGeben(), "" + var1, "", "", "", true, -1, -1, this.sp.WertGeben(), R.getResources().getString("micro_step_exec_1"));
return;
default:
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", false, -1, -1, -1, "exec_1");
- this.Fehlermeldung("Illegaler Befehlscode");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", false, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
+ this.reportError(R.getResources().getString("cpu_illegal_opcode"));
this.befehlscode = -1;
}
} else {
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", false, -1, -1, -1, "exec_1");
- this.Fehlermeldung("Illegaler Befehlscode");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", false, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
+ this.reportError(R.getResources().getString("cpu_illegal_opcode"));
this.befehlscode = -1;
}
break;
@@ -261,11 +263,11 @@ private void Excecute1() {
case 45:
this.op1 = this.a.WertGeben();
this.op2 = this.OperandenwertGeben(this.adresse, this.adressmodus);
- this.mikroStatus = MikroSchritte.execute_2;
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
if (this.adressmodus == 1) {
- this.Melden("" + this.op2, "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "" + this.op1, "" + this.op2, "", true, -1, this.adresse, -1, "exec_1");
+ this.Melden("" + this.op2, "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "" + this.op1, "" + this.op2, "", true, -1, this.adresse, -1, R.getResources().getString("micro_step_exec_1"));
} else {
- this.Melden("", "", "" + this.op1, "" + this.op2, "", true, -1, -1, -1, "exec_1");
+ this.Melden("", "", "" + this.op1, "" + this.op2, "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
}
break;
case 20:
@@ -274,87 +276,87 @@ private void Excecute1() {
var1 = this.a.WertGeben();
this.ltflag = var1 < 0;
this.eqflag = var1 == 0;
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
if (this.adressmodus == 1) {
- this.Melden("" + var1, "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "", "", "", true, -1, this.adresse, -1, "exec_1");
+ this.Melden("" + var1, "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "", "", "", true, -1, this.adresse, -1, R.getResources().getString("micro_step_exec_1"));
} else {
- this.Melden("", "", "", "", "", true, -1, -1, -1, "exec_1");
+ this.Melden("", "", "", "", "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
}
break;
case 21:
this.speicher.WortSetzen(this.adresse, this.a.WertGeben());
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("" + this.a.WertGeben(), "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "", "", "", true, -1, this.adresse, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("" + this.a.WertGeben(), "" + (this.adresse < 0 ? 65536 + this.adresse : this.adresse), "", "", "", true, -1, this.adresse, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 30:
if (!this.ltflag && !this.eqflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 31:
if (!this.ltflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 32:
if (this.ltflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 33:
if (this.ltflag || this.eqflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 34:
if (this.eqflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 35:
if (!this.eqflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 36:
this.pc.WertSetzen(this.adresse);
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 37:
if (this.ovflag) {
this.pc.WertSetzen(this.adresse);
}
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 46:
this.op1 = this.a.WertGeben();
- this.mikroStatus = MikroSchritte.execute_2;
- this.Melden("", "", "" + this.op1, "", "", true, -1, -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.EXECUTE_2;
+ this.Melden("", "", "" + this.op1, "", "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
break;
case 99:
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "", "", "", true, -1, -1, -1, "exec_1");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "", "", "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_1"));
}
}
@@ -362,17 +364,17 @@ private void Excecute1() {
private void Excecute2() {
switch(this.befehlscode) {
case 5:
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
this.speicher.WortSetzen(this.sp.WertGeben(), this.pc.WertGeben());
this.res = this.pc.WertGeben() < 0 ? this.pc.WertGeben() + 65536 : this.pc.WertGeben();
this.pc.WertSetzen(this.adresse);
- this.Melden("" + this.res, "" + (this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben()), "", "", "", true, this.pc.WertGeben(), -1, -1, "exec_2");
+ this.Melden("" + this.res, "" + (this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben()), "", "", "", true, this.pc.WertGeben(), -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 6:
case 26:
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
this.res = this.sp.WertGeben() < 0 ? this.sp.WertGeben() + 65536 : this.sp.WertGeben();
- this.Melden("", "", "" + this.res, "1", "" + (this.res + 1), true, -1, -1, -1, "exec_2");
+ this.Melden("", "", "" + this.res, "1", "" + (this.res + 1), true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
this.sp.Inkrementieren(1);
case 7:
case 8:
@@ -408,8 +410,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 11:
this.res = this.op1 - this.op2;
@@ -418,8 +420,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 12:
this.res = this.op1 * this.op2;
@@ -428,12 +430,12 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 13:
if (this.op2 == 0) {
- this.Fehlermeldung("Division durch 0");
+ this.reportError("Division durch 0");
this.res = this.op1;
this.ovflag = true;
} else {
@@ -445,12 +447,12 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 14:
if (this.op2 == 0) {
- this.Fehlermeldung("Division durch 0");
+ this.reportError("Division durch 0");
this.res = this.op1;
this.ovflag = true;
} else {
@@ -462,20 +464,20 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 15:
this.ovflag = false;
this.ltflag = this.op1 < this.op2;
this.eqflag = this.op1 == this.op2;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "", true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "", true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 25:
- this.mikroStatus = MikroSchritte.komplett;
+ this.mikroStatus = MikroSchritte.COMPLETE;
this.res = this.sp.WertGeben();
- this.Melden("" + this.a.WertGeben(), "" + (this.res < 0 ? 65536 + this.res : this.res), "", "", "", true, -1, -1, this.res, "exec_2");
+ this.Melden("" + this.a.WertGeben(), "" + (this.res < 0 ? 65536 + this.res : this.res), "", "", "", true, -1, -1, this.res, R.getResources().getString("micro_step_exec_2"));
this.speicher.WortSetzen(this.res, this.a.WertGeben());
break;
case 40:
@@ -485,8 +487,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 41:
this.res = this.op1 | this.op2;
@@ -495,8 +497,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 42:
this.res = this.op1 ^ this.op2;
@@ -505,8 +507,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 43:
this.res = this.op1 << this.op2;
@@ -515,8 +517,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 44:
this.res = (this.op1 & '\uffff') >> this.op2;
@@ -525,8 +527,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 45:
this.res = this.op1 >> this.op2;
@@ -535,8 +537,8 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "" + this.op2, "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
break;
case 46:
this.res = ~this.op1;
@@ -545,15 +547,15 @@ private void Excecute2() {
this.res = this.a.WertGeben();
this.ltflag = this.res < 0;
this.eqflag = this.res == 0;
- this.mikroStatus = MikroSchritte.komplett;
- this.Melden("", "", "" + this.op1, "", "" + this.res, true, -1, -1, -1, "exec_2");
+ this.mikroStatus = MikroSchritte.COMPLETE;
+ this.Melden("", "", "" + this.op1, "", "" + this.res, true, -1, -1, -1, R.getResources().getString("micro_step_exec_2"));
}
}
public void Übertragen(Cpu var1) {
if (this != var1) {
- while(this.mikroStatus != MikroSchritte.komplett) {
+ while(this.mikroStatus != MikroSchritte.COMPLETE) {
this.MikroSchritt();
}
}
diff --git a/src/model/CpuEinfach.java b/src/model/CpuEinfach.java
index 221b6d4..7295760 100644
--- a/src/model/CpuEinfach.java
+++ b/src/model/CpuEinfach.java
@@ -5,6 +5,8 @@
package model;
+import res.R;
+
class CpuEinfach extends Cpu {
CpuEinfach(Speicher storage) {
super(storage);
@@ -135,11 +137,11 @@ public void Schritt() {
this.eqflag = var3 == 0;
break label288;
default:
- this.Fehlermeldung("Illegaler Befehlscode");
+ this.reportError(R.getResources().getString("cpu_illegal_opcode"));
this.befehlscode = -1;
}
} else {
- this.Fehlermeldung("Illegaler Befehlscode");
+ this.reportError(R.getResources().getString("cpu_illegal_opcode"));
this.befehlscode = -1;
}
break;
@@ -167,7 +169,7 @@ public void Schritt() {
var1 = this.a.WertGeben();
var2 = this.OperandenwertGeben(this.adresse, this.adressmodus);
if (var2 == 0) {
- this.Fehlermeldung("Division durch 0");
+ this.reportError(R.getResources().getString("cpu_zero_division"));
var3 = var1;
this.ovflag = true;
} else {
@@ -184,7 +186,7 @@ public void Schritt() {
var1 = this.a.WertGeben();
var2 = this.OperandenwertGeben(this.adresse, this.adressmodus);
if (var2 == 0) {
- this.Fehlermeldung("Division durch 0");
+ this.reportError(R.getResources().getString("cpu_zero_division"));
var3 = 0;
this.ovflag = true;
} else {
diff --git a/src/model/FehlerVerwaltung.java b/src/model/FehlerVerwaltung.java
index f831246..c257f96 100644
--- a/src/model/FehlerVerwaltung.java
+++ b/src/model/FehlerVerwaltung.java
@@ -14,9 +14,9 @@ public class FehlerVerwaltung {
public FehlerVerwaltung() {
}
- public void FehlerEintragen(String var1, int var2) {
- this.meldungen.add(var1);
- this.positionen.add(var2);
+ public void FehlerEintragen(String message, int position) {
+ this.meldungen.add(message);
+ this.positionen.add(position);
}
public boolean FehlerAufgetreten() {
diff --git a/src/model/MikroSchritte.java b/src/model/MikroSchritte.java
index 6df0e6e..ee0c6b1 100644
--- a/src/model/MikroSchritte.java
+++ b/src/model/MikroSchritte.java
@@ -6,13 +6,13 @@
package model;
enum MikroSchritte {
- komplett,
- fetch_opcode,
- fetch_adressteil,
- fetch_indirekt,
- decode,
- execute_1,
- execute_2;
+ COMPLETE,
+ FETCH_OPCODE,
+ FETCH_ADDRESS,
+ FETCH_INDIRECT,
+ DECODE,
+ EXECUTE_1,
+ EXECUTE_2;
private MikroSchritte() {
}
diff --git a/src/model/Parser.java b/src/model/Parser.java
index e2ac365..839ed92 100644
--- a/src/model/Parser.java
+++ b/src/model/Parser.java
@@ -5,6 +5,8 @@
package model;
+import res.R;
+
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
@@ -20,11 +22,11 @@ class Parser {
private HashMap fixierungen;
private boolean erweitert;
- Parser(Scanner var1, Speicher var2, FehlerVerwaltung var3, boolean var4) {
- this.scanner = var1;
- this.speicher = var2;
- this.fehler = var3;
- this.erweitert = var4;
+ Parser(Scanner scanner, Speicher memory, FehlerVerwaltung exceptionHandler, boolean extended) {
+ this.scanner = scanner;
+ this.speicher = memory;
+ this.fehler = exceptionHandler;
+ this.erweitert = extended;
this.pc = 0;
this.befehle = AssemblerBefehle.AssemblerbefehleGeben();
this.marken = new HashMap(40);
@@ -41,27 +43,27 @@ void Parse() {
Scanner var10001 = this.scanner;
if (this.aktToken != 2) {
if (this.aktToken != 0) {
- this.fehler.FehlerEintragen("Bezeichner erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_label_name"), this.scanner.PositionGeben());
this.Überspringen();
}
} else {
- String var1 = this.scanner.BezeichnerGeben();
+ String label = this.scanner.BezeichnerGeben();
int var6 = this.scanner.PositionGeben();
this.aktToken = this.scanner.NächstesToken();
var10001 = this.scanner;
if (this.aktToken == 4) {
- if (this.marken.containsKey(var1)) {
- this.fehler.FehlerEintragen("Marke doppelt vereinbart", this.scanner.PositionGeben());
- } else if (!this.erweitert || !var1.equals("SP") && !var1.equals("sp")) {
- this.marken.put(var1, this.pc);
+ if (this.marken.containsKey(label)) {
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_label_exists"), this.scanner.PositionGeben());
+ } else if (!this.erweitert || !label.equals("SP") && !label.equals("sp")) {
+ this.marken.put(label, this.pc);
} else {
- this.fehler.FehlerEintragen("unzulässiger Name für Marke: " + var1, this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_label") + ": " + label, this.scanner.PositionGeben());
}
this.aktToken = this.scanner.NächstesToken();
var10001 = this.scanner;
if (this.aktToken == 2) {
- var1 = this.scanner.BezeichnerGeben();
+ label = this.scanner.BezeichnerGeben();
var6 = this.scanner.PositionGeben();
this.aktToken = this.scanner.NächstesToken();
} else {
@@ -75,15 +77,15 @@ void Parse() {
continue;
}
- this.fehler.FehlerEintragen("Bezeichner erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_label_name"), this.scanner.PositionGeben());
}
}
- if (!this.befehle.BezeichnerTesten(var1)) {
- this.fehler.FehlerEintragen("Kein gültiger Befehl: " + var1, var6);
+ if (!this.befehle.BezeichnerTesten(label)) {
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_instruction") + ": " + label, var6);
this.Überspringen();
} else {
- int var2 = this.befehle.OpcodeGeben(var1);
+ int var2 = this.befehle.OpcodeGeben(label);
byte var3 = 0;
byte var5;
if (var2 < 0) {
@@ -102,22 +104,23 @@ void Parse() {
} else {
this.speicher.WortSetzen(this.pc, 0);
++this.pc;
- this.fehler.FehlerEintragen("Zahl erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_number"), this.scanner.PositionGeben());
}
} else {
int var4;
+ var4 = 0;
+
if (var2 >= 300) {
- var4 = 0;
var3 = 2;
var2 -= 300;
var5 = 1;
var10001 = this.scanner;
if (this.aktToken == 2) {
- var1 = this.scanner.BezeichnerGeben();
- if (this.marken.containsKey(var1)) {
- var4 = (Integer)this.marken.get(var1);
+ label = this.scanner.BezeichnerGeben();
+ if (this.marken.containsKey(label)) {
+ var4 = (Integer)this.marken.get(label);
} else {
- this.fixierungen.put(this.pc + 1, var1);
+ this.fixierungen.put(this.pc + 1, label);
}
this.aktToken = this.scanner.NächstesToken();
@@ -138,27 +141,22 @@ void Parse() {
var4 = var5 * this.scanner.ZahlGeben();
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("Zahl erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_number"), this.scanner.PositionGeben());
}
}
- this.speicher.WortSetzen(this.pc, var3 * 256 + var2);
- ++this.pc;
- this.speicher.WortSetzen(this.pc, var4);
- ++this.pc;
} else {
- var4 = 0;
var3 = 0;
var10001 = this.scanner;
if (this.aktToken != 9) {
var10001 = this.scanner;
if (this.aktToken == 2) {
var3 = 1;
- var1 = this.scanner.BezeichnerGeben();
- if (this.marken.containsKey(var1)) {
- var4 = (Integer)this.marken.get(var1);
+ label = this.scanner.BezeichnerGeben();
+ if (this.marken.containsKey(label)) {
+ var4 = (Integer)this.marken.get(label);
} else {
- this.fixierungen.put(this.pc + 1, var1);
+ this.fixierungen.put(this.pc + 1, label);
}
this.aktToken = this.scanner.NächstesToken();
@@ -176,17 +174,17 @@ void Parse() {
var10001 = this.scanner;
if (this.aktToken == 2) {
if (!this.scanner.BezeichnerGeben().equals("SP") && !this.scanner.BezeichnerGeben().equals("sp")) {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
this.aktToken = this.scanner.NächstesToken();
} else {
var10001 = this.scanner;
if (this.aktToken == 3) {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
}
@@ -194,7 +192,7 @@ void Parse() {
if (this.aktToken == 10) {
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("')' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("')' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
}
}
@@ -206,11 +204,11 @@ void Parse() {
var5 = 1;
var10001 = this.scanner;
if (this.aktToken == 2) {
- var1 = this.scanner.BezeichnerGeben();
- if (this.marken.containsKey(var1)) {
- var4 = (Integer)this.marken.get(var1);
+ label = this.scanner.BezeichnerGeben();
+ if (this.marken.containsKey(label)) {
+ var4 = (Integer)this.marken.get(label);
} else {
- this.fixierungen.put(this.pc + 1, var1);
+ this.fixierungen.put(this.pc + 1, label);
}
this.aktToken = this.scanner.NächstesToken();
@@ -238,24 +236,24 @@ void Parse() {
var10001 = this.scanner;
if (this.aktToken == 2) {
if (!this.scanner.BezeichnerGeben().equals("SP") && !this.scanner.BezeichnerGeben().equals("sp")) {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
var10001 = this.scanner;
if (this.aktToken == 10) {
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("')' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("')' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
}
}
} else {
- this.fehler.FehlerEintragen("Zahl erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_number"), this.scanner.PositionGeben());
}
}
} else if (this.erweitert) {
@@ -270,7 +268,7 @@ void Parse() {
} else {
var10001 = this.scanner;
if (this.aktToken == 2) {
- this.fehler.FehlerEintragen("Zahl erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_number"), this.scanner.PositionGeben());
this.aktToken = this.scanner.NächstesToken();
}
}
@@ -281,17 +279,17 @@ void Parse() {
var10001 = this.scanner;
if (this.aktToken == 2) {
if (!this.scanner.BezeichnerGeben().equals("SP") && !this.scanner.BezeichnerGeben().equals("sp")) {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
this.aktToken = this.scanner.NächstesToken();
} else {
var10001 = this.scanner;
if (this.aktToken == 3) {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("'SP' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("'SP' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
}
@@ -299,7 +297,7 @@ void Parse() {
if (this.aktToken == 10) {
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("')' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("')' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
} else {
this.fehler.FehlerEintragen("(", this.scanner.PositionGeben());
@@ -313,14 +311,14 @@ void Parse() {
var3 = 3;
var10001 = this.scanner;
if (this.aktToken == 2) {
- var1 = this.scanner.BezeichnerGeben();
- if (this.erweitert && (var1.equals("SP") || var1.equals("sp"))) {
+ label = this.scanner.BezeichnerGeben();
+ if (this.erweitert && (label.equals("SP") || label.equals("sp"))) {
var3 = 4;
var4 = 0;
- } else if (this.marken.containsKey(var1)) {
- var4 = (Integer)this.marken.get(var1);
+ } else if (this.marken.containsKey(label)) {
+ var4 = (Integer)this.marken.get(label);
} else {
- this.fixierungen.put(this.pc + 1, var1);
+ this.fixierungen.put(this.pc + 1, label);
}
this.aktToken = this.scanner.NächstesToken();
@@ -330,7 +328,7 @@ void Parse() {
var4 = this.scanner.ZahlGeben();
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("Zahl oder Bezeichner erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_expected_number_or_label"), this.scanner.PositionGeben());
}
}
@@ -338,22 +336,22 @@ void Parse() {
if (this.aktToken == 10) {
this.aktToken = this.scanner.NächstesToken();
} else {
- this.fehler.FehlerEintragen("')' erwartet", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen("')' " + R.getResources().getString("parse_error_x_expected"), this.scanner.PositionGeben());
}
}
- this.speicher.WortSetzen(this.pc, var3 * 256 + var2);
- ++this.pc;
- this.speicher.WortSetzen(this.pc, var4);
- ++this.pc;
}
+ this.speicher.WortSetzen(this.pc, var3 * 256 + var2);
+ ++this.pc;
+ this.speicher.WortSetzen(this.pc, var4);
+ ++this.pc;
}
switch(var2) {
case 1:
case 99:
if (var3 != 0) {
- this.fehler.FehlerEintragen("Unzulässige Adressteile", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_address"), this.scanner.PositionGeben());
}
case 2:
case 3:
@@ -436,30 +434,30 @@ void Parse() {
break;
case 5:
if (var3 == 0) {
- this.fehler.FehlerEintragen("Fehlender Adressteil", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_missing_address"), this.scanner.PositionGeben());
} else if (var3 == 2) {
- this.fehler.FehlerEintragen("Unzulässige Adressart", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_address_mode"), this.scanner.PositionGeben());
}
if (!this.erweitert) {
- this.fehler.FehlerEintragen("Erweiterte Befehle nicht zulässig", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_extended_instruction"), this.scanner.PositionGeben());
}
break;
case 6:
case 25:
case 26:
if (var3 != 0) {
- this.fehler.FehlerEintragen("Unzulässige Adressteile", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_address"), this.scanner.PositionGeben());
}
if (!this.erweitert) {
- this.fehler.FehlerEintragen("Erweiterte Befehle nicht zulässig", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_extended_instruction"), this.scanner.PositionGeben());
}
break;
case 7:
case 8:
if (var3 != 2) {
- this.fehler.FehlerEintragen("Unzulässige Adressteile", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_address"), this.scanner.PositionGeben());
}
break;
case 10:
@@ -469,7 +467,7 @@ void Parse() {
case 15:
case 20:
if (var3 == 0) {
- this.fehler.FehlerEintragen("Fehlender Adressteil", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_missing_address"), this.scanner.PositionGeben());
}
break;
case 21:
@@ -481,14 +479,14 @@ void Parse() {
case 35:
case 36:
if (var3 == 0) {
- this.fehler.FehlerEintragen("Fehlender Adressteil", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_missing_address"), this.scanner.PositionGeben());
} else if (var3 == 2) {
- this.fehler.FehlerEintragen("Unzulässige Adressart", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_invalid_address_mode"), this.scanner.PositionGeben());
}
}
if (this.aktToken != 0 && this.aktToken != 5) {
- this.fehler.FehlerEintragen("Überflüssige Adressteile", this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_unnecessary_address"), this.scanner.PositionGeben());
}
}
}
@@ -505,7 +503,7 @@ void Parse() {
if (this.marken.containsKey(var8.getValue())) {
this.speicher.WortSetzen((Integer)var8.getKey(), (Integer)this.marken.get(var8.getValue()));
} else {
- this.fehler.FehlerEintragen("Marke nicht definiert: " + (String)var8.getValue(), this.scanner.PositionGeben());
+ this.fehler.FehlerEintragen(R.getResources().getString("parse_error_label_not_defined") + ": " + (String)var8.getValue(), this.scanner.PositionGeben());
}
}
diff --git a/src/res/lang.properties b/src/res/lang.properties
index 4e82b33..6a5c658 100644
--- a/src/res/lang.properties
+++ b/src/res/lang.properties
@@ -4,13 +4,20 @@ version = v2.1
aboutMM = About Macromachine
aboutDetail = A Program for emulating a simple CPU
-window_cpu_title = CPU Control
+
file_picker_open_title = Select a file to open
file_picker_save_title = Save
window_memory_title = Memory View
+memory_clear_memory = Clear memory
+memory_display_hex = Use hexadecimal
+memory_display_op = Display opcodes
+memory_edit = Enable editing
+
+window_cpu_title = CPU Control
+
cpu_run = Run
cpu_step = Next Step
cpu_micro_step = Micro Step
@@ -22,12 +29,42 @@ cpu_data_bus = Data Bus
cpu_address_bus = Address Bus
cpu_instruction_reg = Instruction Register
cpu_stack_pointer = Stack Pointer
+cpu_illegal_opcode = Illegal Opcode
+cpu_zero_division = Zero division
+
+
+
+
+micro_step_complete = complete
+micro_step_fetch_op = fetch_op
+micro_step_fetch_addr = fetch_addr
+micro_step_fetch_indir = fetch_indir
+micro_step_decode = decode
+micro_step_exec_1 = exec_1
+micro_step_exec_2 = exec_2
+
+
+parse_error_expected_label_name = Expected label name
+parse_error_label_exists = Label already exists
+parse_error_invalid_label = Invalid label name
+parse_error_invalid_instruction = Invalid instruction
+parse_error_expected_number = Number expected
+parse_error_expected_number_or_label = Number or label expected
+parse_error_x_expected = expected
+parse_error_invalid_address = Invalid Address
+parse_error_missing_address = Missing address
+parse_error_invalid_address_mode = Invalid addressing mode
+parse_error_unnecessary_address = Unnecessary address
+parse_error_label_not_defined = Label not defined
+parse_error_extended_instruction = Extended instruction is not allowed
+
window_editor_title = Editor
editor_assemble = Assemble
editor_confirm_exit_unsaved1 = You have unsaved changes.
editor_confirm_exit_unsaved2 = Do you wan't to save your changes?
editor_confirm_exit_unsaved_title = Save changes
+editor_assembly_success = Successfully assembled
dialog_timeout_title = Processor Timeout
dialog_timeout_prompt = Enter processor timeout in seconds