Readme Update and Memory Window Look-and-Feel
This commit is contained in:
1 parent
9a00e21338
commit
61b342ff01
3 files changed
+84
-29
No files matched your search
@@ -4,62 +4,100 @@ SYMON - A 6502 System Simulator
|
||||
**NOTE: THIS IS BETA QUALITY SOFTWARE UNDER ACTIVE DEVELOPMENT. Feedback is
|
||||
welcome!**
|
||||
|
||||
**Version:** 0.8.0
|
||||
**Version:** 0.8.1
|
||||
|
||||
**Last Updated:** 29 December, 2012
|
||||
**Last Updated:** 30 December, 2012
|
||||
|
||||
Copyright (c) 2008-2012 Seth J. Morabito <web@loomcom.com>
|
||||
|
||||
See the file COPYING for license.
|
||||
|
||||
|
||||
![Symon Simulator in Action] (https://github.com/sethm/symon/raw/master/screenshots/full.jpg)
|
||||
|
||||
## 1.0 About
|
||||
|
||||
Symon is a general purpose simulator for systems based on the NMOS
|
||||
Mostek 6502 microprocessor and compatibles. Symon is implemented in
|
||||
Java. Its core goals are accuracy, ease of development, clear
|
||||
Symon is a general purpose simulator for systems based on the MOS
|
||||
Technologies 6502 microprocessor and compatibles. Symon is implemented
|
||||
in Java. Its core goals are accuracy, ease of development, clear
|
||||
documentation, and extensive test suites for validating correctness.
|
||||
|
||||
The initial goal is to simulate a system with an NMOS 6502 or CMOS
|
||||
65C02 central processor; one or more 6522 VIAs; and one or more 6551
|
||||
ACIAs. More functionality may be considered as time goes on.
|
||||
|
||||
Symon simulates a complete system with a 1 MHz NMOS 6502, 32KB of RAM,
|
||||
16KB of ROM, a 6551 ACIA, and a 6522 VIA.
|
||||
|
||||
## 2.0 Requirements
|
||||
|
||||
|
||||
- Java 1.5 or higher
|
||||
- Maven 2.0.x or higher (for building from source)
|
||||
- JUnit 4 or higher (for testing)
|
||||
|
||||
## 3.0 Features
|
||||
|
||||
## 3.0 Usage
|
||||
### 3.1 Serial Console and CPU Status
|
||||
|
||||
![Serial Console] (https://github.com/sethm/symon/raw/master/screenshots/console.png)
|
||||
|
||||
### 3.1 Building
|
||||
The main window of the simulator acts as the primary Input/Output
|
||||
system through a virtual serial terminal. The terminal is attached to
|
||||
a simulated MOS 6551 ACIA, including a programmable baud rate
|
||||
generator that tries to approximate the correct "feel" of the
|
||||
programmed baud rate. (The sample Enhanced BASIC ROM image is
|
||||
programmed for 9600 baud)
|
||||
|
||||
It also provides CPU status. Contents of the accumulator, index
|
||||
registers, processor status flags, disassembly of the instruction
|
||||
register, and stack pointer are all displayed.
|
||||
|
||||
![Font Selection] (https://github.com/sethm/symon/raw/master/screenshots/font_selection.png)
|
||||
|
||||
The console supports font sizes from 10 to 20 points.
|
||||
|
||||
### 3.2 16 KB ROM Loading
|
||||
|
||||
![ROM Loading] (https://github.com/sethm/symon/raw/master/screenshots/load_rom.png)
|
||||
|
||||
Symon can load any 16 KB (16384 bytes) ROM image from the "File"
|
||||
menu. The selected ROM will be placed in memory from locations `$C000`
|
||||
to `$FFFF`
|
||||
|
||||
### 3.3 Memory Window
|
||||
|
||||
![Memory Window] (https://github.com/sethm/symon/raw/master/screenshots/memory_window.png)
|
||||
|
||||
Memory contents can be viewed (and edited) one page at a time through the Memory Window.
|
||||
|
||||
### 3.4 Trace Log
|
||||
|
||||
![Trace Log] (https://github.com/sethm/symon/raw/master/screenshots/trace_log.png)
|
||||
|
||||
The last 20,000 execution steps are disassembled and logged to the Trace Log Window.
|
||||
|
||||
## 4.0 Usage
|
||||
|
||||
### 4.1 Building
|
||||
|
||||
To build Symon with Apache Maven, just type:
|
||||
|
||||
$ mvn package
|
||||
|
||||
Maven will build Symon, run unit tests, and produce a jar file in the
|
||||
'target' directory containing the compiled simulator.
|
||||
`target` directory containing the compiled simulator.
|
||||
|
||||
Symon is meant to be invoked directly from the jar file. To run with
|
||||
Java 1.5 or greater, just type:
|
||||
|
||||
$ java -jar symon-0.7.0.jar
|
||||
$ java -jar symon-0.8.1.jar
|
||||
|
||||
When Symon is running, you should be presented with a simple graphical
|
||||
interface.
|
||||
|
||||
### 3.2 ROM images
|
||||
### 4.2 ROM images
|
||||
|
||||
The simulator requires a 16KB ROM image loaded at address $C000 to $FFFF to
|
||||
The simulator requires a 16KB ROM image loaded at address `$C000` to `$FFFF` to
|
||||
work properly. Without a ROM in memory, the simulator will not be able to
|
||||
reset, since the reset vector for the 6502 is located in this address space.
|
||||
|
||||
By default, any 16KB file named 'rom.bin' that exists in the same directory
|
||||
By default, any 16KB file named `rom.bin` that exists in the same directory
|
||||
where Symon is launched will be loaded as a ROM image. ROM images can also
|
||||
be swapped out at run-time with the "Load ROM Image..." in the File menu.
|
||||
|
||||
@@ -67,7 +105,7 @@ The "samples" directory contains a ROM image named 'ehbasic.rom', containing
|
||||
Lee Davison's Enhanced 6502 BASIC. This serves as a good starting point for
|
||||
exploration.
|
||||
|
||||
### 3.3 Loading A Program
|
||||
### 4.3 Loading A Program
|
||||
|
||||
In addition to ROM images, programs in the form of raw binary object files can
|
||||
be loaded directly into memory from "Load Program..." in the File menu.
|
||||
@@ -83,13 +121,14 @@ for testing.
|
||||
|
||||
- 'hello.prg' will continuously print "Hello, 6502 World!" to the console.
|
||||
|
||||
### 3.4 Running
|
||||
### 4.4 Running
|
||||
|
||||
After loading a program or ROM image, clicking "Run" will start the simulator
|
||||
running.
|
||||
|
||||
## 4.0 Revision History
|
||||
## 5.0 Revision History
|
||||
|
||||
- 0.8.1: 30 December, 2012
|
||||
- 0.8.0: 29 December, 2012
|
||||
- 0.7.0: 9 December, 2012
|
||||
- 0.6: 5 November, 2012
|
||||
@@ -98,14 +137,12 @@ running.
|
||||
- 0.2: 22 April, 2012
|
||||
- 0.1: 20 January, 2010
|
||||
|
||||
## 5.0 To Do
|
||||
## 6.0 To Do
|
||||
|
||||
- Feedback (in the form of dialogs, status bar, etc).
|
||||
|
||||
- Better ROM image handling
|
||||
|
||||
- Better debugging tools from the UI, including memory inspection,
|
||||
disassembly, breakpoints, and execution tracing.
|
||||
- Better debugging tools from the UI, including breakpoints
|
||||
and disassebly.
|
||||
|
||||
- More accurate timing.
|
||||
|
||||
@@ -127,7 +164,7 @@ running.
|
||||
debugging.
|
||||
|
||||
|
||||
## 6.0 Licensing
|
||||
## 7.0 Licensing
|
||||
|
||||
Symon is free software. It is distributed under the MIT License.
|
||||
Please see the file 'COPYING' for full details of the license.
|
||||
Reference in new issue
Block a user