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 |
Nick Krichevsky
|
95e07a2b56
|
Satisfy clippy
|
2023-06-17 14:45:53 -04:00 |
Nick Krichevsky
|
915f33307e
|
add support for dec instructions
|
2023-06-17 14:36:12 -04:00 |
Nick Krichevsky
|
a38be4420a
|
Refactor all arith8 operations to use a more compact and readable structure
|
2023-06-17 14:19:14 -04:00 |
Nick Krichevsky
|
c25f0cdefa
|
Add support for INC instruction
|
2023-06-17 14:18:51 -04:00 |
Nick Krichevsky
|
e1a0cdfe62
|
Rename all parsers to just Parser
|
2023-05-21 23:03:11 -04:00 |
Nick Krichevsky
|
ed9fe8aee4
|
Implement compare instructions
|
2023-05-13 23:34:51 -04:00 |
Nick Krichevsky
|
e841931d55
|
Add support for OR instructions
|
2023-05-13 14:41:09 -04:00 |
Nick Krichevsky
|
97d6df639f
|
Use simplified arithmetic instructions to simplify parsers
|
2023-05-13 13:54:20 -04:00 |
Nick Krichevsky
|
b4a24120a2
|
Refactor arithmetic instructions to deduplicate implementations
There are now no longer instructions for each individual operand - we break it into operand and operations to be handled individually
|
2023-05-13 13:33:44 -04:00 |
Nick Krichevsky
|
b4b72c73dd
|
Refactor arith8 parsers to avoid repetitive parses
|
2023-05-09 23:04:21 -04:00 |
Nick Krichevsky
|
59bafee838
|
Implement xor instructions
|
2023-05-09 23:03:09 -04:00 |
Nick Krichevsky
|
05333a0bb8
|
Refactor AND to use conversion from AndInstruction to ArithmeticOperation
|
2023-05-08 07:23:08 -04:00 |
Nick Krichevsky
|
ce855cb06c
|
Add AND instructions
|
2023-05-08 07:19:22 -04:00 |
Nick Krichevsky
|
5a6f048a38
|
Satisfy cargo fmt
|
2023-05-07 23:06:19 -04:00 |
Nick Krichevsky
|
85253e2576
|
Make all Instructions Copy
|
2023-05-07 16:38:27 -04:00 |
Nick Krichevsky
|
4fb9144c6d
|
Refactor eight bit arithmetic to extract operand collection
|
2023-05-07 16:08:49 -04:00 |
Nick Krichevsky
|
01a68e1415
|
Implement sub/subc immediate instructions
|
2023-05-07 13:46:27 -04:00 |
Nick Krichevsky
|
cf71063e59
|
Add SUBC (HL) instructions
|
2023-05-07 13:13:21 -04:00 |
Nick Krichevsky
|
0c46890c3d
|
Refactor run::arith8 to split up addition and subtraction
|
2023-05-07 11:15:19 -04:00 |
Nick Krichevsky
|
35910aea7e
|
Add support for SUBC A,A
|
2023-05-05 21:05:26 -04:00 |
Nick Krichevsky
|
bf9b18c2d6
|
Refactor UpgradableNumber to make CarriedNumber's type signature more bearable
|
2023-05-05 19:50:29 -04:00 |
Nick Krichevsky
|
6dce7f0ead
|
Add SUBC jsmoo tests
|
2023-05-05 19:49:35 -04:00 |