This website requires JavaScript.
f647919ae0
Implement SWAP r8 instructions
master
Nick Krichevsky
2023-12-06 20:28:59 -0500
7e44edeb24
Add BIT instruction support
Nick Krichevsky
2023-12-06 19:48:54 -0500
70c5766f92
Add tests for clear (HL) instruction
Nick Krichevsky
2023-12-06 16:33:04 -0500
93d7493ac5
Refactor bit manipulation operations to deduplicate code
Nick Krichevsky
2023-12-06 16:28:33 -0500
b71a4991b1
Add RES r8 instruction
Nick Krichevsky
2023-12-06 16:14:07 -0500
6447db5df7
Refactor bit manipulation HL instructions
Nick Krichevsky
2023-12-06 15:44:56 -0500
fa7528279b
Add (messy, reptitive) implementation of bit reset for registers
old-bit-manip
Nick Krichevsky
2023-11-27 23:26:50 -0500
4202e70240
Implement SET (HL) opcodes
Nick Krichevsky
2023-11-27 08:45:29 -0500
c9970dc1d8
Add support for register-based SET instructions
Nick Krichevsky
2023-11-27 00:08:51 -0500
61f64af4a4
tmp
Nick Krichevsky
2023-11-26 23:16:33 -0500
9e785d117c
Add unknown opcode type, use it for parsing
Nick Krichevsky
2023-11-26 22:48:41 -0500
8b088da74d
Clean up logic in conditional control actions
Nick Krichevsky
2023-11-26 21:05:42 -0500
d53bed716a
Add conditional relative jumps
Nick Krichevsky
2023-11-26 20:26:34 -0500
709b0dd82e
Implement JR instruction
Nick Krichevsky
2023-11-25 22:58:39 -0500
bc17febf78
Fix bug where jumping to the PC would still advance the PC
Nick Krichevsky
2023-11-25 22:55:47 -0500
94f3fff94e
Undisable erroneously disabled jsmoo tests
Nick Krichevsky
2023-11-25 22:08:07 -0500
552884b1cb
Add conditional return instructions
Nick Krichevsky
2023-11-25 22:02:59 -0500
a3f6025a6f
Implement RETI
Nick Krichevsky
2023-11-25 21:41:35 -0500
cd05183bb3
Add JP HL instruction
Nick Krichevsky
2023-11-21 23:20:40 -0500
49f2e53e4e
Implement RST instruction
Nick Krichevsky
2023-11-21 22:56:28 -0500
01cf67ca35
Simplify control flow parsing logic
Nick Krichevsky
2023-11-21 20:57:16 -0500
fc76248853
Add OrParse trait to simplify chained parsers
Nick Krichevsky
2023-11-21 20:29:48 -0500
827aef74f8
Add conditional jumps
Nick Krichevsky
2023-11-21 20:06:24 -0500
a5e838dda4
Speed up JSMoo tests by including them in the binary
Nick Krichevsky
2023-11-21 19:47:04 -0500
6eb5f42ea4
Add conditional CALL instructions
Nick Krichevsky
2023-11-21 16:40:03 -0500
e6adf5d6af
Implement unconditional CALL instruction
Nick Krichevsky
2023-11-21 15:50:17 -0500
f5b0ba2a2f
Add initial register values to Processor::default
Nick Krichevsky
2023-11-21 15:22:53 -0500
206f364421
Fix assertion order in jsmoo tests
Nick Krichevsky
2023-11-21 15:02:42 -0500
409e46eea9
Implement jump immediate instruction
Nick Krichevsky
2023-11-21 14:55:40 -0500
710e293a0e
Move stack push/pop into their own functions
Nick Krichevsky
2023-11-21 13:47:14 -0500
66c7e4287c
Add support for enabling/disabling interrupts
Nick Krichevsky
2023-11-20 18:23:25 -0500
2db1e58568
Add nop instruction
Nick Krichevsky
2023-11-20 18:02:34 -0500
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
Nick Krichevsky
2023-11-20 14:25:07 -0500
f9cdccb5fd
Implement DAA instruction
Nick Krichevsky
2023-11-19 21:42:40 -0500
3a91f76f1e
Assert number of cycles taken per instruction in jsmoo tests, correct incorrect cycle counts
Nick Krichevsky
2023-11-18 21:12:42 -0500
8293244d6c
Satisfy clippy
Nick Krichevsky
2023-11-18 19:31:12 -0500
e0745e149f
Add complement A register instruction
Nick Krichevsky
2023-11-18 19:22:31 -0500
1bbd14e5d2
Add support for carry bit set instructions
Nick Krichevsky
2023-11-18 19:05:05 -0500
78458d6d31
Add store SP in memory instruction
Nick Krichevsky
2023-11-18 18:38:42 -0500
6f25c91134
Add support for ADD SP e8
Nick Krichevsky
2023-11-18 18:03:17 -0500
132b46ecef
Use i8::from_be_bytes instead of manual twos complement math
Nick Krichevsky
2023-11-18 15:34:33 -0500
8187596952
Cargo fmt
Nick Krichevsky
2023-11-18 15:27:34 -0500
dab6005233
Fix bug where inc/dec (hl) would have wrong number of cycles)
Nick Krichevsky
2023-11-18 15:27:28 -0500
ec4f9395af
Greatly simplify arith8 parsing
Nick Krichevsky
2023-11-18 14:43:48 -0500
9a6ccf6d48
Simplify load8 parsing to use bitwise ops
Nick Krichevsky
2023-11-18 10:02:51 -0500
90ec09ff40
Add 16bit inc/dec instructions
Nick Krichevsky
2023-11-14 22:15:58 -0500
22cfe4ec55
Add 16 bit add instructions
Nick Krichevsky
2023-11-12 18:13:51 -0500
a658fbde1c
Fix incorrect calculation for 16 bit half carry flag
Nick Krichevsky
2023-11-12 18:13:38 -0500
f703d195f9
Refactor InstructionRunner trait to be Run trait on each instruction type
Nick Krichevsky
2023-11-11 14:54:35 -0500
770073489b
Convert test_case to test_matrix for arith8
Nick Krichevsky
2023-10-01 17:13:55 -0400
784d0ac8db
Add 16 bit adds to CarryingAdd
Nick Krichevsky
2023-06-18 21:42:49 -0400
95e07a2b56
Satisfy clippy
Nick Krichevsky
2023-06-17 14:45:53 -0400
915f33307e
add support for dec instructions
Nick Krichevsky
2023-06-17 14:24:21 -0400
a38be4420a
Refactor all arith8 operations to use a more compact and readable structure
Nick Krichevsky
2023-06-16 17:13:56 -0400
c25f0cdefa
Add support for INC instruction
Nick Krichevsky
2023-06-16 15:54:06 -0400
e1a0cdfe62
Rename all parsers to just Parser
Nick Krichevsky
2023-05-14 20:25:27 -0400
ed9fe8aee4
Implement compare instructions
Nick Krichevsky
2023-05-13 23:34:51 -0400
e841931d55
Add support for OR instructions
Nick Krichevsky
2023-05-13 14:41:09 -0400
97d6df639f
Use simplified arithmetic instructions to simplify parsers
Nick Krichevsky
2023-05-13 13:54:20 -0400
b4a24120a2
Refactor arithmetic instructions to deduplicate implementations
Nick Krichevsky
2023-05-13 13:27:13 -0400
b4b72c73dd
Refactor arith8 parsers to avoid repetitive parses
Nick Krichevsky
2023-05-09 22:59:07 -0400
59bafee838
Implement xor instructions
Nick Krichevsky
2023-05-09 22:32:02 -0400
05333a0bb8
Refactor AND to use conversion from AndInstruction to ArithmeticOperation
Nick Krichevsky
2023-05-08 07:23:08 -0400
ce855cb06c
Add AND instructions
Nick Krichevsky
2023-05-08 07:19:22 -0400
5a6f048a38
Satisfy cargo fmt
Nick Krichevsky
2023-05-07 23:06:19 -0400
85253e2576
Make all Instructions Copy
Nick Krichevsky
2023-05-07 16:38:23 -0400
4fb9144c6d
Refactor eight bit arithmetic to extract operand collection
Nick Krichevsky
2023-05-07 16:08:49 -0400
01a68e1415
Implement sub/subc immediate instructions
Nick Krichevsky
2023-05-07 13:46:27 -0400
cf71063e59
Add SUBC (HL) instructions
Nick Krichevsky
2023-05-07 13:13:21 -0400
0c46890c3d
Refactor run::arith8 to split up addition and subtraction
Nick Krichevsky
2023-05-07 11:13:19 -0400
35910aea7e
Add support for SUBC A,A
Nick Krichevsky
2023-05-05 21:05:26 -0400
bf9b18c2d6
Refactor UpgradableNumber to make CarriedNumber's type signature more bearable
Nick Krichevsky
2023-05-05 19:50:01 -0400
6dce7f0ead
Add SUBC jsmoo tests
Nick Krichevsky
2023-05-05 00:10:02 -0400
6e62b632a3
Add support for SUBC
Nick Krichevsky
2023-05-04 23:54:52 -0400
51b9ab45b4
Enable jsmoo tests for SUB
Nick Krichevsky
2023-05-04 22:15:06 -0400
b0554a098e
Implement basic SUB operation
Nick Krichevsky
2023-05-04 22:14:45 -0400
c05f8c57e9
Add support for ADC (HL), A
Nick Krichevsky
2023-05-01 00:24:52 -0400
2ade899fc6
Fix 0xF8 instruction flags
Nick Krichevsky
2023-05-01 00:12:17 -0400
c63aac5e35
Add tests for 0XF8 and 0xF9 from jsmoo
Nick Krichevsky
2023-05-01 00:11:43 -0400
7ef858d90c
Add ADC A,A support
Nick Krichevsky
2023-04-30 21:34:39 -0400
67824138b1
Make flags field private again
Nick Krichevsky
2023-04-30 21:23:11 -0400
a593664e43
Fix bug where lower 8 bits of the F register were used
Nick Krichevsky
2023-04-30 21:13:01 -0400
a8ee2bc391
Add jsmoo stack push/pop tests
Nick Krichevsky
2023-04-30 21:12:40 -0400
520732e841
Merge branch 'jsmoo'
Nick Krichevsky
2023-04-30 19:22:53 -0400
e6b375ae7d
Add 16 bit tests to jsmoo disabled folder
Nick Krichevsky
2023-04-30 19:22:43 -0400
555800dbd1
Add jsmoo tests for all implemented instructions
Nick Krichevsky
2023-04-30 19:19:02 -0400
a8736052d1
Major refactor: change memory to be based on a view, rather than some slice
Nick Krichevsky
2023-04-30 19:10:32 -0400
10b9c00f72
Add beginnings of jsmoo tests, fails on 31 006B
jsmoo
Nick Krichevsky
2023-04-21 16:49:37 -0400
7554438c7a
Fix bug where address 0xFFFF was not accessible
Nick Krichevsky
2023-04-21 16:41:21 -0400
e42303d31a
Rename Processor::run to Processor::run_instruction
Nick Krichevsky
2023-04-21 15:20:22 -0400
6ac4ed5d7c
add support for ADC with immediate
Nick Krichevsky
2023-04-21 12:29:55 -0400
e416e607df
Fix bug where the zero flag wouldn't be set if the carry flag was set
Nick Krichevsky
2023-04-21 12:25:15 -0400
e369140dd1
Fix incorrect usage of the + operator in the 16+8 bit addition routine
Nick Krichevsky
2023-04-19 21:45:44 -0400
34776d99f4
Satisfy clippy
Nick Krichevsky
2023-04-15 19:48:56 -0400
3b6e611768
Test cleanup
Nick Krichevsky
2023-04-15 19:42:37 -0400
321ab461ff
Move all CPU tests into integration test directory
Nick Krichevsky
2023-04-15 19:00:50 -0400
2caf7fe7e8
Remove non-existent F register
Nick Krichevsky
2023-04-15 18:31:37 -0400
040133eb82
Add ADC instruction implementations
Nick Krichevsky
2023-04-15 18:29:39 -0400
16c275282e
Fix some clippy lints
Nick Krichevsky
2023-04-15 15:06:00 -0400
70db1fe62a
Reduce repetition in flags tests
Nick Krichevsky
2022-04-23 23:57:48 -0400