Nick Krichevsky
|
f647919ae0
|
Implement SWAP r8 instructions
|
2023-12-06 20:28:59 -05:00 |
Nick Krichevsky
|
7e44edeb24
|
Add BIT instruction support
|
2023-12-06 19:48:54 -05:00 |
Nick Krichevsky
|
70c5766f92
|
Add tests for clear (HL) instruction
The previous refactor implemented it implicitly
|
2023-12-06 16:33:04 -05:00 |
Nick Krichevsky
|
93d7493ac5
|
Refactor bit manipulation operations to deduplicate code
|
2023-12-06 16:28:33 -05:00 |
Nick Krichevsky
|
b71a4991b1
|
Add RES r8 instruction
|
2023-12-06 16:14:07 -05:00 |
Nick Krichevsky
|
6447db5df7
|
Refactor bit manipulation HL instructions
|
2023-12-06 15:44:56 -05:00 |
Nick Krichevsky
|
4202e70240
|
Implement SET (HL) opcodes
|
2023-11-27 08:45:29 -05:00 |
Nick Krichevsky
|
c9970dc1d8
|
Add support for register-based SET instructions
|
2023-11-27 08:26:33 -05:00 |
Nick Krichevsky
|
61f64af4a4
|
tmp
|
2023-11-26 23:16:33 -05:00 |
Nick Krichevsky
|
9e785d117c
|
Add unknown opcode type, use it for parsing
|
2023-11-26 23:14:46 -05:00 |
Nick Krichevsky
|
8b088da74d
|
Clean up logic in conditional control actions
|
2023-11-26 21:07:55 -05:00 |
Nick Krichevsky
|
d53bed716a
|
Add conditional relative jumps
|
2023-11-26 20:26:34 -05:00 |
Nick Krichevsky
|
709b0dd82e
|
Implement JR instruction
|
2023-11-25 22:58:39 -05:00 |
Nick Krichevsky
|
bc17febf78
|
Fix bug where jumping to the PC would still advance the PC
|
2023-11-25 22:55:47 -05:00 |
Nick Krichevsky
|
94f3fff94e
|
Undisable erroneously disabled jsmoo tests
|
2023-11-25 22:08:07 -05:00 |
Nick Krichevsky
|
552884b1cb
|
Add conditional return instructions
|
2023-11-25 22:02:59 -05:00 |
Nick Krichevsky
|
a3f6025a6f
|
Implement RETI
|
2023-11-25 21:41:35 -05:00 |
Nick Krichevsky
|
cd05183bb3
|
Add JP HL instruction
|
2023-11-21 23:21:05 -05:00 |
Nick Krichevsky
|
49f2e53e4e
|
Implement RST instruction
|
2023-11-21 22:56:28 -05:00 |
Nick Krichevsky
|
01cf67ca35
|
Simplify control flow parsing logic
|
2023-11-21 22:11:03 -05:00 |
Nick Krichevsky
|
fc76248853
|
Add OrParse trait to simplify chained parsers
|
2023-11-21 20:29:48 -05:00 |
Nick Krichevsky
|
827aef74f8
|
Add conditional jumps
|
2023-11-21 20:14:40 -05:00 |
Nick Krichevsky
|
a5e838dda4
|
Speed up JSMoo tests by including them in the binary
|
2023-11-21 19:47:04 -05:00 |
Nick Krichevsky
|
6eb5f42ea4
|
Add conditional CALL instructions
|
2023-11-21 19:11:39 -05:00 |
Nick Krichevsky
|
e6adf5d6af
|
Implement unconditional CALL instruction
|
2023-11-21 15:50:17 -05:00 |
Nick Krichevsky
|
f5b0ba2a2f
|
Add initial register values to Processor::default
|
2023-11-21 15:22:53 -05:00 |
Nick Krichevsky
|
206f364421
|
Fix assertion order in jsmoo tests
|
2023-11-21 15:02:42 -05:00 |
Nick Krichevsky
|
409e46eea9
|
Implement jump immediate instruction
|
2023-11-21 14:55:40 -05:00 |
Nick Krichevsky
|
710e293a0e
|
Move stack push/pop into their own functions
|
2023-11-21 13:47:32 -05:00 |
Nick Krichevsky
|
66c7e4287c
|
Add support for enabling/disabling interrupts
|
2023-11-20 18:23:33 -05:00 |
Nick Krichevsky
|
2db1e58568
|
Add nop instruction
|
2023-11-20 18:02:34 -05:00 |
Nick Krichevsky
|
b5117e7cf9
|
Remove RunnableInstruction, encode cycles as a result of runtime
This is necessary for certain instructions, since they can take a different number of cycles
|
2023-11-20 14:25:07 -05:00 |
Nick Krichevsky
|
f9cdccb5fd
|
Implement DAA instruction
|
2023-11-19 21:44:18 -05:00 |
Nick Krichevsky
|
3a91f76f1e
|
Assert number of cycles taken per instruction in jsmoo tests, correct incorrect cycle counts
|
2023-11-18 21:21:15 -05:00 |
Nick Krichevsky
|
8293244d6c
|
Satisfy clippy
|
2023-11-18 19:31:12 -05:00 |
Nick Krichevsky
|
e0745e149f
|
Add complement A register instruction
|
2023-11-18 19:22:37 -05:00 |
Nick Krichevsky
|
1bbd14e5d2
|
Add support for carry bit set instructions
|
2023-11-18 19:11:27 -05:00 |
Nick Krichevsky
|
78458d6d31
|
Add store SP in memory instruction
|
2023-11-18 18:38:42 -05:00 |
Nick Krichevsky
|
6f25c91134
|
Add support for ADD SP e8
|
2023-11-18 18:05:09 -05:00 |
Nick Krichevsky
|
132b46ecef
|
Use i8::from_be_bytes instead of manual twos complement math
|
2023-11-18 15:34:33 -05:00 |
Nick Krichevsky
|
8187596952
|
Cargo fmt
|
2023-11-18 15:27:34 -05:00 |
Nick Krichevsky
|
dab6005233
|
Fix bug where inc/dec (hl) would have wrong number of cycles)
|
2023-11-18 15:27:28 -05:00 |
Nick Krichevsky
|
ec4f9395af
|
Greatly simplify arith8 parsing
|
2023-11-18 14:43:48 -05:00 |
Nick Krichevsky
|
9a6ccf6d48
|
Simplify load8 parsing to use bitwise ops
|
2023-11-18 10:02:51 -05:00 |
Nick Krichevsky
|
90ec09ff40
|
Add 16bit inc/dec instructions
|
2023-11-14 22:15:58 -05:00 |
Nick Krichevsky
|
22cfe4ec55
|
Add 16 bit add instructions
|
2023-11-12 18:13:51 -05:00 |
Nick Krichevsky
|
a658fbde1c
|
Fix incorrect calculation for 16 bit half carry flag
|
2023-11-12 18:13:38 -05:00 |
Nick Krichevsky
|
f703d195f9
|
Refactor InstructionRunner trait to be Run trait on each instruction type
|
2023-11-11 14:54:35 -05:00 |
Nick Krichevsky
|
770073489b
|
Convert test_case to test_matrix for arith8
|
2023-10-01 17:13:55 -04:00 |
Nick Krichevsky
|
784d0ac8db
|
Add 16 bit adds to CarryingAdd
|
2023-06-18 21:42:49 -04:00 |