Seth Morabito
c1caf8c6b4
Timing and UI enhancements.
...
This change introduces simulated baud rates in the ACIA. Baud rate is controlled just as in the real 6551, by writing to the ACIA's control register. Baud rates between 50 and 19,200 baud are selectable. A baud rate of 0 has special meaning, and turns off all simulated baud rate delays (on a real 6551, this means to use an external clock instead of the internal baud rate generator)
A busy-wait loop between steps in the simulator control program has also been added. This uses the high-resolution 'System.nanoTime()' call to wait a specific number of nanoseconds before continuing. Symon now waits at least 1uS between clock cycles, trying to approach a real 1MHz 6502 in performance. It is far from perfect, but it's better than it was.
Also refactored the status panel to use a BoxLayout, and DRY-up some of the code.
2012-10-14 17:56:19 -07:00
Seth Morabito
c214cc9b43
Fixes and enhancements.
...
- Added ability to change inner border width of console window.
- Fixed a nasty bug that prevented key press handling.
- Reset now clears the accumulator and index registers.
2012-10-14 00:25:03 -07:00
Seth Morabito
e012d97bb3
Added clarifying curly braces.
2012-10-12 14:34:18 -07:00
Seth Morabito
365809459c
Finally handling key presses in the console! (Took long enough, huh?) Added a dead simple console echo example program in 6502 assembly, as well.
2012-10-11 16:08:04 -07:00
Seth Morabito
ed36690e9e
Checkpoint of my Swing UI refactoring. Usable for output-only programs, but only barely.
2012-05-28 22:18:35 -07:00
Seth Morabito
a1d07bf223
First work toward moving to a Swing UI for the simulator.
2012-04-22 20:49:18 -07:00
Seth J. Morabito
00ab8cd9ff
Simulator is just about ready for real-world testing now. Added a simulated
...
MOS6551 ACIA at address $C000 which does buffered input and output via the
console. Updated the README with a bit more documentation, and bumped the
version number to 0.1 because I'm impatient.
2010-01-20 18:19:39 -08:00
Seth Morabito
596d05e398
Clearer help output (I hope). Fixed an off-by-one bug in doLoad.
2010-01-17 21:12:24 -08:00
Seth J. Morabito
3d4500cbff
Removed Profiler. It may return in a future release.
2010-01-16 22:22:24 -08:00
Seth Morabito
e157f4a972
More cleanup of the monitor. Added binary file load command.
2010-01-16 21:17:37 -08:00
sethm
a3e57274a2
- Major overhaul of the Simulator control class (where 'main' lives).
...
- Removed the CommandParser class entirely, as the weird dependency between
Simulator and CommandParser never made me comfortable.
- Added a Command inner class to Simulator that handles some of the
command line tokenizing.
2010-01-16 19:22:22 -08:00
Seth Morabito
5c7a98df86
Playing around with the command parser and the Simulator class. Safe to ignore.
2010-01-16 08:56:34 +00:00
Seth Morabito
f174f0312f
* Correct implementation of Indirect Indexed and Indexed Indirect addressing modes.
...
* Unit tests for Indirect Indexed and Indexed Indirect.
* Updated copyright dates.
* Started moving to JUnit 4.
2010-01-15 08:20:03 +00:00
Seth Morabito
d858a50f1b
- Updated Cobertura Maven plugin to version 2.3 (threadsafe)
...
- Finished refactor of instruction argument address decoding.
Much DRYer now (but could still be DRYer yet).
2010-01-10 02:28:55 -08:00
sethm
4104d6212e
Added Indirect X Mode Tests
2010-01-10 01:18:45 -08:00
Seth J. Morabito
ac88786df7
- Continued refactoring of address decoding.
...
- Device read and write may now throw MemoryAccessException, and appropriate
throws clauses have been added throughout the code.
2010-01-09 16:53:04 -08:00
Seth Morabito
a01090a16e
Part-way through the Great Refactoring of Instruction Decoding(tm)
2010-01-09 19:51:56 +00:00
Seth Morabito
ed943687bf
Implemented Relative mode (branch) instructions and unit tests. Fixed
...
a bug in the instruction size table.
2009-01-07 18:26:11 -08:00
Seth Morabito
f21a0d76e9
Implemented Absolute,Y addressing mode and unit tests.
2009-01-07 16:50:36 -08:00
Seth Morabito
dccf73a6b7
Implemented instructions using the Absolute,X addressing mode. There's
...
light at the end of the tunnel now!
2008-12-29 21:47:19 -08:00
Seth Morabito
107aca7777
Implemented Zero Page,X, Zero Page,Y, and Indirect addressing mode instructions, along with unit tests.
2008-12-29 20:46:48 -08:00
Seth Morabito
4b28ab4808
Implemented Absolute addressing mode instructions. All unit tests pass.
2008-12-28 23:11:16 -08:00
Seth J. Morabito
24458da79e
Implemented Accumulator mode instructions. Grouped all unimplemented (65C02 and 65816 only) instructions together in a single fall-through area of the instruction decoding switch statement. Added an unimpelmented instruction trap member variable.
2008-12-28 17:55:02 -08:00
Seth J. Morabito
c93a03d4f4
Improved README. Fixed typo in InstructionTable.java
2008-12-27 21:46:13 -08:00
Seth J. Morabito
8bcd8a4a75
Whitespace and indentation canonicalization. That's what I get for using two editors.
2008-12-27 21:09:47 -08:00
Seth J. Morabito
d54ad18b17
All zero page instructions implemented. Tests passing.
2008-12-27 20:59:10 -08:00
Seth J. Morabito
ecde55c6b8
Started on Zero Page opcodes and tests.
2008-12-27 13:01:07 -08:00
Seth J. Morabito
de0742f59f
Started skeleton of Zero Page tests.
2008-12-27 09:59:49 -08:00
Seth J. Morabito
7766e76362
BCD is finally working. I thought that would never happen.
...
All Immediate Mode and Implied Mode opcodes have been implemented. Next up, zero page!
2008-12-27 01:43:07 -08:00
Seth J. Morabito
06ed74e89c
Fixed the BRK instruction. Added SBC and ADC in Binary Coded Decimal
...
mode. More unit tests.
2008-12-26 02:13:11 -08:00
Seth J. Morabito
b46c4e1bec
Finished implementing all implied mode instructions, with tests.
2008-12-23 16:36:09 -08:00
Seth J. Morabito
f012ba7775
More implied mode instructions implemented, with tests.
2008-12-23 16:06:09 -08:00
Seth J. Morabito
473b47e832
At long last, implemented BRK. Lots more unit tests for stack processing, as well.
2008-12-23 02:21:27 -08:00
Seth J. Morabito
46a5943736
Implemented set/clear flag instructions. More tests, but SBC is still BROKEN.
2008-12-20 02:00:45 -08:00
Seth J. Morabito
088b0823e1
More unit tests. SBC partially working, but I need to figure out what's going wrong.
2008-12-15 02:26:13 -08:00
Seth J. Morabito
1bd59b048b
Some API changes, lots of test changes.
2008-12-14 23:43:04 -08:00
Seth J. Morabito
6443cacdb9
Implemented ADC
2008-12-14 01:54:53 -08:00
sethm
1c6c5fdaeb
Implemented boolean immediate mode instructions.
2008-12-14 01:09:23 -08:00
Seth Morabito
3f74489757
Renamed project to "Symon".
2008-12-13 14:59:22 -08:00
Seth Morabito
9a6a256073
1. CPU now correctly sets Zero and Negative flags for LDA, LDX, and LDY
...
immediate mode instructions.
2. Added unit tests for LDA, LDX, LDY immediate mode instructions.
2008-12-13 01:53:15 -08:00
sethm
59e5572039
Process Status Register bits have been added.
2008-12-13 00:50:14 -08:00
Seth Morabito
7e36444193
Added stack functions.
2008-12-12 01:02:31 -08:00
Seth Morabito
6915331cca
Added LDX, LDY immediate.
2008-12-12 00:45:55 -08:00
sethm
fb3db6b65f
Our first test program is running!
2008-12-12 00:37:54 -08:00
sethm
7ccde7dc1b
Reformatting
2008-12-11 21:47:41 -08:00
Seth Morabito
d18c1c7f82
Instruction Table interface.
2008-12-11 19:33:44 -08:00
Seth Morabito
8df561d292
Changed the CPU and Device interface a bit.
2008-12-11 17:22:39 -08:00
Seth J. Morabito
a54dbc323d
Profiling. Made a new directory for exceptions.
2008-12-11 16:38:39 -08:00
Seth Morabito
6f678af3df
Renamed AddressDecoder to Bus
2008-12-11 11:41:05 -08:00
Seth J. Morabito
0e212e71e5
Tests for AddressDecoder. Fixed a bug in isComplete().
2008-12-10 19:57:38 -08:00
Seth Morabito
af7743b385
Much saner implementation of 'overlaps' method.
2008-12-08 22:12:28 -08:00
Seth J. Morabito
5bbd72d44e
Unit testing. MemoryRange work.
2008-12-08 20:40:27 -08:00
Seth J. Morabito
061eeba85c
There is already an existing project (albeit defunct) named j6502. Name changed to lm6502.
2008-12-08 14:28:44 -08:00
Seth J. Morabito
316d0feac6
Standardized tabs, indent, and whitespace. Finally!
2008-12-08 14:03:23 -08:00
Seth Morabito
e3300d3166
Lots of whitespace changes after importing the project into Eclipse
2008-12-06 14:39:54 -08:00
Seth Morabito
a6abc2cd23
Fleshing out some of the interface for the CPU, Simulator, and Devices.
2008-12-05 20:00:48 -08:00
Seth J. Morabito
0163ae47b4
Nicer prompt
2008-12-05 18:09:32 -08:00
Seth J. Morabito
a74322459a
Command Parser.
2008-12-05 18:03:00 -08:00
Seth J. Morabito
7f31c4c950
Initial project creation
2008-12-05 16:44:33 -08:00