Commit Graph

41 Commits

Author SHA1 Message Date
transistor
34bdd86772 Added address mask to memory accesses from the tests 2022-09-11 14:51:58 -07:00
transistor
c53253c050 Added more options to run select tests to harte test runner 2022-09-10 14:08:01 -07:00
transistor
10ca0c7995 Added watch command to debugger
It's a bit weirdly implemented because the Addressable trait doesn't
have access to System, so it has to set a flag on the Bus which is
then checked during the step function in System to activate the
breakpoint if a watched memory location was written to
2021-12-26 16:32:15 -08:00
transistor
188717e228 Added option to ignore reads/writes to unmapped bus areas 2021-12-25 16:30:07 -08:00
transistor
1b6cbfa831 Fixed some decoder bugs in m68k 2021-12-14 16:06:34 -08:00
transistor
148b4dcf2c Cleaned up warnings 2021-12-13 12:00:24 -08:00
transistor
9a751e5e90 Sega Genesis coprocessor bus is now working
I've added skeleton devices for the sound chips, and added the bank
register and banked area of ram mapped to the Z80's bus.  Sonic1 will
now run (if the ym2612 device's size is set to 0x1000 instead of 0x04)
2021-12-06 14:51:57 -08:00
transistor
1518ffbc60 Refactored ym7101 to store state unpacked
Previously it was storing data in the registers, which was an array
of u8, but now it's storing eg. full addresses for the scroll tables
so that they don't need to be fetched from the register values and
converted every rendering.  I was thinking this would maybe make
DMA debugging easier, in particular.
2021-12-04 13:55:58 -08:00
transistor
9464e4c75a Renamed joystick to controller in host traits 2021-12-02 15:04:41 -08:00
transistor
03f23da544 Added A and F instructions to m68k 2021-11-23 11:45:11 -08:00
transistor
812f6800a8 Minor fixes 2021-11-18 08:46:41 -08:00
transistor
a00d7b2f26 Fixed warnings 2021-11-13 11:39:20 -08:00
transistor
0836b6de8b Added decoding of most Z80 instructions, and additional bugfixes 2021-11-09 11:03:57 -08:00
transistor
b6cccea437 Added read only memory and debugger numbered continuations
There is also a breakpoint error, so that if a read-only memory
location is written to, it will escape to the debugger rather than
exiting the program.
2021-11-03 15:33:22 -07:00
transistor
892f93f053 Added BusPort to more accurately emulate the bus requests of the 68k
The BusPort is created before the CPU and is passed to it.  It can
have an offset, limit the address sizes, and break up bus request
beyond a certain number of bytes into multiple requests
2021-10-26 21:32:25 -07:00
transistor
8bbffbe34c Modified the read interface yet again 2021-10-26 17:33:23 -07:00
transistor
e81a5d430a Fixed some bugs and added the ROXd instruction 2021-10-19 19:50:42 -07:00
transistor
3fc76335d0 Moved m68k instruction types to their own file 2021-10-18 12:05:10 -07:00
transistor
1262cbd8c0 Modified to use a common trait to derive other traits 2021-10-17 10:39:43 -07:00
transistor
4bdbe7c7f0 Refactored a bit
Now all traits are in the devices file, and host adapters will be
in under src/host/.
2021-10-16 20:30:50 -07:00
transistor
853626584e Once again modified how the memory addressing works 2021-10-16 10:58:27 -07:00
transistor
91825e1cb9 Added a bunch of unit tests 2021-10-11 15:04:39 -07:00
transistor
c4f41d73ab Put the types and traits from system into new devices file 2021-10-08 23:11:52 -07:00
transistor
7bd7f3e64f Added cpu to system, and refactored m68k a bit 2021-10-07 11:35:15 -07:00
transistor
73d11ddb79 Switched to using Rc<RefCell<Box<dyn Trait>>> for devices 2021-10-07 09:41:01 -07:00
transistor
e186637f49 Refactored such that System is the top level object 2021-10-06 16:14:56 -07:00
transistor
59019d9c8e Refactored address space again 2021-10-05 19:58:22 -07:00
transistor
e561c533ef Added stack tracer and fixed bug with CMPA instruction 2021-10-04 11:13:10 -07:00
transistor
2f54c18fcf Modified memory operations to be simpler 2021-10-03 21:05:10 -07:00
transistor
338e68a1d9 Fixed some erroneous instruction decodes and added binaries 2021-10-03 09:55:20 -07:00
transistor
10e905674b Added MUL, DIV, NEG, DBcc, and Scc instructions, and fixed issue with ADD/SUB flags
With ADDA, SUBA, and ADDQ/SUBQ when the target is an address register, the condition
flags should not be changed, but the code was changing them, which caused problems.
I've fixed it by making the ADD/SUB executions check for an address target and
will not update flags in that case.  This should only occur when the actual instruction
was an ADDA or ADDQ with an address register target
2021-10-02 21:59:28 -07:00
transistor
f453e6dde2 Fixed bug in MOVEM and added multiple breakpoints 2021-10-01 22:06:53 -07:00
transistor
3c4e69378a Fixed pty code to actually read input 2021-10-01 17:53:55 -07:00
transistor
f7529bbb41 Added PTY terminal for I/O via the MC68681 module
Also fixed a bug where MOVEA needs to behave differently than MOVE,
such that the data is sign extended to a long and the condition flags
are not changed.  I also modifed how Addressable returns data because
I need to return owned data from MC68681, so that the stored data can
be updated (ie. the status flag must be modified after a read)
2021-10-01 12:25:23 -07:00
transistor
01b4bdf859 Added bit test instructions and got boot message working 2021-09-30 20:27:01 -07:00
transistor
e40663ee9a Fixed conditionals and split decode and execute cycles for debugging 2021-09-30 12:58:11 -07:00
transistor
b7148d3b06 Added serial device 2021-09-29 23:21:11 -07:00
transistor
92342c23ed More instruction execution, enough to loop
I'm using the monitor.bin binary built from computie to boot the
virtual machine, and it currently runs and loops, but there is no
actual serial device, so it's hard to tell if it's working correctly
2021-09-29 21:52:38 -07:00
transistor
9095333793 Reorganized and started working on the execution code 2021-09-29 17:11:48 -07:00
transistor
f22aa23dfa Completed most of the instruction decode 2021-09-29 12:24:04 -07:00
transistor
6a4f53ca2b Initial start with some structure for instruction decoding 2021-09-28 16:09:38 -07:00