Commit Graph

29 Commits

Author SHA1 Message Date
transistor
2d8e5f6359 Added support for long word MUL and DIV instructions 2021-10-18 21:22:57 -07:00
transistor
731c89845e Added MC68020+ addressing modes 2021-10-18 15:44:42 -07:00
transistor
3fc76335d0 Moved m68k instruction types to their own file 2021-10-18 12:05:10 -07:00
transistor
32d2d591ce Added bit field instructions, and fixed some bugs 2021-10-17 21:18:59 -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
ffd4faa9a3 Fixed decode of EXT, and fixed some bugs with 020+ code 2021-10-15 14:37:31 -07:00
transistor
1732c90f5b Added formatter for Instruction to output assembly 2021-10-15 11:12:47 -07:00
transistor
43b1abfa19 Minor changes 2021-10-14 21:16:31 -07:00
transistor
e558fc01bf Refactored and fixed some warnings 2021-10-11 15:16:04 -07:00
transistor
39ecd1b0d9 Added decode for ABCD and SBCD 2021-10-10 20:47:51 -07:00
transistor
94141e112e Reorganized decode and add some support for other m68k processors 2021-10-10 14:26:54 -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
f2a23a21cb Added ROd instruction and fixed bug with MOVEM 2021-10-05 16:22:21 -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
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
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
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