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 |
Nick Krichevsky
|
f1e72b45de
|
Restructure instruction enums to be categorized based on the type of instruction
This helps break up some of the long match statement in Processor::run, but construction does become a bit annoying.
|
2022-04-11 23:52:44 -04:00 |
Nick Krichevsky
|
16bc8833d5
|
Remove unused 'use'
|
2022-04-11 23:10:26 -04:00 |
Nick Krichevsky
|
84e680fd15
|
Implement stack push and pop
|
2022-04-11 23:10:26 -04:00 |
Nick Krichevsky
|
cfebc1b912
|
Implement (messy) LEA for stack pointer addresses
|
2022-04-09 18:34:11 -04:00 |
Nick Krichevsky
|
a7adfb6f90
|
Implement transfers between HL and SP
|
2022-04-09 15:43:28 -04:00 |
Nick Krichevsky
|
0667a59c6a
|
Fix incorrect opcode for loading load then inc, add variant for loading from memory
|
2022-04-09 14:43:53 -04:00 |
Nick Krichevsky
|
30e45bee72
|
Clean up load8::transfer
|
2022-04-09 14:02:59 -04:00 |
Nick Krichevsky
|
034811c54e
|
Implement loading to the stack pointer
|
2022-04-09 14:00:33 -04:00 |
Nick Krichevsky
|
d85c7b8a98
|
Add support for programatically manipulating 16 bit registers
|
2022-04-09 13:57:50 -04:00 |
Nick Krichevsky
|
ef2aff5a8e
|
Rename Single to SingleEightBit
|
2022-04-09 13:47:26 -04:00 |
Nick Krichevsky
|
3803abfa1d
|
Add support for loading 16 bit immediate values to combined registers
|
2022-04-09 13:35:17 -04:00 |
Nick Krichevsky
|
1795d652fa
|
Rename 8 bit immediate load isntructions
|
2022-04-09 13:09:27 -04:00 |
Nick Krichevsky
|
e2365aec7e
|
Add ability to load from i/o registers relative to immediate
|
2022-04-08 21:10:47 -04:00 |
Nick Krichevsky
|
75235ad5e0
|
Refactor run.rs to reduce repetition and use proper Error types
|
2022-04-08 19:42:37 -04:00 |
Nick Krichevsky
|
af38d1edf4
|
Implement load + inc/dec opcodes
|
2022-04-08 18:50:26 -04:00 |
Nick Krichevsky
|
9a7f1ed093
|
Add ability to read/write to i/o register zone
|
2022-04-08 17:46:54 -04:00 |
Nick Krichevsky
|
769e4bc2ab
|
Replace panic checks with unwrap_or_else in Processor
|
2022-04-08 17:14:19 -04:00 |
Nick Krichevsky
|
ac541822db
|
Add Display on register traits
|
2022-04-08 16:38:46 -04:00 |
Nick Krichevsky
|
4e6e3f7680
|
Add TODO about cycles
|
2022-04-07 18:13:49 -04:00 |
Nick Krichevsky
|
d419500279
|
minor style fix
|
2022-04-07 00:33:04 -04:00 |
Nick Krichevsky
|
a7761215b5
|
Remove unneeded macro in transfer module
This is a lot more readable now that we can squeeze it onto one line
|
2022-04-07 00:32:44 -04:00 |
Nick Krichevsky
|
066189708b
|
Move static methods for RunnableInstruction into parse package
|
2022-04-07 00:29:39 -04:00 |
Nick Krichevsky
|
0c53bd2c6b
|
Break up memory parsing module
|
2022-04-06 23:06:03 -04:00 |
Nick Krichevsky
|
ad62658980
|
Rustdocs
|
2022-04-06 22:47:38 -04:00 |
Nick Krichevsky
|
8734a7fc8e
|
Make a macro for the transfer module
|
2022-04-06 22:43:38 -04:00 |
Nick Krichevsky
|
e5609972c8
|
Move instruction parsing into its own module
|
2022-04-06 21:01:11 -04:00 |