mirror of
https://github.com/sethm/symon.git
synced 2025-01-01 07:30:14 +00:00
Added Klaus Dormann's tests
This commit is contained in:
parent
36615fc70b
commit
59c6d8e23b
15
README.md
15
README.md
@ -3,14 +3,18 @@ SYMON - A 6502 System Simulator
|
|||||||
|
|
||||||
**NOTE: THIS SOFTWARE IS UNDER ACTIVE DEVELOPMENT. Feedback is welcome!**
|
**NOTE: THIS SOFTWARE IS UNDER ACTIVE DEVELOPMENT. Feedback is welcome!**
|
||||||
|
|
||||||
**Version:** 0.9.9.1
|
**Version:** 1.0.0-SNAPSHOT
|
||||||
|
|
||||||
**Last Updated:** 27 July, 2014
|
**Last Updated:** 10 August, 2014
|
||||||
|
|
||||||
Copyright (c) 2014 Seth J. Morabito <web@loomcom.com>
|
**Copyright (c) 2014 Seth J. Morabito <web@loomcom.com>**
|
||||||
|
|
||||||
Portions Copyright (c) 2014 Maik Merten <maikmerten@googlemail.com>
|
Portions Copyright (c) 2014 Maik Merten <maikmerten@googlemail.com>
|
||||||
|
|
||||||
|
Enhanced 6502 BASIC (c) Lee Davison
|
||||||
|
|
||||||
|
6502 Functional Tests (c) Klaus Dormann
|
||||||
|
|
||||||
See the file COPYING for license.
|
See the file COPYING for license.
|
||||||
|
|
||||||
![Symon Simulator in Action] (https://github.com/sethm/symon/raw/master/screenshots/full.jpg)
|
![Symon Simulator in Action] (https://github.com/sethm/symon/raw/master/screenshots/full.jpg)
|
||||||
@ -217,6 +221,11 @@ running.
|
|||||||
|
|
||||||
## 5.0 Revision History
|
## 5.0 Revision History
|
||||||
|
|
||||||
|
- **1.0.0-SNAPSHOT:** 10 August, 2014 - Added "Simple" machine
|
||||||
|
implementation, pure RAM with no IO. Added Klaus Dormann's
|
||||||
|
6502 Functional Tests for further machine verification (these
|
||||||
|
tests must be run in the "Simple" machine).
|
||||||
|
|
||||||
- **0.9.9.1:** 27 July, 2014 - Pressing 'Control' while clicking
|
- **0.9.9.1:** 27 July, 2014 - Pressing 'Control' while clicking
|
||||||
'Reset' now performs a memory clear.
|
'Reset' now performs a memory clear.
|
||||||
|
|
||||||
|
BIN
samples/tests/6502_functional_test.bin
Executable file
BIN
samples/tests/6502_functional_test.bin
Executable file
Binary file not shown.
13999
samples/tests/6502_functional_test.lst
Executable file
13999
samples/tests/6502_functional_test.lst
Executable file
File diff suppressed because it is too large
Load Diff
BIN
samples/tests/65C02_extended_opcodes_test.bin
Executable file
BIN
samples/tests/65C02_extended_opcodes_test.bin
Executable file
Binary file not shown.
11308
samples/tests/65C02_extended_opcodes_test.lst
Executable file
11308
samples/tests/65C02_extended_opcodes_test.lst
Executable file
File diff suppressed because it is too large
Load Diff
@ -58,8 +58,8 @@ public class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while(true) {
|
while (true) {
|
||||||
if(machineClass == null) {
|
if (machineClass == null) {
|
||||||
Object[] possibilities = {"Symon", "Multicomp", "Simple"};
|
Object[] possibilities = {"Symon", "Multicomp", "Simple"};
|
||||||
String s = (String)JOptionPane.showInputDialog(
|
String s = (String)JOptionPane.showInputDialog(
|
||||||
null,
|
null,
|
||||||
@ -71,14 +71,12 @@ public class Main {
|
|||||||
"Symon");
|
"Symon");
|
||||||
|
|
||||||
|
|
||||||
if (s != null) {
|
if (s != null && s.equals("Multicomp")) {
|
||||||
if (s.equals("Multicomp")) {
|
machineClass = MulticompMachine.class;
|
||||||
machineClass = MulticompMachine.class;
|
} else if (s != null && s.equals("Simple")) {
|
||||||
} else if (s.equals("Simple")) {
|
machineClass = SimpleMachine.class;
|
||||||
machineClass = SimpleMachine.class;
|
} else {
|
||||||
} else {
|
machineClass = SymonMachine.class;
|
||||||
machineClass = SymonMachine.class;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,13 +96,11 @@ public class Main {
|
|||||||
|
|
||||||
|
|
||||||
Simulator.MAIN_CMD cmd = simulator.waitForCommand();
|
Simulator.MAIN_CMD cmd = simulator.waitForCommand();
|
||||||
if(cmd.equals(Simulator.MAIN_CMD.SELECTMACHINE)) {
|
if (cmd.equals(Simulator.MAIN_CMD.SELECTMACHINE)) {
|
||||||
machineClass = null;
|
machineClass = null;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -487,7 +487,11 @@ public class Simulator {
|
|||||||
long fileSize = f.length();
|
long fileSize = f.length();
|
||||||
|
|
||||||
if (fileSize > machine.getMemorySize()) {
|
if (fileSize > machine.getMemorySize()) {
|
||||||
throw new IOException("Program will not fit in available memory.");
|
throw new IOException("Program of size $" +
|
||||||
|
Integer.toString((int)fileSize, 16) +
|
||||||
|
" will not fit in available memory of size $" +
|
||||||
|
Integer.toString(machine.getMemorySize(), 16) +
|
||||||
|
".");
|
||||||
} else {
|
} else {
|
||||||
byte[] program = new byte[(int) fileSize];
|
byte[] program = new byte[(int) fileSize];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@ -572,8 +576,6 @@ public class Simulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class SelectMachineAction extends AbstractAction {
|
class SelectMachineAction extends AbstractAction {
|
||||||
Simulator simulator;
|
|
||||||
|
|
||||||
public SelectMachineAction() {
|
public SelectMachineAction() {
|
||||||
super("Switch emulated machine...", null);
|
super("Switch emulated machine...", null);
|
||||||
putValue(SHORT_DESCRIPTION, "Select the type of the machine to be emulated");
|
putValue(SHORT_DESCRIPTION, "Select the type of the machine to be emulated");
|
||||||
|
Loading…
Reference in New Issue
Block a user