Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
boytacean
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
João Magalhães
boytacean
Commits
5766d0ab
Verified
Commit
5766d0ab
authored
2 years ago
by
João Magalhães
Browse files
Options
Downloads
Patches
Plain Diff
feat: more instructions implemented
parent
53464ca3
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
examples/sdl/src/main.rs
+1
-1
1 addition, 1 deletion
examples/sdl/src/main.rs
src/cpu.rs
+419
-402
419 additions, 402 deletions
src/cpu.rs
with
420 additions
and
403 deletions
examples/sdl/src/main.rs
+
1
−
1
View file @
5766d0ab
...
...
@@ -4,7 +4,7 @@ fn main() {
let
mut
game_boy
=
GameBoy
::
new
();
game_boy
.load_boot_default
();
for
i
in
0
..
24
65
0
{
for
i
in
0
..
24
70
0
{
game_boy
.clock
();
if
game_boy
.cpu
()
.pc
()
>=
0x3032
{
println!
(
"{}"
,
i
);
...
...
This diff is collapsed.
Click to expand it.
src/cpu.rs
+
419
−
402
View file @
5766d0ab
...
...
@@ -14,457 +14,457 @@ pub const INSTRUCTIONS: [(fn(&mut Cpu), u8, &'static str); 256] = [
(
rlca
,
4
,
"RLCA"
),
(
ld_mu16_sp
,
20
,
"LD [u16], SP"
),
(
add_hl_bc
,
8
,
"ADD HL, BC"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
inc_c
,
4
,
"INC C"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_c_u8
,
8
,
"LD C, u8"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x1 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_de_u16
,
12
,
"LD DE, u16"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
inc_de
,
8
,
"
INC DE
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
rla
,
4
,
"RLA"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_a_mde
,
8
,
"LD A, [DE]"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x2 opcodes
(
jr_nz_i8
,
8
,
"JR NZ, i8"
),
(
ld_hl_u16
,
12
,
"LD HL, u16"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
ld_mhli_a
,
8
,
"
LD [HL]+, A
"
),
(
inc_hl
,
8
,
"
INC HL
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x3 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_sp_u16
,
12
,
"LD SP, u16"
),
(
ld_mhld_a
,
8
,
"LD [HL]-, A"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_a_u8
,
8
,
"LD A, u8"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x4 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_c_a
,
4
,
"LD C, A"
),
// 0x5 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x6 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x7 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x8 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x9 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xa opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
xor_a_a
,
4
,
"XOR A, A"
),
// 0xb opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xc opcodes
(
ret_nz
,
8
,
"RET NZ"
),
(
pop_bc
,
12
,
"POP BC"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
push_bc
,
16
,
"PUSH BC"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ret
,
16
,
"RET
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
call_u16
,
24
,
"CALL u16"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xd opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xe opcodes
(
ld_mff00u8_a
,
12
,
"LD [FF00+u8], A"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
ld_mff00c_a
,
8
,
"LD [FF00+C], A"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xf opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
];
pub
const
BITWISE
:
[(
fn
(
&
mut
Cpu
),
u8
,
&
'static
str
);
176
]
=
[
// 0x0 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x1 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
rl_c
,
8
,
"RL C"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x2 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x3 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x4 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x5 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x6 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x7 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
bit_7_h
,
8
,
"BIT 7, H"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x8 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0x9 opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
// 0xa opcodes
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
NOP
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
(
nop
,
4
,
"
! UNIMP !
"
),
];
pub
struct
Cpu
{
...
...
@@ -765,6 +765,10 @@ fn ld_de_u16(cpu: &mut Cpu) {
cpu
.set_de
(
word
);
}
fn
inc_de
(
cpu
:
&
mut
Cpu
)
{
cpu
.set_de
(
cpu
.de
()
.wrapping_add
(
1
));
}
fn
rla
(
cpu
:
&
mut
Cpu
)
{
let
carry
=
cpu
.get_carry
();
...
...
@@ -798,6 +802,15 @@ fn ld_hl_u16(cpu: &mut Cpu) {
cpu
.set_hl
(
word
);
}
fn
ld_mhli_a
(
cpu
:
&
mut
Cpu
)
{
cpu
.mmu
.write
(
cpu
.hl
(),
cpu
.a
);
cpu
.set_hl
(
cpu
.hl
()
.wrapping_add
(
1
));
}
fn
inc_hl
(
cpu
:
&
mut
Cpu
)
{
cpu
.set_hl
(
cpu
.hl
()
.wrapping_add
(
1
));
}
fn
ld_sp_u16
(
cpu
:
&
mut
Cpu
)
{
cpu
.sp
=
cpu
.read_u16
();
}
...
...
@@ -843,6 +856,10 @@ fn push_bc(cpu: &mut Cpu) {
cpu
.push_word
(
cpu
.bc
());
}
fn
ret
(
cpu
:
&
mut
Cpu
)
{
cpu
.pc
=
cpu
.pop_word
();
}
fn
call_u16
(
cpu
:
&
mut
Cpu
)
{
let
word
=
cpu
.read_u16
();
cpu
.push_word
(
cpu
.pc
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment