Commit Graph

149 Commits (master)

Author SHA1 Message Date
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
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