Commit Graph

375 Commits

Author SHA1 Message Date
transistor f2a23a21cb Added ROd instruction and fixed bug with MOVEM 2021-10-05 16:22:21 -07:00
transistor f5283730c2 Added start of ata device 2021-10-04 13:02:58 -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 dd21771bb3 Added better processing of debug commands, and timers 2021-10-03 20:45:50 -07:00
transistor bc7fee5221 Updated readme 2021-10-03 10:00:58 -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 98883e3daa Added the Asd, LINK, and UNLK instructions 2021-10-02 15:35:08 -07:00
transistor 80c8fe9797 Fixed bug with PC offsets and the value of PC when calculated 2021-10-02 09:48:21 -07:00
transistor 4b577ad403 Separated debugging code into its own file 2021-10-02 09:35:25 -07:00
transistor 38bcf0af3f Reorganized state and decoding into their own structs 2021-10-02 08:47:20 -07:00
transistor f453e6dde2 Fixed bug in MOVEM and added multiple breakpoints 2021-10-01 22:06:53 -07:00
transistor b0f094cb59 Added start of a testsuite 2021-10-01 19:27:05 -07:00
transistor 3c4e69378a Fixed pty code to actually read input 2021-10-01 17:53:55 -07:00
transistor a5cac4d309 Fixed indexing, flags, and added logical shift
The effective modes that used signed offsets were not properly
sign extending the immediate or register index values before adding
them to the address, resulting in incorrect addresses.

The flags were incorrect for some instructions, and I added the
logical shift instruction implementation
2021-10-01 15:38:21 -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 7868bc3014 Fixed instruction decode for MOVEM and EXT
It's now possible to run the monitor program until it loops waiting
for the serial transmitter to be ready for writing
2021-09-30 15:15:23 -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