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 |
|
Nick Krichevsky
|
6e62b632a3
|
Add support for SUBC
|
2023-05-05 00:09:47 -04:00 |
|
Nick Krichevsky
|
51b9ab45b4
|
Enable jsmoo tests for SUB
|
2023-05-04 23:18:13 -04:00 |
|
Nick Krichevsky
|
b0554a098e
|
Implement basic SUB operation
|
2023-05-04 23:18:13 -04:00 |
|
Nick Krichevsky
|
c05f8c57e9
|
Add support for ADC (HL), A
|
2023-05-01 00:24:52 -04:00 |
|
Nick Krichevsky
|
2ade899fc6
|
Fix 0xF8 instruction flags
|
2023-05-01 00:12:17 -04:00 |
|
Nick Krichevsky
|
c63aac5e35
|
Add tests for 0XF8 and 0xF9 from jsmoo
|
2023-05-01 00:11:43 -04:00 |
|
Nick Krichevsky
|
7ef858d90c
|
Add ADC A,A support
|
2023-04-30 21:34:46 -04:00 |
|
Nick Krichevsky
|
67824138b1
|
Make flags field private again
|
2023-04-30 21:23:11 -04:00 |
|
Nick Krichevsky
|
a593664e43
|
Fix bug where lower 8 bits of the F register were used
This should never happen
|
2023-04-30 21:13:01 -04:00 |
|
Nick Krichevsky
|
a8ee2bc391
|
Add jsmoo stack push/pop tests
Fail for AF
|
2023-04-30 21:12:42 -04:00 |
|
Nick Krichevsky
|
520732e841
|
Merge branch 'jsmoo'
This includes the tests from the jsmoo emulator, plus the refactors that
it turned out I needed to run them
|
2023-04-30 19:22:53 -04:00 |
|
Nick Krichevsky
|
e6b375ae7d
|
Add 16 bit tests to jsmoo disabled folder
|
2023-04-30 19:22:43 -04:00 |
|
Nick Krichevsky
|
555800dbd1
|
Add jsmoo tests for all implemented instructions
|
2023-04-30 19:19:02 -04:00 |
|
Nick Krichevsky
|
a8736052d1
|
Major refactor: change memory to be based on a view, rather than some slice
This fixes a problem where we couldn't read memory in a way that wraps around, like the gameboy does.
|
2023-04-30 19:10:32 -04:00 |
|
Nick Krichevsky
|
10b9c00f72
|
Add beginnings of jsmoo tests, fails on 31 006B
|
2023-04-21 16:49:37 -04:00 |
|
Nick Krichevsky
|
7554438c7a
|
Fix bug where address 0xFFFF was not accessible
|
2023-04-21 16:41:21 -04:00 |
|
Nick Krichevsky
|
e42303d31a
|
Rename Processor::run to Processor::run_instruction
|
2023-04-21 15:20:22 -04:00 |
|
Nick Krichevsky
|
6ac4ed5d7c
|
add support for ADC with immediate
|
2023-04-21 12:29:55 -04:00 |
|
Nick Krichevsky
|
e416e607df
|
Fix bug where the zero flag wouldn't be set if the carry flag was set
I have no idea why I thought this was correct
|
2023-04-21 12:25:15 -04:00 |
|
Nick Krichevsky
|
e369140dd1
|
Fix incorrect usage of the + operator in the 16+8 bit addition routine
|
2023-04-19 21:45:53 -04:00 |
|
Nick Krichevsky
|
34776d99f4
|
Satisfy clippy
|
2023-04-15 19:48:56 -04:00 |
|
Nick Krichevsky
|
3b6e611768
|
Test cleanup
|
2023-04-15 19:47:30 -04:00 |
|
Nick Krichevsky
|
321ab461ff
|
Move all CPU tests into integration test directory
|
2023-04-15 19:00:50 -04:00 |
|
Nick Krichevsky
|
2caf7fe7e8
|
Remove non-existent F register
|
2023-04-15 18:31:37 -04:00 |
|
Nick Krichevsky
|
040133eb82
|
Add ADC instruction implementations
|
2023-04-15 18:29:39 -04:00 |
|
Nick Krichevsky
|
16c275282e
|
Fix some clippy lints
Back on the horse...
|
2023-04-15 15:06:00 -04:00 |
|
Nick Krichevsky
|
70db1fe62a
|
Reduce repetition in flags tests
|
2022-04-24 00:10:18 -04:00 |
|
Nick Krichevsky
|
f0c0e818c9
|
Implement add A to HL instruction
|
2022-04-23 23:46:44 -04:00 |
|
Nick Krichevsky
|
733c18614c
|
Add support for adding immediate to A register
|
2022-04-23 22:31:22 -04:00 |
|
Nick Krichevsky
|
f97fbdcf9e
|
Add rustdocs to arithutil
|
2022-04-23 16:43:30 -04:00 |
|
Nick Krichevsky
|
e6b25cd54b
|
Add overload to carry-add negatives
|
2022-04-23 16:37:50 -04:00 |
|
Nick Krichevsky
|
418a659e07
|
Simplify half carry checking logic
|
2022-04-23 13:33:59 -04:00 |
|
Nick Krichevsky
|
dcf13061c6
|
Add CarryingAdd trait and integrate it in existing addition locations
|
2022-04-23 13:12:18 -04:00 |
|
Nick Krichevsky
|
807249ba18
|
Use proper Error type when running instructions instead of panicking immediately
|
2022-04-17 20:41:22 -04:00 |
|
Nick Krichevsky
|
16385f6387
|
Break out instruction running code into its own module
|
2022-04-16 10:59:07 -04:00 |
|
Nick Krichevsky
|
54cb2b8b2c
|
Add (messy) implementation of adding 8 bit registers to others
|
2022-04-14 23:28:29 -04:00 |
|
Nick Krichevsky
|
29ccffccf7
|
Replace 'ld' with Load
|
2022-04-14 21:30:49 -04:00 |
|
Nick Krichevsky
|
deeacd917a
|
Simplify register access code
|
2022-04-14 21:22:05 -04:00 |
|