Added Klaus Dormann's tests

This commit is contained in:
Seth Morabito committed 2014-08-10 16:52:20 -07:00
1 parent 36615fc70b
commit 59c6d8e23b
7 files changed
+25326 -12

No files matched your search

+12 -3
View File
@@ -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.
Binary file not shown.
+13999
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
+2 -6
View File
@@ -71,16 +71,14 @@ 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.equals("Simple")) { } else if (s != null && s.equals("Simple")) {
machineClass = SimpleMachine.class; machineClass = SimpleMachine.class;
} else { } else {
machineClass = SymonMachine.class; machineClass = SymonMachine.class;
} }
} }
}
final Simulator simulator = new Simulator(machineClass); final Simulator simulator = new Simulator(machineClass);
@@ -104,7 +102,5 @@ public class Main {
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");