1
0
mirror of https://github.com/sethm/symon.git synced 2024-06-29 15:29:26 +00:00
Commit Graph

116 Commits

Author SHA1 Message Date
Maik Merten
f90516e53c fix a possible NPE 2014-07-26 18:55:51 +02:00
Maik Merten
fdaeb661d3 add menu entry to allow to switch the emulated machine type 2014-07-26 18:52:57 +02:00
Maik Merten
827e9991d5 move main method into Main class in anticipation of changes that allow restarting the complete UI from within the Simulator menu system 2014-07-26 18:07:29 +02:00
Maik Merten
dc7dfc4b4d code simplification 2014-07-25 21:44:43 +02:00
Maik Merten
2217f3831d slight JavaDoc fix regarding what Exception can be thrown 2014-07-25 21:27:40 +02:00
Maik Merten
52f4e9a00f enforce that the address range of devices falls within the address range of the bus. Turned out that the CPU tests instantiate memory with the last parameter as memory size, not end address (fixed now). Also make sure that the address lookup array takes the offset caused by non-zero starting addresses into account. 2014-07-25 21:24:16 +02:00
Maik Merten
d7f8045b61 rework bus. Don't throw an Exception any more with overlapping device addresses - this is normal for some machines. Introduce the concept of priorities to ensure that device overlap in the correct order. 2014-07-25 19:32:00 +02:00
Maik Merten
222772648d simple dialog for choosing machine model when no command-line option was given 2014-07-22 17:50:06 +02:00
Maik Merten
bd2337ae65 allow for selecting the emulated machien type with the "-machine" parameter. The default is the Symon machine model, the Multicomp machine can be selected with "-machine multicomp". 2014-07-21 17:39:20 +02:00
Maik Merten
a49c0d40d8 revert back to busy waiting for CPU speed emulation to have a less bursty CPU behavior 2014-07-20 21:55:01 +02:00
Maik Merten
44bfbc17ab replace busy waiting to emulate "proper" CPU speed with some time book keeping and thread sleeping 2014-07-19 20:19:26 +02:00
Maik Merten
b266a02372 have full 56K of RAM for the Multicomp machine 2014-07-19 17:51:51 +02:00
Maik Merten
72074b9715 Silence a compiler warning regarding generics 2014-07-19 17:40:19 +02:00
Maik Merten
252ebe0569 implement overrun status flag for the 6551 ACIA 2014-07-19 17:30:23 +02:00
Maik Merten
4a37dd7463 move overrun detection and reset into the abstract superclass for ACIAs 2014-07-19 17:10:57 +02:00
Maik Merten
cf36f731da make use of the MulticompMachine in the simulator. This should be an option, not hardcoded. 2014-07-17 21:59:03 +02:00
Maik Merten
e01f68a19a make use of overlapping memory regions in MulticompMachine 2014-07-17 21:45:37 +02:00
Maik Merten
44151f3a9c have the Bus support devices with overlapping memory regions 2014-07-17 21:43:46 +02:00
Maik Merten
f5a25b7303 initial definition of the MULTICOMP machine. Will not yet run, as the bus will currently not allow overlapping memory ranges for devices. 2014-07-17 20:41:26 +02:00
Maik Merten
14e8ea596c define an interface for supported machines and have the SymonMachine as first implementation. Remove machine-specific definitions out of the Simulator class. 2014-07-17 19:42:51 +02:00
Maik Merten
8f52e1da1e implement overrun flag for 6850 ACIA 2014-07-16 22:26:06 +02:00
Maik Merten
0d0fddc365 tests for the 6850 ACIA and fixes in ACIA behavior 2014-07-16 21:51:34 +02:00
Maik Merten
31fdd87b41 turn Acia into an abstract class so that the 6551 and 6850 ACIAs can reuse code and an unified interface. 2014-07-15 21:35:19 +02:00
Maik Merten
9726907317 initial (and untested) implementation of a Motorola 6850 ACIA 2014-07-15 18:45:13 +02:00
Seth Morabito
40c5397ed8 Faster refresh of memory window 2014-07-06 12:17:39 -07:00
Seth Morabito
1bc8eda38d ACIA interrupt handling 2014-01-26 01:25:12 -08:00
Seth Morabito
76dcbd712a IRQ and NMI handling at CPU level. 2014-01-25 20:45:39 -08:00
Seth Morabito
b6cc480919 Add NMI flag to CPU 2014-01-25 20:02:17 -08:00
Seth Morabito
0c5035fc56 Add interrupt flag to CPU 2014-01-25 19:53:53 -08:00
Seth Morabito
4a510b635e README updates, CRTC tests.
- Added more CRTC information to the README file.
- Added unit tests for the CRTC.
- Implemented register read for cursor position in the CRTC.
- Bundling a new version of jterminal that has correct backspace
  behavior.
2013-12-29 18:18:48 -08:00
Seth Morabito
070e9db813 Merge branch 'master' into crtc
Conflicts:
	src/main/java/com/loomcom/symon/Simulator.java
	src/main/java/com/loomcom/symon/devices/Device.java
	src/main/java/com/loomcom/symon/devices/Memory.java
2013-12-28 23:35:22 -08:00
Seth Morabito
3c68c63995 Additional refactoring 2013-12-28 23:14:21 -08:00
Seth Morabito
6dde766f5a Refactor of CRTC 2013-12-28 19:55:26 -08:00
Seth Morabito
e7e3c77e3f First pass at Video window 2013-12-27 21:40:28 -08:00
Max840
bc6b93e3fe Optimization of Bus.isComplete() 2013-12-26 17:25:52 -05:00
Max840
d8deca227f Create Device.size() 2013-12-24 15:35:56 -05:00
Max840
1c9c742477 Unit test updated with devices' start/end address 2013-12-23 23:38:38 -05:00
Max840
d1a05aeb2b Devices use start/end address 2013-12-23 23:31:51 -05:00
Seth Morabito
a5af522c5c Force no grid on memory window 2013-03-30 22:27:33 -07:00
Seth Morabito
6a50476bfe Step Count and Memory Window enhancements
Introduces several changes requested by Mario Keller. The simulator now has a variable step count that can be selected by a drop-down box on the main window. This change also displays ASCII characters in the Memory window.
2013-03-30 21:28:52 -07:00
Jay Sissom
429fec97b2 Fix disassembled opcode display on trace log for zero page,X and zero page,Y addressing modes. 2013-03-04 22:10:25 -05:00
Seth Morabito
4ccb7bec97 Tooltip Text and Minor Enhancements
- Added tooltip text to status panel.
- Memory is no longer cleared on reset.
- Console can now receive key-strokes even while the simulator is
  stopped (for single-stepping programs that require interaction)
- Updated screenshots with bug-fixed version.
2013-01-12 11:41:32 -08:00
Seth Morabito
34fb8940ae Fix swapped labels on status pane
The labels for the X and Y registers were swapped on the status pane.
How embarrassing!
2013-01-05 14:26:16 -08:00
Seth Morabito
da8250778e Bug Fixes and Copyright Date Change
The simulator now passes Klaus Dormann's 6502 Functional Test suite for
the first time.

Bug Fixes:

- PHP was not correctly setting the Break bit on the stack copy of the
  processor status, so subsequent PLA's would not set the Break status
  flag.

- The CPU had swapped NMI and IRQ reset vectors, so RTI was failing.

- BRK was pushing PC + 2 onto the stack, instead of PC + 1

- (Zero Page,X) addressing mode did not correctly wrap on zero page
  boundaries.

- The instruction table used for disassembly had addressing modes
  of LDA $B9 and $BD reversed. This did not affect behavior, only
  disassembly of these instructions.

Other:

- Updated copyright date for 2013.

- Started migrating old JUnit 3 style tests to JUnit 4 annotations.
2013-01-01 17:03:16 -08:00
Seth Morabito
61b342ff01 Readme Update and Memory Window Look-and-Feel 2012-12-30 23:01:33 -08:00
Seth Morabito
3636e78435 Cleanup and Bug Fixes
- Fixed a bug that left View menu items checked after the associated
  windows closed.

- Cleaned up UI init code for several components.
2012-12-30 12:14:30 -08:00
Seth Morabito
933b09827a Cleanup and Javadoc 2012-12-30 11:27:10 -08:00
Seth Morabito
3d620711a9 Fixing imports. 2012-12-29 22:53:01 -08:00
Seth Morabito
f7c5c3b763 Memory Window, Minor Bugfixes
Adds a new view that displays a single page of memory (user selectable)
and allows direct editing of memory contents.

Also fixes several minor bugs, including one that prevented the status
pane from updating after each manual step.
2012-12-29 22:47:23 -08:00
Seth Morabito
0215e2e3d8 Cleaner simulator startup and run-loop exiting
- If a default ROM image ("rom.bin") isn't available at startup, the
  simulator will now create and load a 16KB R/W memory at the ROM
  location, so resets will work even without a ROM loaded.

- Cleaned up the way simulator UI state is updated when the run loop
  exits.
2012-12-10 21:53:01 -08:00