Updates for 0.9.9

This commit is contained in:
Seth Morabito committed 2014-07-26 13:18:07 -07:00
1 parent 4bb6d55fa2
commit ac21b2c126
1 file changed
+53 -29
+53 -29
View File
@@ -3,15 +3,16 @@ 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.1.0 **Version:** 0.9.9.0
**Last Updated:** 29 December, 2013 **Last Updated:** 26 July, 2014
Copyright (c) 2013 Seth J. Morabito <web@loomcom.com> Copyright (c) 2014 Seth J. Morabito <web@loomcom.com>
Portions Copyright (c) 2014 Maik Marten <maikmarten@googlemail.com>
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)
## 1.0 About ## 1.0 About
@@ -22,7 +23,8 @@ in Java. Its core goals are accuracy, ease of development, clear
documentation, and extensive test suites for validating correctness. documentation, and extensive test suites for validating correctness.
Symon simulates a complete system with a 1 MHz NMOS 6502, 32KB of RAM, Symon simulates a complete system with a 1 MHz NMOS 6502, 32KB of RAM,
16KB of ROM, a 6551 ACIA, a 6522 VIA, and a 6545 CRTC. 16KB of ROM, a MOS 6551 or Motorola 6850 ACIA, a MOS 6522 VIA, and an
experimental 6545 CRTC.
Symon has extensive unit tests to verify correctness, and fully passes Symon has extensive unit tests to verify correctness, and fully passes
Klaus Dormann's 6502 Functional Test Suite as of version 0.8.2 Klaus Dormann's 6502 Functional Test Suite as of version 0.8.2
@@ -31,21 +33,33 @@ for more information about this functional test suite).
## 2.0 Requirements ## 2.0 Requirements
- Java 1.5 or higher - Java 1.7 or higher
- Maven 2.0.x or higher (for building from source) - Maven 2.0.x or higher (for building from source)
- JUnit 4 or higher (for testing) - JUnit 4 or higher (for testing)
## 3.0 Features ## 3.0 Features
### 3.1 Memory Map Symon can simiulate multiple 6502 based architectures. At present, two
machines are implemented: Symon (the default), and MULTICOMP.
### 3.1 Memory Maps
#### 3.1.1 Symon Memory Map
- `$0000`--`$7FFF`: 32KB RAM - `$0000`--`$7FFF`: 32KB RAM
- `$8000`--`$800F`: 6522 VIA - `$8000`--`$800F`: 6522 VIA
- `$8800`--`$8803`: 6551 ACIA (Serial Console) - `$8800`--`$8803`: MOS 6551 ACIA (Serial Console)
- `$9000`--`$9001`: 6545 CRTC - `$9000`--`$9001`: MOS 6545 CRTC
- `$C000`--`$FFFF`: 16KB ROM - `$C000`--`$FFFF`: 16KB ROM
The CRT Controller uses memory address `$7000` as the start of Video memory. The CRT Controller uses memory address `$7000` as the start of Video
memory.
#### 3.1.2 MULTICOMP Memory Map
- `$0000`--`$DFFF`: 56KB RAM
- `$E000`--`$FFFF`: 8KB ROM
- `$FFD0`--`$FFD1`: Motorola 6850 ACIA
### 3.2 Serial Console and CPU Status ### 3.2 Serial Console and CPU Status
@@ -53,10 +67,9 @@ The CRT Controller uses memory address `$7000` as the start of Video memory.
The main window of the simulator acts as the primary Input/Output The main window of the simulator acts as the primary Input/Output
system through a virtual serial terminal. The terminal is attached to system through a virtual serial terminal. The terminal is attached to
a simulated MOS 6551 ACIA, including a programmable baud rate a simulated ACIA, including a programmable baud rate generator that
generator that tries to approximate the correct "feel" of the tries to approximate the correct "feel" of the programmed baud rate.
programmed baud rate. (The sample Enhanced BASIC ROM image is (The sample Enhanced BASIC ROM image is programmed for 9600 baud)
programmed for 9600 baud)
It also provides CPU status. Contents of the accumulator, index It also provides CPU status. Contents of the accumulator, index
registers, processor status flags, disassembly of the instruction registers, processor status flags, disassembly of the instruction
@@ -66,13 +79,16 @@ register, and stack pointer are all displayed.
The console supports font sizes from 10 to 20 points. The console supports font sizes from 10 to 20 points.
### 3.3 16 KB ROM Loading ### 3.3 ROM Loading
![ROM Loading] (https://github.com/sethm/symon/raw/master/screenshots/load_rom.png) ![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" Symon can load any appropriately sized ROM image. The Symon
menu. The selected ROM will be placed in memory from locations `$C000` architecture expects as 16KB (16384 byte) ROM image, while the
to `$FFFF` MULTICOMP architecture expects an 8KB (8192 byte) ROM image. Images
are loaded via the "Load ROM..." action in the "File" menu. The
selected ROM file will be loaded into memory at the correct ROM base
address.
### 3.4 Memory Window ### 3.4 Memory Window
@@ -161,17 +177,22 @@ interface.
### 4.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 ROM image loaded into memory to work
work properly. Without a ROM in memory, the simulator will not be able to 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. reset, since the reset vector for the 6502 is located in the ROM
address space.
By default, any 16KB file named `rom.bin` that exists in the same directory By default, any 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 where Symon is launched will be loaded as a ROM image. ROM images can
be swapped out at run-time with the "Load ROM Image..." in the File menu. also be swapped out at run-time with the "Load ROM Image..." in the
File menu.
The "samples" directory contains a ROM image named 'ehbasic.rom', containing The "samples" directory contains a ROM image for the Symon
Lee Davison's Enhanced 6502 BASIC. This serves as a good starting point for architecture named 'ehbasic.rom', containing Lee Davison's Enhanced
exploration. 6502 BASIC. This serves as a good starting point for exploration.
*Note*: Presently, EhBASIC only works with the Symon machine
architecture, not with MULTICOMP.
### 4.3 Loading A Program ### 4.3 Loading A Program
@@ -196,6 +217,9 @@ running.
## 5.0 Revision History ## 5.0 Revision History
- **0.9.9:** 26 July, 2014 - MULTICOMP and multi-machine support
contributed by Maik Marten <maikmarten@googlemail.com>
- **0.9.1:** 26 January, 2014 - Support for IRQ and NMI handling. - **0.9.1:** 26 January, 2014 - Support for IRQ and NMI handling.
- **0.9.0:** 29 December, 2013 - First pass at a 6545 CRTC simulation. - **0.9.0:** 29 December, 2013 - First pass at a 6545 CRTC simulation.
@@ -234,8 +258,6 @@ running.
- Better debugging tools from the UI, including breakpoints - Better debugging tools from the UI, including breakpoints
and disassembly. and disassembly.
- More accurate timing.
- UI needs a ton more polish. - UI needs a ton more polish.
- More extensive testing. - More extensive testing.
@@ -247,6 +269,8 @@ running.
- Allow displaying ACIA status and dumping ACIA buffers, for - Allow displaying ACIA status and dumping ACIA buffers, for
debugging. debugging.
- Symbolic debugging.
## 7.0 Acknowledgements ## 7.0 Acknowledgements
This project would not have been possible without the following resources: This project would not have been possible without the following resources: