From a3ee6a8d010cca8dd8562e6349b9927b25db35b6 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 28 Feb 2023 10:44:01 +0000 Subject: [PATCH] removed all use of unsafe and changed functions to methods --- z80.rs | 7518 +++++++++++++++++++++++++++----------------------------- 1 file changed, 3677 insertions(+), 3841 deletions(-) diff --git a/z80.rs b/z80.rs index 8d41f80..2be5b4e 100644 --- a/z80.rs +++ b/z80.rs @@ -32,8 +32,18 @@ pub type int32_t = i32; pub type uint8_t = u8; pub type uint16_t = u16; pub type uint32_t = u32; +pub type z80_flagbit = u32; + pub const Z80_ASSERT: u32 = 2; pub const Z80_PULSE: u32 = 1; +pub const sf: z80_flagbit = 7; +pub const zf: z80_flagbit = 6; +pub const yf: z80_flagbit = 5; +pub const hf: z80_flagbit = 4; +pub const xf: z80_flagbit = 3; +pub const pf: z80_flagbit = 2; +pub const nf: z80_flagbit = 1; +pub const cf: z80_flagbit = 0; pub trait z80Ctrl { fn read_byte(&self, addr: u16) -> u8; @@ -67,6 +77,7 @@ pub struct z80 { halted: bool, iff1: bool, iff2: bool, + f_szpxy: [uint8_t; 256], #[cfg(test)] pub test_finished: bool, } @@ -114,6 +125,9 @@ impl z80 { halted: false, iff1: false, iff2: false, + f_szpxy: [ + 0x44, 0, 0, 0x4, 0, 0x4, 0x4, 0, 0x8, 0xc, 0xc, 0x8, 0xc, 0x8, 0x8, 0xc, 0, 0x4, 0x4, 0, 0x4, 0, 0, 0x4, 0xc, 0x8, 0x8, 0xc, 0x8, 0xc, 0xc, 0x8, 0x20, 0x24, 0x24, 0x20, 0x24, 0x20, 0x20, 0x24, 0x2c, 0x28, 0x28, 0x2c, 0x28, 0x2c, 0x2c, 0x28, 0x24, 0x20, 0x20, 0x24, 0x20, 0x24, 0x24, 0x20, 0x28, 0x2c, 0x2c, 0x28, 0x2c, 0x28, 0x28, 0x2c, 0, 0x4, 0x4, 0, 0x4, 0, 0, 0x4, 0xc, 0x8, 0x8, 0xc, 0x8, 0xc, 0xc, 0x8, 0x4, 0, 0, 0x4, 0, 0x4, 0x4, 0, 0x8, 0xc, 0xc, 0x8, 0xc, 0x8, 0x8, 0xc, 0x24, 0x20, 0x20, 0x24, 0x20, 0x24, 0x24, 0x20, 0x28, 0x2c, 0x2c, 0x28, 0x2c, 0x28, 0x28, 0x2c, 0x20, 0x24, 0x24, 0x20, 0x24, 0x20, 0x20, 0x24, 0x2c, 0x28, 0x28, 0x2c, 0x28, 0x2c, 0x2c, 0x28, 0x80, 0x84, 0x84, 0x80, 0x84, 0x80, 0x80, 0x84, 0x8c, 0x88, 0x88, 0x8c, 0x88, 0x8c, 0x8c, 0x88, 0x84, 0x80, 0x80, 0x84, 0x80, 0x84, 0x84, 0x80, 0x88, 0x8c, 0x8c, 0x88, 0x8c, 0x88, 0x88, 0x8c, 0xa4, 0xa0, 0xa0, 0xa4, 0xa0, 0xa4, 0xa4, 0xa0, 0xa8, 0xac, 0xac, 0xa8, 0xac, 0xa8, 0xa8, 0xac, 0xa0, 0xa4, 0xa4, 0xa0, 0xa4, 0xa0, 0xa0, 0xa4, 0xac, 0xa8, 0xa8, 0xac, 0xa8, 0xac, 0xac, 0xa8, 0x84, 0x80, 0x80, 0x84, 0x80, 0x84, 0x84, 0x80, 0x88, 0x8c, 0x8c, 0x88, 0x8c, 0x88, 0x88, 0x8c, 0x80, 0x84, 0x84, 0x80, 0x84, 0x80, 0x80, 0x84, 0x8c, 0x88, 0x88, 0x8c, 0x88, 0x8c, 0x8c, 0x88, 0xa0, 0xa4, 0xa4, 0xa0, 0xa4, 0xa0, 0xa0, 0xa4, 0xac, 0xa8, 0xa8, 0xac, 0xa8, 0xac, 0xac, 0xa8, 0xa4, 0xa0, 0xa0, 0xa4, 0xa0, 0xa4, 0xa4, 0xa0, 0xa8, 0xac, 0xac, 0xa8, 0xac, 0xa8, 0xa8, 0xac, + ], #[cfg(test)] test_finished: false, } @@ -148,11 +162,11 @@ impl z80 { } } pub fn step(&mut self) -> u32 { - unsafe { z80_step_s(self) } + self.z80_step_s() } fn internal_port_in(&self, addr: u16) -> u8 { #[cfg(test)] - unsafe { + { let mut operation = self.c2rust_unnamed_0.c2rust_unnamed.c; if operation == 2{ print!( "{}", self.c2rust_unnamed_1.c2rust_unnamed.e); @@ -180,3955 +194,3777 @@ impl z80 { } self.ctrl.port_out(addr, value); } -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_0 { - pub c2rust_unnamed: C2RustUnnamed_1, - pub h_l_: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_1 { - pub l_: uint8_t, - pub h_: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_2 { - pub c2rust_unnamed: C2RustUnnamed_3, - pub d_e_: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_3 { - pub e_: uint8_t, - pub d_: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_4 { - pub c2rust_unnamed: C2RustUnnamed_5, - pub b_c_: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_5 { - pub c_: uint8_t, - pub b_: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_6 { - pub c2rust_unnamed: C2RustUnnamed_7, - pub a_f_: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_7 { - pub f_: uint8_t, - pub a_: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_8 { - pub c2rust_unnamed: C2RustUnnamed_9, - pub hl: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_9 { - pub l: uint8_t, - pub h: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_10 { - pub c2rust_unnamed: C2RustUnnamed_11, - pub de: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_11 { - pub e: uint8_t, - pub d: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_12 { - pub c2rust_unnamed: C2RustUnnamed_13, - pub bc: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_13 { - pub c: uint8_t, - pub b: uint8_t, -} -#[derive(Copy, Clone)] -pub union C2RustUnnamed_14 { - pub c2rust_unnamed: C2RustUnnamed_15, - pub af: uint16_t, -} -#[derive(Copy, Clone)] -pub struct C2RustUnnamed_15 { - pub f: uint8_t, - pub a: uint8_t, -} -pub type z80_flagbit = u32; -pub const sf: z80_flagbit = 7; -pub const zf: z80_flagbit = 6; -pub const yf: z80_flagbit = 5; -pub const hf: z80_flagbit = 4; -pub const xf: z80_flagbit = 3; -pub const pf: z80_flagbit = 2; -pub const nf: z80_flagbit = 1; -pub const cf: z80_flagbit = 0; -static mut f_szpxy: [uint8_t; 256] = [ - 0x44, 0, 0, 0x4, 0, 0x4, 0x4, 0, 0x8, 0xc, 0xc, 0x8, 0xc, 0x8, 0x8, 0xc, 0, 0x4, 0x4, 0, 0x4, 0, 0, 0x4, 0xc, 0x8, 0x8, 0xc, 0x8, 0xc, 0xc, 0x8, 0x20, 0x24, 0x24, 0x20, 0x24, 0x20, 0x20, 0x24, 0x2c, 0x28, 0x28, 0x2c, 0x28, 0x2c, 0x2c, 0x28, 0x24, 0x20, 0x20, 0x24, 0x20, 0x24, 0x24, 0x20, 0x28, 0x2c, 0x2c, 0x28, 0x2c, 0x28, 0x28, 0x2c, 0, 0x4, 0x4, 0, 0x4, 0, 0, 0x4, 0xc, 0x8, 0x8, 0xc, 0x8, 0xc, 0xc, 0x8, 0x4, 0, 0, 0x4, 0, 0x4, 0x4, 0, 0x8, 0xc, 0xc, 0x8, 0xc, 0x8, 0x8, 0xc, 0x24, 0x20, 0x20, 0x24, 0x20, 0x24, 0x24, 0x20, 0x28, 0x2c, 0x2c, 0x28, 0x2c, 0x28, 0x28, 0x2c, 0x20, 0x24, 0x24, 0x20, 0x24, 0x20, 0x20, 0x24, 0x2c, 0x28, 0x28, 0x2c, 0x28, 0x2c, 0x2c, 0x28, 0x80, 0x84, 0x84, 0x80, 0x84, 0x80, 0x80, 0x84, 0x8c, 0x88, 0x88, 0x8c, 0x88, 0x8c, 0x8c, 0x88, 0x84, 0x80, 0x80, 0x84, 0x80, 0x84, 0x84, 0x80, 0x88, 0x8c, 0x8c, 0x88, 0x8c, 0x88, 0x88, 0x8c, 0xa4, 0xa0, 0xa0, 0xa4, 0xa0, 0xa4, 0xa4, 0xa0, 0xa8, 0xac, 0xac, 0xa8, 0xac, 0xa8, 0xa8, 0xac, 0xa0, 0xa4, 0xa4, 0xa0, 0xa4, 0xa0, 0xa0, 0xa4, 0xac, 0xa8, 0xa8, 0xac, 0xa8, 0xac, 0xac, 0xa8, 0x84, 0x80, 0x80, 0x84, 0x80, 0x84, 0x84, 0x80, 0x88, 0x8c, 0x8c, 0x88, 0x8c, 0x88, 0x88, 0x8c, 0x80, 0x84, 0x84, 0x80, 0x84, 0x80, 0x80, 0x84, 0x8c, 0x88, 0x88, 0x8c, 0x88, 0x8c, 0x8c, 0x88, 0xa0, 0xa4, 0xa4, 0xa0, 0xa4, 0xa0, 0xa0, 0xa4, 0xac, 0xa8, 0xa8, 0xac, 0xa8, 0xac, 0xac, 0xa8, 0xa4, 0xa0, 0xa0, 0xa4, 0xa0, 0xa4, 0xa4, 0xa0, 0xa8, 0xac, 0xac, 0xa8, 0xac, 0xa8, 0xa8, 0xac, -]; -#[inline] -unsafe fn flag_val(mut bit: z80_flagbit, mut cond: bool) -> uint8_t { - return ((cond as i32) << bit as u32) as uint8_t; -} -#[inline] -unsafe fn flag_get(z: *mut z80, mut bit: z80_flagbit) -> bool { - return (*z).c2rust_unnamed.c2rust_unnamed.f as i32 - & (1 as i32) << bit as u32 != 0; -} -#[inline] -unsafe fn flag_set(z: *mut z80, mut bit: z80_flagbit, mut val: bool) { - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - & !((1 as i32) << bit as u32)) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | (val as i32) << bit as u32) as uint8_t; -} -#[inline] -unsafe fn rb(z: *mut z80, mut addr: uint16_t) -> uint8_t { - return (*z).ctrl.read_byte(addr); -} -#[inline] -unsafe fn wb(z: *mut z80, mut addr: uint16_t, mut val: uint8_t) { - (*z).ctrl.write_byte(addr, val); -} -#[inline] -unsafe fn rw(z: *mut z80, mut addr: uint16_t) -> uint16_t { - return ( - ((*z).ctrl.read_byte((addr as i32 + 1 as i32) as uint16_t) as i32) << 8 as i32 - | (*z).ctrl.read_byte(addr) as i32 - ) as uint16_t; -} -#[inline] -unsafe fn ww(z: *mut z80, mut addr: uint16_t, mut val: uint16_t) { - (*z).ctrl.write_byte(addr, (val as i32 & 0xff as i32) as uint8_t); - (*z).ctrl.write_byte( - (addr as i32 + 1 as i32) as uint16_t, - (val as i32 >> 8 as i32) as uint8_t, - ); -} -#[inline] -unsafe fn pushw(z: *mut z80, mut val: uint16_t) { - (*z).sp = ((*z).sp as i32 - 2 as i32) as uint16_t; - ww(z, (*z).sp, val); -} -#[inline] -unsafe fn popw(z: *mut z80) -> uint16_t { - (*z).sp = ((*z).sp as i32 + 2 as i32) as uint16_t; - return rw(z, ((*z).sp as i32 - 2 as i32) as uint16_t); -} -#[inline] -unsafe fn nextb(z: *mut z80) -> uint8_t { - let fresh0 = (*z).pc; - (*z).pc = ((*z).pc).wrapping_add(1); - return rb(z, fresh0); -} -#[inline] -unsafe fn nextw(z: *mut z80) -> uint16_t { - (*z).pc = ((*z).pc as i32 + 2 as i32) as uint16_t; - return rw(z, ((*z).pc as i32 - 2 as i32) as uint16_t); -} -#[inline] -unsafe fn inc_r(z: *mut z80) { - (*z) - .r = ((*z).r as i32 & 0x80 as i32 - | (*z).r as i32 + 1 as i32 & 0x7f as i32) as uint8_t; -} -#[inline] -unsafe fn parity(mut v: uint8_t) -> bool { - v = (v as i32 ^ v as i32 >> 4 as i32) as uint8_t; - v = (v as i32 & 0xf as i32) as uint8_t; - return 0x6996 as i32 >> v as i32 & 1 as i32 == 0; -} -#[inline] -unsafe fn jump(z: *mut z80, mut addr: uint16_t) { - (*z).pc = addr; - (*z).mem_ptr = addr; -} -#[inline] -unsafe fn cond_jump(z: *mut z80, mut condition: bool) { - let addr: uint16_t = nextw(z); - if condition { - jump(z, addr); + fn flag_val(mut bit: z80_flagbit, mut cond: bool) -> uint8_t { + return ((cond as i32) << bit as u32) as uint8_t; } - (*z).mem_ptr = addr; -} -#[inline] -unsafe fn call(z: *mut z80, mut addr: uint16_t) { - pushw(z, (*z).pc); - (*z).pc = addr; - (*z).mem_ptr = addr; -} -#[inline] -unsafe fn cond_call(z: *mut z80, mut condition: bool) -> u32 { - let addr: uint16_t = nextw(z); - let mut cyc: u32 = 0; - if condition { - call(z, addr); - cyc = 7; + fn flag_get(&mut self, mut bit: z80_flagbit) -> bool { + return self.c2rust_unnamed.c2rust_unnamed.f as i32 + & (1 as i32) << bit as u32 != 0; } - (*z).mem_ptr = addr; - return cyc; -} -#[inline] -unsafe fn ret(z: *mut z80) { - (*z).pc = popw(z); - (*z).mem_ptr = (*z).pc; -} -#[inline] -unsafe fn cond_ret(z: *mut z80, mut condition: bool) -> u32 { - if condition { - ret(z); - return 6; + fn flag_set(&mut self, mut bit: z80_flagbit, mut val: bool) { + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + & !((1 as i32) << bit as u32)) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | (val as i32) << bit as u32) as uint8_t; } - return 0; -} -#[inline] -unsafe fn jr(z: *mut z80, mut displacement: int8_t) { - (*z).pc = ((*z).pc as i32 + displacement as i32) as uint16_t; - (*z).mem_ptr = (*z).pc; -} -#[inline] -unsafe fn cond_jr(z: *mut z80, mut condition: bool) -> u32 { - let b: int8_t = nextb(z) as int8_t; - if condition { - jr(z, b); - return 5; + fn rw(&mut self, mut addr: uint16_t) -> uint16_t { + return ( + (self.ctrl.read_byte((addr as i32 + 1 as i32) as uint16_t) as i32) << 8 as i32 + | self.ctrl.read_byte(addr) as i32 + ) as uint16_t; } - return 0; -} -#[inline] -unsafe fn addb( - z: *mut z80, - mut a: uint32_t, - mut b: uint32_t, - mut cy: bool, -) -> uint8_t { - let mut result: int32_t = a.wrapping_add(b).wrapping_add(cy as u32) - as int32_t; - let mut carry: int32_t = (result as u32 ^ a ^ b) as int32_t; - result &= 0xff as i32; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[result as usize] as i32 - & !((1 as i32) << pf as i32)) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry & (1 as i32) << hf as i32) as uint8_t; - carry >>= 6 as i32; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry + 2 as i32 & 4 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry >> 2 as i32) as uint8_t; - return result as uint8_t; -} -#[inline] -unsafe fn subb( - z: *mut z80, - mut a: uint32_t, - mut b: uint32_t, - mut cy: bool, -) -> uint8_t { - let mut result: int32_t = a.wrapping_sub(b).wrapping_sub(cy as u32) - as int32_t; - let mut carry: int32_t = (result as u32 ^ a ^ b) as int32_t; - result &= 0xff as i32; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((1 as i32) << nf as i32 - | f_szpxy[result as usize] as i32 + fn ww(&mut self, mut addr: uint16_t, mut val: uint16_t) { + self.ctrl.write_byte(addr, (val as i32 & 0xff as i32) as uint8_t); + self.ctrl.write_byte( + (addr as i32 + 1 as i32) as uint16_t, + (val as i32 >> 8 as i32) as uint8_t, + ); + } + fn pushw(&mut self, mut val: uint16_t) { + self.sp = (self.sp as i32 - 2 as i32) as uint16_t; + self.ww(self.sp, val); + } + fn popw(&mut self) -> uint16_t { + self.sp = (self.sp as i32 + 2 as i32) as uint16_t; + return self.rw((self.sp as i32 - 2 as i32) as uint16_t); + } + fn nextb(&mut self) -> uint8_t { + let fresh0 = self.pc; + self.pc = (self.pc).wrapping_add(1); + return self.ctrl.read_byte(fresh0); + } + fn nextw(&mut self) -> uint16_t { + self.pc = (self.pc as i32 + 2 as i32) as uint16_t; + return self.rw((self.pc as i32 - 2 as i32) as uint16_t); + } + fn inc_r(&mut self) { + self + .r = (self.r as i32 & 0x80 as i32 + | self.r as i32 + 1 as i32 & 0x7f as i32) as uint8_t; + } + fn parity(mut v: uint8_t) -> bool { + v = (v as i32 ^ v as i32 >> 4 as i32) as uint8_t; + v = (v as i32 & 0xf as i32) as uint8_t; + return 0x6996 as i32 >> v as i32 & 1 as i32 == 0; + } + fn jump(&mut self, mut addr: uint16_t) { + self.pc = addr; + self.mem_ptr = addr; + } + fn cond_jump(&mut self, mut condition: bool) { + let addr: uint16_t = self.nextw(); + if condition { + self.jump(addr); + } + self.mem_ptr = addr; + } + fn call(&mut self, mut addr: uint16_t) { + self.pushw(self.pc); + self.pc = addr; + self.mem_ptr = addr; + } + fn cond_call(&mut self, mut condition: bool) -> u32 { + let addr: uint16_t = self.nextw(); + let mut cyc: u32 = 0; + if condition { + self.call(addr); + cyc = 7; + } + self.mem_ptr = addr; + return cyc; + } + fn ret(&mut self) { + self.pc = self.popw(); + self.mem_ptr = self.pc; + } + fn cond_ret(&mut self, mut condition: bool) -> u32 { + if condition { + self.ret(); + return 6; + } + return 0; + } + fn jr(&mut self, mut displacement: int8_t) { + self.pc = (self.pc as i32 + displacement as i32) as uint16_t; + self.mem_ptr = self.pc; + } + fn cond_jr(&mut self, mut condition: bool) -> u32 { + let b: int8_t = self.nextb() as int8_t; + if condition { + self.jr(b); + return 5; + } + return 0; + } + fn addb( + &mut self, + mut a: uint32_t, + mut b: uint32_t, + mut cy: bool, + ) -> uint8_t { + let mut result: int32_t = a.wrapping_add(b).wrapping_add(cy as u32) + as int32_t; + let mut carry: int32_t = (result as u32 ^ a ^ b) as int32_t; + result &= 0xff as i32; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[result as usize] as i32 & !((1 as i32) << pf as i32)) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry & (1 as i32) << hf as i32) as uint8_t; - carry >>= 6 as i32; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry + 2 as i32 & 4 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry >> 2 as i32 & 1 as i32) as uint8_t; - return result as uint8_t; -} -#[inline] -unsafe fn addw( - z: *mut z80, - mut a: uint16_t, - mut b: uint16_t, - mut cy: bool, -) -> uint16_t { - let mut lsb: uint8_t = addb(z, a as uint32_t, b as uint32_t, cy); - let mut msb: uint8_t = addb( - z, - (a as i32 >> 8 as i32) as uint32_t, - (b as i32 >> 8 as i32) as uint32_t, - flag_get(z, cf), - ); - let mut result: uint16_t = ((msb as i32) << 8 as i32 - | lsb as i32) as uint16_t; - flag_set(z, zf, result as i32 == 0 as i32); - (*z).mem_ptr = (a as i32 + 1 as i32) as uint16_t; - return result; -} -#[inline] -unsafe fn subw( - z: *mut z80, - mut a: uint16_t, - mut b: uint16_t, - mut cy: bool, -) -> uint16_t { - let mut lsb: uint8_t = subb(z, a as uint32_t, b as uint32_t, cy); - let mut msb: uint8_t = subb( - z, - (a as i32 >> 8 as i32) as uint32_t, - (b as i32 >> 8 as i32) as uint32_t, - flag_get(z, cf), - ); - let mut result: uint16_t = ((msb as i32) << 8 as i32 - | lsb as i32) as uint16_t; - flag_set(z, zf, result as i32 == 0 as i32); - (*z).mem_ptr = (a as i32 + 1 as i32) as uint16_t; - return result; -} -#[inline] -unsafe fn addhl(z: *mut z80, mut val: uint16_t) { - let mut sfc: bool = flag_get(z, sf); - let mut zfc: bool = flag_get(z, zf); - let mut pfc: bool = flag_get(z, pf); - let mut result: uint16_t = addw( - z, - (*z).c2rust_unnamed_2.hl, - val, - 0 as i32 != 0, - ); - (*z).c2rust_unnamed_2.hl = result; - flag_set(z, sf, sfc); - flag_set(z, zf, zfc); - flag_set(z, pf, pfc); -} -#[inline] -unsafe fn addiz(z: *mut z80, mut reg: *mut uint16_t, mut val: uint16_t) { - let mut sfc: bool = flag_get(z, sf); - let mut zfc: bool = flag_get(z, zf); - let mut pfc: bool = flag_get(z, pf); - let mut result: uint16_t = addw(z, *reg, val, 0 as i32 != 0); - *reg = result; - flag_set(z, sf, sfc); - flag_set(z, zf, zfc); - flag_set(z, pf, pfc); -} -#[inline] -unsafe fn adchl(z: *mut z80, mut val: uint16_t) { - let mut result: uint16_t = addw(z, (*z).c2rust_unnamed_2.hl, val, flag_get(z, cf)); - flag_set(z, sf, result as i32 >> 15 as i32 != 0); - flag_set(z, zf, result as i32 == 0 as i32); - (*z).c2rust_unnamed_2.hl = result; -} -#[inline] -unsafe fn sbchl(z: *mut z80, mut val: uint16_t) { - let result: uint16_t = subw(z, (*z).c2rust_unnamed_2.hl, val, flag_get(z, cf)); - flag_set(z, sf, result as i32 >> 15 as i32 != 0); - flag_set(z, zf, result as i32 == 0 as i32); - (*z).c2rust_unnamed_2.hl = result; -} -#[inline] -unsafe fn inc(z: *mut z80, mut a: uint8_t) -> uint8_t { - let mut cfc: bool = flag_get(z, cf); - let mut result: uint8_t = addb( - z, - a as uint32_t, - 1 as i32 as uint32_t, - 0 as i32 != 0, - ); - flag_set(z, cf, cfc); - return result; -} -#[inline] -unsafe fn dec(z: *mut z80, mut a: uint8_t) -> uint8_t { - let mut cfc: bool = flag_get(z, cf); - let mut result: uint8_t = subb( - z, - a as uint32_t, - 1 as i32 as uint32_t, - 0 as i32 != 0, - ); - flag_set(z, cf, cfc); - return result; -} -#[inline] -unsafe fn land(z: *mut z80, mut val: uint8_t) { - let result: uint8_t = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - & val as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[result as usize] as i32 - | flag_val(hf, 1 as i32 != 0) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; - (*z).c2rust_unnamed.c2rust_unnamed.a = result; -} -#[inline] -unsafe fn lxor(z: *mut z80, val: uint8_t) { - let result: uint8_t = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - ^ val as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[result as usize] as i32 - | flag_val(hf, 0 as i32 != 0) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; - (*z).c2rust_unnamed.c2rust_unnamed.a = result; -} -#[inline] -unsafe fn lor(z: *mut z80, val: uint8_t) { - let result: uint8_t = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - | val as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[result as usize] as i32 - | flag_val(hf, 0 as i32 != 0) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; - (*z).c2rust_unnamed.c2rust_unnamed.a = result; -} -#[inline] -unsafe fn cp(z: *mut z80, val: uint32_t) { - let mut result: int32_t = ((*z).c2rust_unnamed.c2rust_unnamed.a as u32) - .wrapping_sub(val) as int32_t; - let mut carry: int32_t = ((result - ^ (*z).c2rust_unnamed.c2rust_unnamed.a as i32) as u32 ^ val) - as int32_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (((1 as i32) << nf as i32) as u32 - | val - & ((1 as i32) << xf as i32 - | (1 as i32) << yf as i32) as u32 - | (result & (1 as i32) << sf as i32) as u32 - | (((result & 0xff as i32 == 0) as i32) << zf as i32) - as u32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry & (1 as i32) << hf as i32) as uint8_t; - carry >>= 6 as i32; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry + 2 as i32 & 4 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | carry >> 2 as i32 & 1 as i32) as uint8_t; -} -#[inline] -unsafe fn cb_rlc(z: *mut z80, mut val: uint8_t) -> uint8_t { - let old: bool = val as i32 >> 7 as i32 != 0; - val = ((val as i32) << 1 as i32 | old as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32 - | flag_val(cf, old) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_rrc(z: *mut z80, mut val: uint8_t) -> uint8_t { - let old: bool = val as i32 & 1 as i32 != 0; - val = (val as i32 >> 1 as i32 - | (old as i32) << 7 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32 - | flag_val(cf, old) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_rl(z: *mut z80, mut val: uint8_t) -> uint8_t { - let cfc: bool = flag_get(z, cf); - let cfn: bool = val as i32 >> 7 as i32 != 0; - val = ((val as i32) << 1 as i32 | cfc as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_rr(z: *mut z80, mut val: uint8_t) -> uint8_t { - let c: bool = flag_get(z, cf); - let cfn: bool = val as i32 & 1 as i32 != 0; - val = (val as i32 >> 1 as i32 - | (c as i32) << 7 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_sla(z: *mut z80, mut val: uint8_t) -> uint8_t { - let cfn: bool = val as i32 >> 7 as i32 != 0; - val = ((val as i32) << 1 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_sll(z: *mut z80, mut val: uint8_t) -> uint8_t { - let cfn: bool = val as i32 >> 7 as i32 != 0; - val = ((val as i32) << 1 as i32) as uint8_t; - val = (val as i32 | 1 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_sra(z: *mut z80, mut val: uint8_t) -> uint8_t { - let cfn: bool = val as i32 & 1 as i32 != 0; - val = (val as i32 >> 1 as i32 - | val as i32 & 0x80 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_srl(z: *mut z80, mut val: uint8_t) -> uint8_t { - let cfn: bool = val as i32 & 1 as i32 != 0; - val = (val as i32 >> 1 as i32) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[val as usize] as i32 | flag_val(cf, cfn) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - return val; -} -#[inline] -unsafe fn cb_bit(z: *mut z80, mut val: uint8_t, mut n: uint8_t) -> uint8_t { - let result: uint8_t = (val as i32 & (1 as i32) << n as i32) - as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[result as usize] as i32 - | flag_val(cf, flag_get(z, cf)) as i32 - | flag_val(hf, 1 as i32 != 0) as i32 - | flag_val(nf, 0 as i32 != 0) as i32) as uint8_t; - return result; -} -#[inline] -unsafe fn ldi(z: *mut z80) { - let de: uint16_t = (*z).c2rust_unnamed_1.de; - let hl: uint16_t = (*z).c2rust_unnamed_2.hl; - let val: uint8_t = rb(z, hl); - wb(z, de, val); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_add(1); - (*z).c2rust_unnamed_1.de = ((*z).c2rust_unnamed_1.de).wrapping_add(1); - (*z).c2rust_unnamed_0.bc = ((*z).c2rust_unnamed_0.bc).wrapping_sub(1); - let result: uint8_t = (val as i32 - + (*z).c2rust_unnamed.c2rust_unnamed.a as i32) as uint8_t; - flag_set(z, xf, result as i32 >> 3 as i32 & 1 as i32 != 0); - flag_set(z, yf, result as i32 >> 1 as i32 & 1 as i32 != 0); - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set(z, pf, (*z).c2rust_unnamed_0.bc as i32 > 0 as i32); -} -#[inline] -unsafe fn ldd(z: *mut z80) { - ldi(z); - (*z) - .c2rust_unnamed_2 - .hl = ((*z).c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; - (*z) - .c2rust_unnamed_1 - .de = ((*z).c2rust_unnamed_1.de as i32 - 2 as i32) as uint16_t; -} -#[inline] -unsafe fn cpi(z: *mut z80) { - let mut cfc: bool = flag_get(z, cf); - let result: uint8_t = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t, - 0 as i32 != 0, - ); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_add(1); - (*z).c2rust_unnamed_0.bc = ((*z).c2rust_unnamed_0.bc).wrapping_sub(1); - let mut hfc: bool = flag_get(z, hf); - flag_set( - z, - xf, - result as i32 - hfc as i32 >> 3 as i32 & 1 as i32 - != 0, - ); - flag_set( - z, - yf, - result as i32 - hfc as i32 >> 1 as i32 & 1 as i32 - != 0, - ); - flag_set(z, pf, (*z).c2rust_unnamed_0.bc as i32 != 0 as i32); - flag_set(z, cf, cfc); - (*z).mem_ptr = ((*z).mem_ptr as i32 + 1 as i32) as uint16_t; -} -#[inline] -unsafe fn cpd(z: *mut z80) { - cpi(z); - (*z) - .c2rust_unnamed_2 - .hl = ((*z).c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; - (*z).mem_ptr = ((*z).mem_ptr as i32 - 2 as i32) as uint16_t; -} -unsafe fn in_r_c(z: *mut z80, mut r: *mut uint8_t) { - *r = (*z).internal_port_in((*z).c2rust_unnamed_0.bc); - flag_set(z, zf, *r as i32 == 0 as i32); - flag_set(z, sf, *r as i32 >> 7 as i32 != 0); - flag_set(z, pf, parity(*r)); - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); -} -unsafe fn ini(z: *mut z80) { - let mut tmp: u32 = (*z).internal_port_in((*z).c2rust_unnamed_0.bc) - as u32; - let mut tmp2: u32 = tmp - .wrapping_add( - ((*z).c2rust_unnamed_0.c2rust_unnamed.c as i32 + 1 as i32 - & 0xff as i32) as u32, + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry & (1 as i32) << hf as i32) as uint8_t; + carry >>= 6 as i32; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry + 2 as i32 & 4 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry >> 2 as i32) as uint8_t; + return result as uint8_t; + } + fn subb( + &mut self, + mut a: uint32_t, + mut b: uint32_t, + mut cy: bool, + ) -> uint8_t { + let mut result: int32_t = a.wrapping_sub(b).wrapping_sub(cy as u32) + as int32_t; + let mut carry: int32_t = (result as u32 ^ a ^ b) as int32_t; + result &= 0xff as i32; + self + .c2rust_unnamed + .c2rust_unnamed + .f = ((1 as i32) << nf as i32 + | self.f_szpxy[result as usize] as i32 + & !((1 as i32) << pf as i32)) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry & (1 as i32) << hf as i32) as uint8_t; + carry >>= 6 as i32; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry + 2 as i32 & 4 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry >> 2 as i32 & 1 as i32) as uint8_t; + return result as uint8_t; + } + fn addw( + &mut self, + mut a: uint16_t, + mut b: uint16_t, + mut cy: bool, + ) -> uint16_t { + let mut lsb: uint8_t = self.addb(a as uint32_t, b as uint32_t, cy); + let mut msb: uint8_t = self.addb( + (a as i32 >> 8 as i32) as uint32_t, + (b as i32 >> 8 as i32) as uint32_t, + self.flag_get(cf), ); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 + 1 as i32) - as uint16_t; - wb(z, (*z).c2rust_unnamed_2.hl, tmp as uint8_t); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_add(1); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = ((*z).c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[(*z).c2rust_unnamed_0.c2rust_unnamed.b as usize] as i32 - & !((1 as i32) << pf as i32) - | flag_val(nf, tmp >> 7 as i32 & 1 != 0) - as i32 - | flag_val( - pf, - parity( - (tmp2 & 7 - ^ (*z).c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, - ), - ) as i32 - | flag_val(hf, tmp2 > 255) as i32 - | flag_val(cf, tmp2 > 255) as i32) - as uint8_t; -} -unsafe fn ind(z: *mut z80) { - let mut tmp: u32 = (*z).internal_port_in((*z).c2rust_unnamed_0.bc) - as u32; - let mut tmp2: u32 = tmp - .wrapping_add( - ((*z).c2rust_unnamed_0.c2rust_unnamed.c as i32 - 1 as i32 - & 0xff as i32) as u32, + let mut result: uint16_t = ((msb as i32) << 8 as i32 + | lsb as i32) as uint16_t; + self.flag_set(zf, result as i32 == 0 as i32); + self.mem_ptr = (a as i32 + 1 as i32) as uint16_t; + return result; + } + fn subw( + &mut self, + mut a: uint16_t, + mut b: uint16_t, + mut cy: bool, + ) -> uint16_t { + let mut lsb: uint8_t = self.subb(a as uint32_t, b as uint32_t, cy); + let mut msb: uint8_t = self.subb( + (a as i32 >> 8 as i32) as uint32_t, + (b as i32 >> 8 as i32) as uint32_t, + self.flag_get(cf), ); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 - 1 as i32) - as uint16_t; - wb(z, (*z).c2rust_unnamed_2.hl, tmp as uint8_t); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_sub(1); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = ((*z).c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[(*z).c2rust_unnamed_0.c2rust_unnamed.b as usize] as i32 - & !((1 as i32) << pf as i32) - | flag_val(nf, tmp >> 7 as i32 & 1 != 0) - as i32 - | flag_val( - pf, - parity( - (tmp2 & 7 - ^ (*z).c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, - ), - ) as i32 - | flag_val(hf, tmp2 > 255) as i32 - | flag_val(cf, tmp2 > 255) as i32) - as uint8_t; -} -unsafe fn outi(z: *mut z80) { - let mut tmp: u32 = rb(z, (*z).c2rust_unnamed_2.hl) as u32; - let mut tmp2: u32 = 0; - (*z).internal_port_out((*z).c2rust_unnamed_0.bc, tmp as uint8_t); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_add(1); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = ((*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 - 1 as i32) - as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = f_szpxy[(*z).c2rust_unnamed_0.c2rust_unnamed.b as usize]; - flag_set(z, nf, tmp >> 7 as i32 & 1 != 0); - tmp2 = tmp.wrapping_add((*z).c2rust_unnamed_2.c2rust_unnamed.l as u32); - flag_set( - z, - pf, - parity( - (tmp2 & 7 - ^ (*z).c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, - ), - ); - flag_set(z, hf, tmp2 > 255); - flag_set(z, cf, tmp2 > 255); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 + 1 as i32) - as uint16_t; -} -unsafe fn outd(z: *mut z80) { - outi(z); - (*z) - .c2rust_unnamed_2 - .hl = ((*z).c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 - 2 as i32) - as uint16_t; -} -unsafe fn outc(z: *mut z80, mut data: uint8_t) { - (*z).internal_port_out((*z).c2rust_unnamed_0.bc, data); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 + 1 as i32) - as uint16_t; -} -unsafe fn daa(z: *mut z80) { - let mut correction: uint8_t = 0 as i32 as uint8_t; - if (*z).c2rust_unnamed.c2rust_unnamed.a as i32 & 0xf as i32 - > 0x9 as i32 || flag_get(z, hf) as i32 != 0 - { - correction = (correction as i32 + 0x6 as i32) as uint8_t; + let mut result: uint16_t = ((msb as i32) << 8 as i32 + | lsb as i32) as uint16_t; + self.flag_set(zf, result as i32 == 0 as i32); + self.mem_ptr = (a as i32 + 1 as i32) as uint16_t; + return result; + } + fn addhl(&mut self, mut val: uint16_t) { + let mut sfc: bool = self.flag_get(sf); + let mut zfc: bool = self.flag_get(zf); + let mut pfc: bool = self.flag_get(pf); + let mut result: uint16_t = self.addw( + self.c2rust_unnamed_2.hl, + val, + 0 as i32 != 0, + ); + self.c2rust_unnamed_2.hl = result; + self.flag_set(sf, sfc); + self.flag_set(zf, zfc); + self.flag_set(pf, pfc); + } + fn addiz(&mut self, mut reg: *mut uint16_t, mut val: uint16_t) { + let mut sfc: bool = self.flag_get(sf); + let mut zfc: bool = self.flag_get(zf); + let mut pfc: bool = self.flag_get(pf); + let mut result: uint16_t = self.addw(*reg, val, 0 as i32 != 0); + *reg = result; + self.flag_set(sf, sfc); + self.flag_set(zf, zfc); + self.flag_set(pf, pfc); + } + fn adchl(&mut self, mut val: uint16_t) { + let mut result: uint16_t = self.addw(self.c2rust_unnamed_2.hl, val, self.flag_get(cf)); + self.flag_set(sf, result as i32 >> 15 as i32 != 0); + self.flag_set(zf, result as i32 == 0 as i32); + self.c2rust_unnamed_2.hl = result; } - if (*z).c2rust_unnamed.c2rust_unnamed.a as i32 > 0x99 as i32 - || flag_get(z, cf) as i32 != 0 - { - correction = (correction as i32 + 0x60 as i32) as uint8_t; - flag_set(z, cf, 1 as i32 != 0); + fn sbchl(&mut self, mut val: uint16_t) { + let result: uint16_t = self.subw(self.c2rust_unnamed_2.hl, val, self.flag_get(cf)); + self.flag_set(sf, result as i32 >> 15 as i32 != 0); + self.flag_set(zf, result as i32 == 0 as i32); + self.c2rust_unnamed_2.hl = result; } - let substraction: bool = flag_get(z, nf); - if substraction { - flag_set( - z, - hf, - flag_get(z, hf) as i32 != 0 - && ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - & 0xf as i32) < 0x6 as i32, + fn inc(&mut self, mut a: uint8_t) -> uint8_t { + let mut cfc: bool = self.flag_get(cf); + let mut result: uint8_t = self.addb( + a as uint32_t, + 1 as i32 as uint32_t, + 0 as i32 != 0, ); - (*z) + self.flag_set(cf, cfc); + return result; + } + fn dec(&mut self, mut a: uint8_t) -> uint8_t { + let mut cfc: bool = self.flag_get(cf); + let mut result: uint8_t = self.subb( + a as uint32_t, + 1 as i32 as uint32_t, + 0 as i32 != 0, + ); + self.flag_set(cf, cfc); + return result; + } + fn land(&mut self, mut val: uint8_t) { + let result: uint8_t = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + & val as i32) as uint8_t; + self .c2rust_unnamed .c2rust_unnamed - .a = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - - correction as i32) as uint8_t; - } else { - flag_set( - z, - hf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 & 0xf as i32 - > 0x9 as i32, - ); - (*z) + .f = (self.f_szpxy[result as usize] as i32 + | Self::flag_val(hf, 1 as i32 != 0) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; + self.c2rust_unnamed.c2rust_unnamed.a = result; + } + fn lxor(&mut self, val: uint8_t) { + let result: uint8_t = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + ^ val as i32) as uint8_t; + self .c2rust_unnamed .c2rust_unnamed - .a = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - + correction as i32) as uint8_t; + .f = (self.f_szpxy[result as usize] as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; + self.c2rust_unnamed.c2rust_unnamed.a = result; } - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - & !((1 as i32) << sf as i32 - | (1 as i32) << zf as i32 - | (1 as i32) << pf as i32 - | (1 as i32) << xf as i32 - | (1 as i32) << yf as i32)) as uint8_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = ((*z).c2rust_unnamed.c2rust_unnamed.f as i32 - | f_szpxy[(*z).c2rust_unnamed.c2rust_unnamed.a as usize] as i32) - as uint8_t; -} -#[inline] -unsafe fn displace( - z: *mut z80, - mut base_addr: uint16_t, - mut displacement: int8_t, -) -> uint16_t { - let addr: uint16_t = (base_addr as i32 + displacement as i32) - as uint16_t; - (*z).mem_ptr = addr; - return addr; -} -#[inline] -unsafe fn process_interrupts(z: *mut z80) -> u32 { - let mut cyc: u32 = 0; - if (*z).iff_delay as i32 > 0 as i32 { - (*z).iff_delay = ((*z).iff_delay as i32 - 1 as i32) as uint8_t; - if (*z).iff_delay as i32 == 0 as i32 { - (*z).iff1 = 1 as i32 != 0; - (*z).iff2 = 1 as i32 != 0; - } - return cyc; + fn lor(&mut self, val: uint8_t) { + let result: uint8_t = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + | val as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[result as usize] as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(cf, 0 as i32 != 0) as i32) as uint8_t; + self.c2rust_unnamed.c2rust_unnamed.a = result; } - if (*z).nmi_pending != 0 { - (*z) - .nmi_pending = ((*z).nmi_pending as i32 - & !(Z80_PULSE as i32)) as uint8_t; - (*z).halted = 0 as i32 != 0; - (*z).iff1 = 0 as i32 != 0; - inc_r(z); - cyc = cyc.wrapping_add(11); - call(z, 0x66 as i32 as uint16_t); - return cyc; + fn cp(&mut self, val: uint32_t) { + let mut result: int32_t = (self.c2rust_unnamed.c2rust_unnamed.a as u32) + .wrapping_sub(val) as int32_t; + let mut carry: int32_t = ((result + ^ self.c2rust_unnamed.c2rust_unnamed.a as i32) as u32 ^ val) + as int32_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (((1 as i32) << nf as i32) as u32 + | val + & ((1 as i32) << xf as i32 + | (1 as i32) << yf as i32) as u32 + | (result & (1 as i32) << sf as i32) as u32 + | (((result & 0xff as i32 == 0) as i32) << zf as i32) + as u32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry & (1 as i32) << hf as i32) as uint8_t; + carry >>= 6 as i32; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry + 2 as i32 & 4 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | carry >> 2 as i32 & 1 as i32) as uint8_t; } - if (*z).irq_pending as i32 != 0 && (*z).iff1 as i32 != 0 { - (*z) - .irq_pending = ((*z).irq_pending as i32 - & !(Z80_PULSE as i32)) as uint8_t; - (*z).halted = 0 as i32 != 0; - (*z).iff1 = 0 as i32 != 0; - (*z).iff2 = 0 as i32 != 0; - inc_r(z); - match (*z).interrupt_mode as i32 { - 0 => { - cyc = cyc.wrapping_add(11); - cyc = cyc.wrapping_add(exec_opcode(z, (*z).irq_data)); - } - 1 => { - cyc = cyc.wrapping_add(13); - call(z, 0x38 as i32 as uint16_t); - } - 2 => { - cyc = cyc.wrapping_add(19); - call( - z, - rw( - z, - (((*z).i as i32) << 8 as i32 - | (*z).irq_data as i32) as uint16_t, - ), - ); - } - _ => {} - } - return cyc; + fn cb_rlc(&mut self, mut val: uint8_t) -> uint8_t { + let old: bool = val as i32 >> 7 as i32 != 0; + val = ((val as i32) << 1 as i32 | old as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32 + | Self::flag_val(cf, old) as i32) as uint8_t; + return val; } - return cyc; -} -#[no_mangle] -pub unsafe fn z80_reset(z: *mut z80) { - (*z).pc = 0 as i32 as uint16_t; - (*z).mem_ptr = 0 as i32 as uint16_t; - (*z).i = 0 as i32 as uint8_t; - (*z).r = 0 as i32 as uint8_t; - (*z).interrupt_mode = 0 as i32 as uint8_t; - (*z).iff_delay = 0 as i32 as uint8_t; - (*z).iff1 = 0 as i32 != 0; - (*z).iff2 = 0 as i32 != 0; - (*z).halted = 0 as i32 != 0; - (*z).nmi_pending = 0 as i32 as uint8_t; -} -unsafe fn z80_step_s(z: *mut z80) -> u32 { - let mut cyc: u32 = 0; - if (*z).halted { - cyc = cyc.wrapping_add(exec_opcode(z, 0 as i32 as uint8_t)); - } else { - let opcode: uint8_t = nextb(z); - cyc = cyc.wrapping_add(exec_opcode(z, opcode)); + fn cb_rrc(&mut self, mut val: uint8_t) -> uint8_t { + let old: bool = val as i32 & 1 as i32 != 0; + val = (val as i32 >> 1 as i32 + | (old as i32) << 7 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32 + | Self::flag_val(cf, old) as i32) as uint8_t; + return val; } - cyc = cyc.wrapping_add(process_interrupts(z)); - return cyc; -} -#[no_mangle] -pub unsafe fn z80_set_pc(z: *mut z80, mut pc: uint16_t) { - (*z).pc = pc; -} -#[no_mangle] -pub unsafe fn z80_set_sp(z: *mut z80, mut sp: uint16_t) { - (*z).sp = sp; -} -#[no_mangle] -pub unsafe fn z80_step_n( - z: *mut z80, - mut cycles: u32, -) -> u32 { - let mut cyc: u32 = 0; - while cyc < cycles { - cyc = cyc.wrapping_add(z80_step_s(z)); + fn cb_rl(&mut self, mut val: uint8_t) -> uint8_t { + let cfc: bool = self.flag_get(cf); + let cfn: bool = val as i32 >> 7 as i32 != 0; + val = ((val as i32) << 1 as i32 | cfc as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; } - return cyc; -} -#[no_mangle] -pub unsafe fn z80_assert_nmi(z: *mut z80) { - (*z) - .nmi_pending = ((*z).nmi_pending as i32 | Z80_ASSERT as i32) - as uint8_t; -} -#[no_mangle] -pub unsafe fn z80_pulse_nmi(z: *mut z80) { - (*z) - .nmi_pending = ((*z).nmi_pending as i32 | Z80_PULSE as i32) - as uint8_t; -} -#[no_mangle] -pub unsafe fn z80_clr_nmi(z: *mut z80) { - (*z).nmi_pending = 0 as i32 as uint8_t; -} -#[no_mangle] -pub unsafe fn z80_assert_irq(z: *mut z80, mut data: uint8_t) { - (*z) - .irq_pending = ((*z).irq_pending as i32 | Z80_ASSERT as i32) - as uint8_t; - (*z).irq_data = data; -} -#[no_mangle] -pub unsafe fn z80_pulse_irq(z: *mut z80, mut data: uint8_t) { - (*z) - .irq_pending = ((*z).irq_pending as i32 | Z80_PULSE as i32) - as uint8_t; - (*z).irq_data = data; -} -#[no_mangle] -pub unsafe fn z80_clr_irq(z: *mut z80) { - (*z).irq_pending = 0 as i32 as uint8_t; -} -unsafe fn exec_opcode(z: *mut z80, mut opcode: uint8_t) -> u32 { - let mut cyc: u32 = 0; - inc_r(z); - match opcode as i32 { - 127 => { - cyc = cyc.wrapping_add(4); - (*z).c2rust_unnamed.c2rust_unnamed.a = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 120 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 121 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 122 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 123 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 124 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 125 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 71 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 64 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 65 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 66 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 67 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 68 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 69 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 79 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 72 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 73 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 74 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 75 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 76 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 77 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 87 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 80 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 81 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 82 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 83 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 84 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 85 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 95 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 88 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 89 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 90 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 91 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 92 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 93 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 103 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 96 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 97 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 98 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 99 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 100 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 101 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 111 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 104 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 105 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 106 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 107 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 108 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 109 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = (*z).c2rust_unnamed_2.c2rust_unnamed.l; - } - 126 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed.c2rust_unnamed.a = rb(z, (*z).c2rust_unnamed_2.hl); - } - 70 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_0.c2rust_unnamed.b = rb(z, (*z).c2rust_unnamed_2.hl); - } - 78 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_0.c2rust_unnamed.c = rb(z, (*z).c2rust_unnamed_2.hl); - } - 86 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_1.c2rust_unnamed.d = rb(z, (*z).c2rust_unnamed_2.hl); - } - 94 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_1.c2rust_unnamed.e = rb(z, (*z).c2rust_unnamed_2.hl); - } - 102 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_2.c2rust_unnamed.h = rb(z, (*z).c2rust_unnamed_2.hl); - } - 110 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_2.c2rust_unnamed.l = rb(z, (*z).c2rust_unnamed_2.hl); - } - 119 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 112 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 113 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 114 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 115 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 116 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 117 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_2.hl, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 62 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed.c2rust_unnamed.a = nextb(z); - } - 6 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_0.c2rust_unnamed.b = nextb(z); - } - 14 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_0.c2rust_unnamed.c = nextb(z); - } - 22 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_1.c2rust_unnamed.d = nextb(z); - } - 30 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_1.c2rust_unnamed.e = nextb(z); - } - 38 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_2.c2rust_unnamed.h = nextb(z); - } - 46 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed_2.c2rust_unnamed.l = nextb(z); - } - 54 => { - cyc = cyc.wrapping_add(10); - wb(z, (*z).c2rust_unnamed_2.hl, nextb(z)); - } - 10 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed.c2rust_unnamed.a = rb(z, (*z).c2rust_unnamed_0.bc); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 + 1 as i32) - as uint16_t; - } - 26 => { - cyc = cyc.wrapping_add(7); - (*z).c2rust_unnamed.c2rust_unnamed.a = rb(z, (*z).c2rust_unnamed_1.de); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_1.de as i32 + 1 as i32) - as uint16_t; - } - 58 => { - cyc = cyc.wrapping_add(13); - let addr: uint16_t = nextw(z); - (*z).c2rust_unnamed.c2rust_unnamed.a = rb(z, addr); - (*z).mem_ptr = (addr as i32 + 1 as i32) as uint16_t; - } - 2 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_0.bc, (*z).c2rust_unnamed.c2rust_unnamed.a); - (*z) - .mem_ptr = (((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32 - | (*z).c2rust_unnamed_0.bc as i32 + 1 as i32 - & 0xff as i32) as uint16_t; - } - 18 => { - cyc = cyc.wrapping_add(7); - wb(z, (*z).c2rust_unnamed_1.de, (*z).c2rust_unnamed.c2rust_unnamed.a); - (*z) - .mem_ptr = (((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32 - | (*z).c2rust_unnamed_1.de as i32 + 1 as i32 - & 0xff as i32) as uint16_t; - } - 50 => { - cyc = cyc.wrapping_add(13); - let addr_0: uint16_t = nextw(z); - wb(z, addr_0, (*z).c2rust_unnamed.c2rust_unnamed.a); - (*z) - .mem_ptr = (((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32 - | addr_0 as i32 + 1 as i32 & 0xff as i32) - as uint16_t; - } - 1 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_0.bc = nextw(z); - } - 17 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_1.de = nextw(z); - } - 33 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_2.hl = nextw(z); - } - 49 => { - cyc = cyc.wrapping_add(10); - (*z).sp = nextw(z); - } - 42 => { - cyc = cyc.wrapping_add(16); - let addr_1: uint16_t = nextw(z); - (*z).c2rust_unnamed_2.hl = rw(z, addr_1); - (*z).mem_ptr = (addr_1 as i32 + 1 as i32) as uint16_t; - } - 34 => { - cyc = cyc.wrapping_add(16); - let addr_2: uint16_t = nextw(z); - ww(z, addr_2, (*z).c2rust_unnamed_2.hl); - (*z).mem_ptr = (addr_2 as i32 + 1 as i32) as uint16_t; - } - 249 => { - cyc = cyc.wrapping_add(6); - (*z).sp = (*z).c2rust_unnamed_2.hl; - } - 235 => { - cyc = cyc.wrapping_add(4); - let de: uint16_t = (*z).c2rust_unnamed_1.de; - (*z).c2rust_unnamed_1.de = (*z).c2rust_unnamed_2.hl; - (*z).c2rust_unnamed_2.hl = de; + fn cb_rr(&mut self, mut val: uint8_t) -> uint8_t { + let c: bool = self.flag_get(cf); + let cfn: bool = val as i32 & 1 as i32 != 0; + val = (val as i32 >> 1 as i32 + | (c as i32) << 7 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; + } + fn cb_sla(&mut self, mut val: uint8_t) -> uint8_t { + let cfn: bool = val as i32 >> 7 as i32 != 0; + val = ((val as i32) << 1 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; + } + fn cb_sll(&mut self, mut val: uint8_t) -> uint8_t { + let cfn: bool = val as i32 >> 7 as i32 != 0; + val = ((val as i32) << 1 as i32) as uint8_t; + val = (val as i32 | 1 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; + } + fn cb_sra(&mut self, mut val: uint8_t) -> uint8_t { + let cfn: bool = val as i32 & 1 as i32 != 0; + val = (val as i32 >> 1 as i32 + | val as i32 & 0x80 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; + } + fn cb_srl(&mut self, mut val: uint8_t) -> uint8_t { + let cfn: bool = val as i32 & 1 as i32 != 0; + val = (val as i32 >> 1 as i32) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[val as usize] as i32 | Self::flag_val(cf, cfn) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + return val; + } + fn cb_bit(&mut self, mut val: uint8_t, mut n: uint8_t) -> uint8_t { + let result: uint8_t = (val as i32 & (1 as i32) << n as i32) + as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[result as usize] as i32 + | Self::flag_val(cf, self.flag_get(cf)) as i32 + | Self::flag_val(hf, 1 as i32 != 0) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32) as uint8_t; + return result; + } + fn ldi(&mut self) { + let de: uint16_t = self.c2rust_unnamed_1.de; + let hl: uint16_t = self.c2rust_unnamed_2.hl; + let val: uint8_t = self.ctrl.read_byte(hl); + self.ctrl.write_byte(de, val); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_add(1); + self.c2rust_unnamed_1.de = (self.c2rust_unnamed_1.de).wrapping_add(1); + self.c2rust_unnamed_0.bc = (self.c2rust_unnamed_0.bc).wrapping_sub(1); + let result: uint8_t = (val as i32 + + self.c2rust_unnamed.c2rust_unnamed.a as i32) as uint8_t; + self.flag_set(xf, result as i32 >> 3 as i32 & 1 as i32 != 0); + self.flag_set(yf, result as i32 >> 1 as i32 & 1 as i32 != 0); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set(pf, self.c2rust_unnamed_0.bc as i32 > 0 as i32); + } + fn ldd(&mut self) { + self.ldi(); + self + .c2rust_unnamed_2 + .hl = (self.c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; + self + .c2rust_unnamed_1 + .de = (self.c2rust_unnamed_1.de as i32 - 2 as i32) as uint16_t; + } + fn cpi(&mut self) { + let mut cfc: bool = self.flag_get(cf); + let result: uint8_t = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t, + 0 as i32 != 0, + ); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_add(1); + self.c2rust_unnamed_0.bc = (self.c2rust_unnamed_0.bc).wrapping_sub(1); + let mut hfc: bool = self.flag_get(hf); + self.flag_set( + xf, + result as i32 - hfc as i32 >> 3 as i32 & 1 as i32 + != 0, + ); + self.flag_set( + yf, + result as i32 - hfc as i32 >> 1 as i32 & 1 as i32 + != 0, + ); + self.flag_set(pf, self.c2rust_unnamed_0.bc as i32 != 0 as i32); + self.flag_set(cf, cfc); + self.mem_ptr = (self.mem_ptr as i32 + 1 as i32) as uint16_t; + } + fn cpd(&mut self) { + self.cpi(); + self + .c2rust_unnamed_2 + .hl = (self.c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; + self.mem_ptr = (self.mem_ptr as i32 - 2 as i32) as uint16_t; + } + fn in_r_c(&mut self, mut r: *mut uint8_t) { + *r = self.internal_port_in(self.c2rust_unnamed_0.bc); + self.flag_set(zf, *r as i32 == 0 as i32); + self.flag_set(sf, *r as i32 >> 7 as i32 != 0); + self.flag_set(pf, Self::parity(*r)); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + } + fn ini(&mut self) { + let mut tmp: u32 = self.internal_port_in(self.c2rust_unnamed_0.bc) + as u32; + let mut tmp2: u32 = tmp + .wrapping_add( + (self.c2rust_unnamed_0.c2rust_unnamed.c as i32 + 1 as i32 + & 0xff as i32) as u32, + ); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 + 1 as i32) + as uint16_t; + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, tmp as uint8_t); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_add(1); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (self.c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[self.c2rust_unnamed_0.c2rust_unnamed.b as usize] as i32 + & !((1 as i32) << pf as i32) + | Self::flag_val(nf, tmp >> 7 as i32 & 1 != 0) + as i32 + | Self::flag_val( + pf, + Self::parity( + (tmp2 & 7 + ^ self.c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, + ), + ) as i32 + | Self::flag_val(hf, tmp2 > 255) as i32 + | Self::flag_val(cf, tmp2 > 255) as i32) + as uint8_t; + } + fn ind(&mut self) { + let mut tmp: u32 = self.internal_port_in(self.c2rust_unnamed_0.bc) + as u32; + let mut tmp2: u32 = tmp + .wrapping_add( + (self.c2rust_unnamed_0.c2rust_unnamed.c as i32 - 1 as i32 + & 0xff as i32) as u32, + ); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 - 1 as i32) + as uint16_t; + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, tmp as uint8_t); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_sub(1); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (self.c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[self.c2rust_unnamed_0.c2rust_unnamed.b as usize] as i32 + & !((1 as i32) << pf as i32) + | Self::flag_val(nf, tmp >> 7 as i32 & 1 != 0) + as i32 + | Self::flag_val( + pf, + Self::parity( + (tmp2 & 7 + ^ self.c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, + ), + ) as i32 + | Self::flag_val(hf, tmp2 > 255) as i32 + | Self::flag_val(cf, tmp2 > 255) as i32) + as uint8_t; + } + fn outi(&mut self) { + let mut tmp: u32 = self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as u32; + let mut tmp2: u32 = 0; + self.internal_port_out(self.c2rust_unnamed_0.bc, tmp as uint8_t); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_add(1); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (self.c2rust_unnamed_0.c2rust_unnamed.b as i32 - 1 as i32) + as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = self.f_szpxy[self.c2rust_unnamed_0.c2rust_unnamed.b as usize]; + self.flag_set(nf, tmp >> 7 as i32 & 1 != 0); + tmp2 = tmp.wrapping_add(self.c2rust_unnamed_2.c2rust_unnamed.l as u32); + self.flag_set( + pf, + Self::parity( + (tmp2 & 7 + ^ self.c2rust_unnamed_0.c2rust_unnamed.b as u32) as uint8_t, + ), + ); + self.flag_set(hf, tmp2 > 255); + self.flag_set(cf, tmp2 > 255); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 + 1 as i32) + as uint16_t; + } + fn outd(&mut self) { + self.outi(); + self + .c2rust_unnamed_2 + .hl = (self.c2rust_unnamed_2.hl as i32 - 2 as i32) as uint16_t; + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 - 2 as i32) + as uint16_t; + } + fn outc(&mut self, mut data: uint8_t) { + self.internal_port_out(self.c2rust_unnamed_0.bc, data); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 + 1 as i32) + as uint16_t; + } + fn daa(&mut self) { + let mut correction: uint8_t = 0 as i32 as uint8_t; + if self.c2rust_unnamed.c2rust_unnamed.a as i32 & 0xf as i32 + > 0x9 as i32 || self.flag_get(hf) as i32 != 0 + { + correction = (correction as i32 + 0x6 as i32) as uint8_t; } - 227 => { - cyc = cyc.wrapping_add(19); - let val: uint16_t = rw(z, (*z).sp); - ww(z, (*z).sp, (*z).c2rust_unnamed_2.hl); - (*z).c2rust_unnamed_2.hl = val; - (*z).mem_ptr = val; + if self.c2rust_unnamed.c2rust_unnamed.a as i32 > 0x99 as i32 + || self.flag_get(cf) as i32 != 0 + { + correction = (correction as i32 + 0x60 as i32) as uint8_t; + self.flag_set(cf, 1 as i32 != 0); } - 135 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - 0 as i32 != 0, + let substraction: bool = self.flag_get(nf); + if substraction { + self.flag_set( + hf, + self.flag_get(hf) as i32 != 0 + && (self.c2rust_unnamed.c2rust_unnamed.a as i32 + & 0xf as i32) < 0x6 as i32, ); - } - 128 => { - cyc = cyc.wrapping_add(4); - (*z) + self .c2rust_unnamed .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, - 0 as i32 != 0, + .a = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + - correction as i32) as uint8_t; + } else { + self.flag_set( + hf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 & 0xf as i32 + > 0x9 as i32, ); - } - 129 => { - cyc = cyc.wrapping_add(4); - (*z) + self .c2rust_unnamed .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, - 0 as i32 != 0, - ); + .a = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + + correction as i32) as uint8_t; } - 130 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, - 0 as i32 != 0, - ); + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + & !((1 as i32) << sf as i32 + | (1 as i32) << zf as i32 + | (1 as i32) << pf as i32 + | (1 as i32) << xf as i32 + | (1 as i32) << yf as i32)) as uint8_t; + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.c2rust_unnamed.c2rust_unnamed.f as i32 + | self.f_szpxy[self.c2rust_unnamed.c2rust_unnamed.a as usize] as i32) + as uint8_t; + } + fn displace( + &mut self, + mut base_addr: uint16_t, + mut displacement: int8_t, + ) -> uint16_t { + let addr: uint16_t = (base_addr as i32 + displacement as i32) + as uint16_t; + self.mem_ptr = addr; + return addr; + } + fn process_interrupts(&mut self) -> u32 { + let mut cyc: u32 = 0; + if self.iff_delay as i32 > 0 as i32 { + self.iff_delay = (self.iff_delay as i32 - 1 as i32) as uint8_t; + if self.iff_delay as i32 == 0 as i32 { + self.iff1 = 1 as i32 != 0; + self.iff2 = 1 as i32 != 0; + } + return cyc; + } + if self.nmi_pending != 0 { + self + .nmi_pending = (self.nmi_pending as i32 + & !(Z80_PULSE as i32)) as uint8_t; + self.halted = 0 as i32 != 0; + self.iff1 = 0 as i32 != 0; + self.inc_r(); + cyc = cyc.wrapping_add(11); + self.call(0x66 as i32 as uint16_t); + return cyc; + } + if self.irq_pending as i32 != 0 && self.iff1 as i32 != 0 { + self + .irq_pending = (self.irq_pending as i32 + & !(Z80_PULSE as i32)) as uint8_t; + self.halted = 0 as i32 != 0; + self.iff1 = 0 as i32 != 0; + self.iff2 = 0 as i32 != 0; + self.inc_r(); + match self.interrupt_mode as i32 { + 0 => { + cyc = cyc.wrapping_add(11); + cyc = cyc.wrapping_add(self.exec_opcode(self.irq_data)); + } + 1 => { + cyc = cyc.wrapping_add(13); + self.call(0x38 as i32 as uint16_t); + } + 2 => { + cyc = cyc.wrapping_add(19); + self.call( + self.rw( + ((self.i as i32) << 8 as i32 + | self.irq_data as i32) as uint16_t, + ), + ); + } + _ => {} + } + return cyc; } - 131 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, - 0 as i32 != 0, - ); + return cyc; + } + pub fn z80_reset(&mut self) { + self.pc = 0 as i32 as uint16_t; + self.mem_ptr = 0 as i32 as uint16_t; + self.i = 0 as i32 as uint8_t; + self.r = 0 as i32 as uint8_t; + self.interrupt_mode = 0 as i32 as uint8_t; + self.iff_delay = 0 as i32 as uint8_t; + self.iff1 = 0 as i32 != 0; + self.iff2 = 0 as i32 != 0; + self.halted = 0 as i32 != 0; + self.nmi_pending = 0 as i32 as uint8_t; + } + fn z80_step_s(&mut self) -> u32 { + let mut cyc: u32 = 0; + if self.halted { + cyc = cyc.wrapping_add(self.exec_opcode(0 as i32 as uint8_t)); + } else { + let opcode: uint8_t = self.nextb(); + cyc = cyc.wrapping_add(self.exec_opcode(opcode)); + } + cyc = cyc.wrapping_add(self.process_interrupts()); + return cyc; + } + pub fn z80_set_pc(&mut self, mut pc: uint16_t) { + self.pc = pc; + } + pub fn z80_set_sp(&mut self, mut sp: uint16_t) { + self.sp = sp; + } + pub fn z80_step_n( + &mut self, + mut cycles: u32, + ) -> u32 { + let mut cyc: u32 = 0; + while cyc < cycles { + cyc = cyc.wrapping_add(self.z80_step_s()); } - 132 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, - 0 as i32 != 0, - ); - } - 133 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, - 0 as i32 != 0, - ); - } - 134 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t, - 0 as i32 != 0, - ); - } - 198 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - nextb(z) as uint32_t, - 0 as i32 != 0, - ); - } - 143 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - flag_get(z, cf), - ); - } - 136 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, - flag_get(z, cf), - ); - } - 137 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, - flag_get(z, cf), - ); - } - 138 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, - flag_get(z, cf), - ); - } - 139 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, - flag_get(z, cf), - ); - } - 140 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, - flag_get(z, cf), - ); - } - 141 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, - flag_get(z, cf), - ); - } - 142 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t, - flag_get(z, cf), - ); - } - 206 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - nextb(z) as uint32_t, - flag_get(z, cf), - ); - } - 151 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - 0 as i32 != 0, - ); - } - 144 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, - 0 as i32 != 0, - ); - } - 145 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, - 0 as i32 != 0, - ); - } - 146 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, - 0 as i32 != 0, - ); - } - 147 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, - 0 as i32 != 0, - ); - } - 148 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, - 0 as i32 != 0, - ); - } - 149 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, - 0 as i32 != 0, - ); - } - 150 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t, - 0 as i32 != 0, - ); - } - 214 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - nextb(z) as uint32_t, - 0 as i32 != 0, - ); - } - 159 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - flag_get(z, cf), - ); - } - 152 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, - flag_get(z, cf), - ); - } - 153 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, - flag_get(z, cf), - ); - } - 154 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, - flag_get(z, cf), - ); - } - 155 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, - flag_get(z, cf), - ); - } - 156 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, - flag_get(z, cf), - ); - } - 157 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*z).c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, - flag_get(z, cf), - ); - } - 158 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t, - flag_get(z, cf), - ); - } - 222 => { - cyc = cyc.wrapping_add(7); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - nextb(z) as uint32_t, - flag_get(z, cf), - ); - } - 9 => { - cyc = cyc.wrapping_add(11); - addhl(z, (*z).c2rust_unnamed_0.bc); - } - 25 => { - cyc = cyc.wrapping_add(11); - addhl(z, (*z).c2rust_unnamed_1.de); - } - 41 => { - cyc = cyc.wrapping_add(11); - addhl(z, (*z).c2rust_unnamed_2.hl); - } - 57 => { - cyc = cyc.wrapping_add(11); - addhl(z, (*z).sp); - } - 243 => { - cyc = cyc.wrapping_add(4); - (*z).iff2 = 0 as i32 != 0; - (*z).iff1 = (*z).iff2; - } - 251 => { - cyc = cyc.wrapping_add(4); - (*z).iff_delay = 1 as i32 as uint8_t; - } - 0 => { - cyc = cyc.wrapping_add(4); - } - 118 => { - cyc = cyc.wrapping_add(4); - (*z).halted = 1 as i32 != 0; - } - 60 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = inc(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 4 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = inc(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 12 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = inc(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 20 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = inc(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 28 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = inc(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 36 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = inc(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 44 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = inc(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 52 => { - cyc = cyc.wrapping_add(11); - let mut result: uint8_t = inc(z, rb(z, (*z).c2rust_unnamed_2.hl)); - wb(z, (*z).c2rust_unnamed_2.hl, result); - } - 61 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = dec(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 5 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = dec(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 13 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = dec(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 21 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = dec(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 29 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = dec(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 37 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = dec(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 45 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = dec(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 53 => { - cyc = cyc.wrapping_add(11); - let mut result_0: uint8_t = dec(z, rb(z, (*z).c2rust_unnamed_2.hl)); - wb(z, (*z).c2rust_unnamed_2.hl, result_0); - } - 3 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_0.bc = ((*z).c2rust_unnamed_0.bc).wrapping_add(1); - } - 19 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_1.de = ((*z).c2rust_unnamed_1.de).wrapping_add(1); - } - 35 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_add(1); - } - 51 => { - cyc = cyc.wrapping_add(6); - (*z).sp = ((*z).sp).wrapping_add(1); - } - 11 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_0.bc = ((*z).c2rust_unnamed_0.bc).wrapping_sub(1); - } - 27 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_1.de = ((*z).c2rust_unnamed_1.de).wrapping_sub(1); - } - 43 => { - cyc = cyc.wrapping_add(6); - (*z).c2rust_unnamed_2.hl = ((*z).c2rust_unnamed_2.hl).wrapping_sub(1); - } - 59 => { - cyc = cyc.wrapping_add(6); - (*z).sp = ((*z).sp).wrapping_sub(1); - } - 39 => { - cyc = cyc.wrapping_add(4); - daa(z); - } - 47 => { - cyc = cyc.wrapping_add(4); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = !((*z).c2rust_unnamed.c2rust_unnamed.a as i32) as uint8_t; - flag_set(z, nf, 1 as i32 != 0); - flag_set(z, hf, 1 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 55 => { - cyc = cyc.wrapping_add(4); - flag_set(z, cf, 1 as i32 != 0); - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 63 => { - cyc = cyc.wrapping_add(4); - flag_set(z, hf, flag_get(z, cf)); - flag_set(z, cf, !flag_get(z, cf)); - flag_set(z, nf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 7 => { - cyc = cyc.wrapping_add(4); - flag_set( - z, - cf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 - != 0, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 1 as i32 | flag_get(z, cf) as i32) as uint8_t; - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 15 => { - cyc = cyc.wrapping_add(4); - flag_set( - z, - cf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 & 1 as i32 - != 0, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - >> 1 as i32 - | (flag_get(z, cf) as i32) << 7 as i32) as uint8_t; - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 23 => { - cyc = cyc.wrapping_add(4); - let cy: bool = flag_get(z, cf); - flag_set( - z, - cf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 - != 0, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 1 as i32 | cy as i32) as uint8_t; - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 31 => { - cyc = cyc.wrapping_add(4); - let cy_0: bool = flag_get(z, cf); - flag_set( - z, - cf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 & 1 as i32 - != 0, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = ((*z).c2rust_unnamed.c2rust_unnamed.a as i32 - >> 1 as i32 | (cy_0 as i32) << 7 as i32) - as uint8_t; - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, hf, 0 as i32 != 0); - flag_set( - z, - xf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - yf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - } - 167 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 160 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 161 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 162 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 163 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 164 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 165 => { - cyc = cyc.wrapping_add(4); - land(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 166 => { - cyc = cyc.wrapping_add(7); - land(z, rb(z, (*z).c2rust_unnamed_2.hl)); - } - 230 => { - cyc = cyc.wrapping_add(7); - land(z, nextb(z)); - } - 175 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 168 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 169 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 170 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 171 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 172 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 173 => { - cyc = cyc.wrapping_add(4); - lxor(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 174 => { - cyc = cyc.wrapping_add(7); - lxor(z, rb(z, (*z).c2rust_unnamed_2.hl)); - } - 238 => { - cyc = cyc.wrapping_add(7); - lxor(z, nextb(z)); - } - 183 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 176 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 177 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 178 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 179 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 180 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 181 => { - cyc = cyc.wrapping_add(4); - lor(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 182 => { - cyc = cyc.wrapping_add(7); - lor(z, rb(z, (*z).c2rust_unnamed_2.hl)); - } - 246 => { - cyc = cyc.wrapping_add(7); - lor(z, nextb(z)); - } - 191 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t); - } - 184 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b as uint32_t); - } - 185 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c as uint32_t); - } - 186 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d as uint32_t); - } - 187 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e as uint32_t); - } - 188 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h as uint32_t); - } - 189 => { - cyc = cyc.wrapping_add(4); - cp(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l as uint32_t); - } - 190 => { - cyc = cyc.wrapping_add(7); - cp(z, rb(z, (*z).c2rust_unnamed_2.hl) as uint32_t); - } - 254 => { - cyc = cyc.wrapping_add(7); - cp(z, nextb(z) as uint32_t); - } - 195 => { - cyc = cyc.wrapping_add(10); - jump(z, nextw(z)); - } - 194 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, zf) as i32 == 0 as i32); - } - 202 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, zf) as i32 == 1 as i32); - } - 210 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, cf) as i32 == 0 as i32); - } - 218 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, cf) as i32 == 1 as i32); - } - 226 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, pf) as i32 == 0 as i32); - } - 234 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, pf) as i32 == 1 as i32); - } - 242 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, sf) as i32 == 0 as i32); - } - 250 => { - cyc = cyc.wrapping_add(10); - cond_jump(z, flag_get(z, sf) as i32 == 1 as i32); - } - 16 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = ((*z).c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); - cyc = cyc - .wrapping_add( - cond_jr( - z, - (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 - != 0 as i32, - ), + return cyc; + } + pub fn z80_assert_nmi(&mut self) { + self + .nmi_pending = (self.nmi_pending as i32 | Z80_ASSERT as i32) + as uint8_t; + } + pub fn z80_pulse_nmi(&mut self) { + self + .nmi_pending = (self.nmi_pending as i32 | Z80_PULSE as i32) + as uint8_t; + } + pub fn z80_clr_nmi(&mut self) { + self.nmi_pending = 0 as i32 as uint8_t; + } + pub fn z80_assert_irq(&mut self, mut data: uint8_t) { + self + .irq_pending = (self.irq_pending as i32 | Z80_ASSERT as i32) + as uint8_t; + self.irq_data = data; + } + pub fn z80_pulse_irq(&mut self, mut data: uint8_t) { + self + .irq_pending = (self.irq_pending as i32 | Z80_PULSE as i32) + as uint8_t; + self.irq_data = data; + } + pub fn z80_clr_irq(&mut self) { + self.irq_pending = 0 as i32 as uint8_t; + } + fn exec_opcode(&mut self, mut opcode: uint8_t) -> u32 { + let mut cyc: u32 = 0; + self.inc_r(); + match opcode as i32 { + 127 => { + cyc = cyc.wrapping_add(4); + self.c2rust_unnamed.c2rust_unnamed.a = self.c2rust_unnamed.c2rust_unnamed.a; + } + 120 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 121 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 122 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 123 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 124 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 125 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 71 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed.c2rust_unnamed.a; + } + 64 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 65 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 66 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 67 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 68 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 69 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 79 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed.c2rust_unnamed.a; + } + 72 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 73 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 74 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 75 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 76 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 77 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 87 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed.c2rust_unnamed.a; + } + 80 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 81 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 82 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 83 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 84 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 85 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 95 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed.c2rust_unnamed.a; + } + 88 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 89 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 90 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 91 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 92 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 93 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 103 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed.c2rust_unnamed.a; + } + 96 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 97 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 98 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 99 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 100 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 101 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 111 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed.c2rust_unnamed.a; + } + 104 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 105 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 106 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 107 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 108 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 109 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 126 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed.c2rust_unnamed.a = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 70 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_0.c2rust_unnamed.b = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 78 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_0.c2rust_unnamed.c = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 86 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_1.c2rust_unnamed.d = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 94 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_1.c2rust_unnamed.e = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 102 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_2.c2rust_unnamed.h = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 110 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_2.c2rust_unnamed.l = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + } + 119 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed.c2rust_unnamed.a); + } + 112 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 113 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 114 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 115 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 116 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 117 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 62 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed.c2rust_unnamed.a = self.nextb(); + } + 6 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_0.c2rust_unnamed.b = self.nextb(); + } + 14 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_0.c2rust_unnamed.c = self.nextb(); + } + 22 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_1.c2rust_unnamed.d = self.nextb(); + } + 30 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_1.c2rust_unnamed.e = self.nextb(); + } + 38 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_2.c2rust_unnamed.h = self.nextb(); + } + 46 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed_2.c2rust_unnamed.l = self.nextb(); + } + 54 => { + cyc = cyc.wrapping_add(10); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, self.nextb()); + } + 10 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed.c2rust_unnamed.a = self.ctrl.read_byte(self.c2rust_unnamed_0.bc); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 + 1 as i32) + as uint16_t; + } + 26 => { + cyc = cyc.wrapping_add(7); + self.c2rust_unnamed.c2rust_unnamed.a = self.ctrl.read_byte(self.c2rust_unnamed_1.de); + self + .mem_ptr = (self.c2rust_unnamed_1.de as i32 + 1 as i32) + as uint16_t; + } + 58 => { + cyc = cyc.wrapping_add(13); + let addr: uint16_t = self.nextw(); + self.c2rust_unnamed.c2rust_unnamed.a = self.ctrl.read_byte(addr); + self.mem_ptr = (addr as i32 + 1 as i32) as uint16_t; + } + 2 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_0.bc, self.c2rust_unnamed.c2rust_unnamed.a); + self + .mem_ptr = ((self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32 + | self.c2rust_unnamed_0.bc as i32 + 1 as i32 + & 0xff as i32) as uint16_t; + } + 18 => { + cyc = cyc.wrapping_add(7); + self.ctrl.write_byte(self.c2rust_unnamed_1.de, self.c2rust_unnamed.c2rust_unnamed.a); + self + .mem_ptr = ((self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32 + | self.c2rust_unnamed_1.de as i32 + 1 as i32 + & 0xff as i32) as uint16_t; + } + 50 => { + cyc = cyc.wrapping_add(13); + let addr_0: uint16_t = self.nextw(); + self.ctrl.write_byte(addr_0, self.c2rust_unnamed.c2rust_unnamed.a); + self + .mem_ptr = ((self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32 + | addr_0 as i32 + 1 as i32 & 0xff as i32) + as uint16_t; + } + 1 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_0.bc = self.nextw(); + } + 17 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_1.de = self.nextw(); + } + 33 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_2.hl = self.nextw(); + } + 49 => { + cyc = cyc.wrapping_add(10); + self.sp = self.nextw(); + } + 42 => { + cyc = cyc.wrapping_add(16); + let addr_1: uint16_t = self.nextw(); + self.c2rust_unnamed_2.hl = self.rw(addr_1); + self.mem_ptr = (addr_1 as i32 + 1 as i32) as uint16_t; + } + 34 => { + cyc = cyc.wrapping_add(16); + let addr_2: uint16_t = self.nextw(); + self.ww(addr_2, self.c2rust_unnamed_2.hl); + self.mem_ptr = (addr_2 as i32 + 1 as i32) as uint16_t; + } + 249 => { + cyc = cyc.wrapping_add(6); + self.sp = self.c2rust_unnamed_2.hl; + } + 235 => { + cyc = cyc.wrapping_add(4); + let de: uint16_t = self.c2rust_unnamed_1.de; + self.c2rust_unnamed_1.de = self.c2rust_unnamed_2.hl; + self.c2rust_unnamed_2.hl = de; + } + 227 => { + cyc = cyc.wrapping_add(19); + let val: uint16_t = self.rw(self.sp); + self.ww(self.sp, self.c2rust_unnamed_2.hl); + self.c2rust_unnamed_2.hl = val; + self.mem_ptr = val; + } + 135 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + 0 as i32 != 0, ); - } - 24 => { - cyc = cyc.wrapping_add(12); - jr(z, nextb(z) as int8_t); - } - 32 => { - cyc = cyc.wrapping_add(7); - cyc = cyc - .wrapping_add( - cond_jr(z, flag_get(z, zf) as i32 == 0 as i32), + } + 128 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, + 0 as i32 != 0, ); - } - 40 => { - cyc = cyc.wrapping_add(7); - cyc = cyc - .wrapping_add( - cond_jr(z, flag_get(z, zf) as i32 == 1 as i32), + } + 129 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, + 0 as i32 != 0, + ); + } + 130 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, + 0 as i32 != 0, + ); + } + 131 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, + 0 as i32 != 0, + ); + } + 132 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, + 0 as i32 != 0, + ); + } + 133 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, + 0 as i32 != 0, + ); + } + 134 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t, + 0 as i32 != 0, + ); + } + 198 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.nextb() as uint32_t, + 0 as i32 != 0, + ); + } + 143 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.flag_get(cf), ); - } - 48 => { - cyc = cyc.wrapping_add(7); - cyc = cyc - .wrapping_add( - cond_jr(z, flag_get(z, cf) as i32 == 0 as i32), + } + 136 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, + self.flag_get(cf), ); - } - 56 => { - cyc = cyc.wrapping_add(7); - cyc = cyc - .wrapping_add( - cond_jr(z, flag_get(z, cf) as i32 == 1 as i32), + } + 137 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, + self.flag_get(cf), ); - } - 233 => { - cyc = cyc.wrapping_add(4); - (*z).pc = (*z).c2rust_unnamed_2.hl; - } - 205 => { - cyc = cyc.wrapping_add(17); - call(z, nextw(z)); - } - 196 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, zf) as i32 == 0 as i32), + } + 138 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, + self.flag_get(cf), ); - } - 204 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, zf) as i32 == 1 as i32), + } + 139 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, + self.flag_get(cf), ); - } - 212 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, cf) as i32 == 0 as i32), + } + 140 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, + self.flag_get(cf), ); - } - 220 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, cf) as i32 == 1 as i32), + } + 141 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, + self.flag_get(cf), ); - } - 228 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, pf) as i32 == 0 as i32), + } + 142 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t, + self.flag_get(cf), ); - } - 236 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, pf) as i32 == 1 as i32), + } + 206 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.nextb() as uint32_t, + self.flag_get(cf), ); - } - 244 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, sf) as i32 == 0 as i32), + } + 151 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + 0 as i32 != 0, ); - } - 252 => { - cyc = cyc.wrapping_add(10); - cyc = cyc - .wrapping_add( - cond_call(z, flag_get(z, sf) as i32 == 1 as i32), + } + 144 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, + 0 as i32 != 0, ); - } - 201 => { - cyc = cyc.wrapping_add(10); - ret(z); - } - 192 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, zf) as i32 == 0 as i32), + } + 145 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, + 0 as i32 != 0, ); - } - 200 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, zf) as i32 == 1 as i32), + } + 146 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, + 0 as i32 != 0, ); - } - 208 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, cf) as i32 == 0 as i32), + } + 147 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, + 0 as i32 != 0, ); - } - 216 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, cf) as i32 == 1 as i32), + } + 148 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, + 0 as i32 != 0, ); - } - 224 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, pf) as i32 == 0 as i32), + } + 149 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, + 0 as i32 != 0, ); - } - 232 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, pf) as i32 == 1 as i32), + } + 150 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t, + 0 as i32 != 0, ); - } - 240 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, sf) as i32 == 0 as i32), + } + 214 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.nextb() as uint32_t, + 0 as i32 != 0, ); - } - 248 => { - cyc = cyc.wrapping_add(5); - cyc = cyc - .wrapping_add( - cond_ret(z, flag_get(z, sf) as i32 == 1 as i32), + } + 159 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.flag_get(cf), ); + } + 152 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.b as uint32_t, + self.flag_get(cf), + ); + } + 153 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_0.c2rust_unnamed.c as uint32_t, + self.flag_get(cf), + ); + } + 154 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.d as uint32_t, + self.flag_get(cf), + ); + } + 155 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_1.c2rust_unnamed.e as uint32_t, + self.flag_get(cf), + ); + } + 156 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.h as uint32_t, + self.flag_get(cf), + ); + } + 157 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.c2rust_unnamed_2.c2rust_unnamed.l as uint32_t, + self.flag_get(cf), + ); + } + 158 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t, + self.flag_get(cf), + ); + } + 222 => { + cyc = cyc.wrapping_add(7); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.nextb() as uint32_t, + self.flag_get(cf), + ); + } + 9 => { + cyc = cyc.wrapping_add(11); + self.addhl(self.c2rust_unnamed_0.bc); + } + 25 => { + cyc = cyc.wrapping_add(11); + self.addhl(self.c2rust_unnamed_1.de); + } + 41 => { + cyc = cyc.wrapping_add(11); + self.addhl(self.c2rust_unnamed_2.hl); + } + 57 => { + cyc = cyc.wrapping_add(11); + self.addhl(self.sp); + } + 243 => { + cyc = cyc.wrapping_add(4); + self.iff2 = 0 as i32 != 0; + self.iff1 = self.iff2; + } + 251 => { + cyc = cyc.wrapping_add(4); + self.iff_delay = 1 as i32 as uint8_t; + } + 0 => { + cyc = cyc.wrapping_add(4); + } + 118 => { + cyc = cyc.wrapping_add(4); + self.halted = 1 as i32 != 0; + } + 60 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.inc(self.c2rust_unnamed.c2rust_unnamed.a); + } + 4 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.inc(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 12 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.inc(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 20 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.inc(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 28 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.inc(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 36 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.inc(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 44 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.inc(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 52 => { + cyc = cyc.wrapping_add(11); + let mut result: uint8_t = self.inc(self.ctrl.read_byte(self.c2rust_unnamed_2.hl)); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, result); + } + 61 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.dec(self.c2rust_unnamed.c2rust_unnamed.a); + } + 5 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.dec(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 13 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.dec(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 21 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.dec(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 29 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.dec(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 37 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.dec(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 45 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.dec(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 53 => { + cyc = cyc.wrapping_add(11); + let mut result_0: uint8_t = self.dec(self.ctrl.read_byte(self.c2rust_unnamed_2.hl)); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, result_0); + } + 3 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_0.bc = (self.c2rust_unnamed_0.bc).wrapping_add(1); + } + 19 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_1.de = (self.c2rust_unnamed_1.de).wrapping_add(1); + } + 35 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_add(1); + } + 51 => { + cyc = cyc.wrapping_add(6); + self.sp = (self.sp).wrapping_add(1); + } + 11 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_0.bc = (self.c2rust_unnamed_0.bc).wrapping_sub(1); + } + 27 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_1.de = (self.c2rust_unnamed_1.de).wrapping_sub(1); + } + 43 => { + cyc = cyc.wrapping_add(6); + self.c2rust_unnamed_2.hl = (self.c2rust_unnamed_2.hl).wrapping_sub(1); + } + 59 => { + cyc = cyc.wrapping_add(6); + self.sp = (self.sp).wrapping_sub(1); + } + 39 => { + cyc = cyc.wrapping_add(4); + self.daa(); + } + 47 => { + cyc = cyc.wrapping_add(4); + self + .c2rust_unnamed + .c2rust_unnamed + .a = !(self.c2rust_unnamed.c2rust_unnamed.a as i32) as uint8_t; + self.flag_set(nf, 1 as i32 != 0); + self.flag_set(hf, 1 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 55 => { + cyc = cyc.wrapping_add(4); + self.flag_set(cf, 1 as i32 != 0); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 63 => { + cyc = cyc.wrapping_add(4); + self.flag_set(hf, self.flag_get(cf)); + self.flag_set(cf, !self.flag_get(cf)); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 7 => { + cyc = cyc.wrapping_add(4); + self.flag_set( + cf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 + != 0, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .a = ((self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 1 as i32 | self.flag_get(cf) as i32) as uint8_t; + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 15 => { + cyc = cyc.wrapping_add(4); + self.flag_set( + cf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 & 1 as i32 + != 0, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + >> 1 as i32 + | (self.flag_get(cf) as i32) << 7 as i32) as uint8_t; + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 23 => { + cyc = cyc.wrapping_add(4); + let cy: bool = self.flag_get(cf); + self.flag_set( + cf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 + != 0, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .a = ((self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 1 as i32 | cy as i32) as uint8_t; + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 31 => { + cyc = cyc.wrapping_add(4); + let cy_0: bool = self.flag_get(cf); + self.flag_set( + cf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 & 1 as i32 + != 0, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (self.c2rust_unnamed.c2rust_unnamed.a as i32 + >> 1 as i32 | (cy_0 as i32) << 7 as i32) + as uint8_t; + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set( + xf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + yf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + } + 167 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed.c2rust_unnamed.a); + } + 160 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 161 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 162 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 163 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 164 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 165 => { + cyc = cyc.wrapping_add(4); + self.land(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 166 => { + cyc = cyc.wrapping_add(7); + self.land(self.ctrl.read_byte(self.c2rust_unnamed_2.hl)); + } + 230 => { + cyc = cyc.wrapping_add(7); + self.land(self.nextb()); + } + 175 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed.c2rust_unnamed.a); + } + 168 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 169 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 170 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 171 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 172 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 173 => { + cyc = cyc.wrapping_add(4); + self.lxor(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 174 => { + cyc = cyc.wrapping_add(7); + self.lxor(self.ctrl.read_byte(self.c2rust_unnamed_2.hl)); + } + 238 => { + cyc = cyc.wrapping_add(7); + self.lxor(self.nextb()); + } + 183 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed.c2rust_unnamed.a); + } + 176 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 177 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 178 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 179 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 180 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 181 => { + cyc = cyc.wrapping_add(4); + self.lor(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 182 => { + cyc = cyc.wrapping_add(7); + self.lor(self.ctrl.read_byte(self.c2rust_unnamed_2.hl)); + } + 246 => { + cyc = cyc.wrapping_add(7); + self.lor(self.nextb()); + } + 191 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed.c2rust_unnamed.a as uint32_t); + } + 184 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_0.c2rust_unnamed.b as uint32_t); + } + 185 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_0.c2rust_unnamed.c as uint32_t); + } + 186 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_1.c2rust_unnamed.d as uint32_t); + } + 187 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_1.c2rust_unnamed.e as uint32_t); + } + 188 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_2.c2rust_unnamed.h as uint32_t); + } + 189 => { + cyc = cyc.wrapping_add(4); + self.cp(self.c2rust_unnamed_2.c2rust_unnamed.l as uint32_t); + } + 190 => { + cyc = cyc.wrapping_add(7); + self.cp(self.ctrl.read_byte(self.c2rust_unnamed_2.hl) as uint32_t); + } + 254 => { + cyc = cyc.wrapping_add(7); + self.cp(self.nextb() as uint32_t); + } + 195 => { + cyc = cyc.wrapping_add(10); + self.jump(self.nextw()); + } + 194 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(zf) as i32 == 0 as i32); + } + 202 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(zf) as i32 == 1 as i32); + } + 210 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(cf) as i32 == 0 as i32); + } + 218 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(cf) as i32 == 1 as i32); + } + 226 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(pf) as i32 == 0 as i32); + } + 234 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(pf) as i32 == 1 as i32); + } + 242 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(sf) as i32 == 0 as i32); + } + 250 => { + cyc = cyc.wrapping_add(10); + self.cond_jump(self.flag_get(sf) as i32 == 1 as i32); + } + 16 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (self.c2rust_unnamed_0.c2rust_unnamed.b).wrapping_sub(1); + cyc = cyc + .wrapping_add( + self.cond_jr( + self.c2rust_unnamed_0.c2rust_unnamed.b as i32 + != 0 as i32, + ), + ); + } + 24 => { + cyc = cyc.wrapping_add(12); + self.jr(self.nextb() as int8_t); + } + 32 => { + cyc = cyc.wrapping_add(7); + cyc = cyc + .wrapping_add( + self.cond_jr(self.flag_get(zf) as i32 == 0 as i32), + ); + } + 40 => { + cyc = cyc.wrapping_add(7); + cyc = cyc + .wrapping_add( + self.cond_jr(self.flag_get(zf) as i32 == 1 as i32), + ); + } + 48 => { + cyc = cyc.wrapping_add(7); + cyc = cyc + .wrapping_add( + self.cond_jr(self.flag_get(cf) as i32 == 0 as i32), + ); + } + 56 => { + cyc = cyc.wrapping_add(7); + cyc = cyc + .wrapping_add( + self.cond_jr(self.flag_get(cf) as i32 == 1 as i32), + ); + } + 233 => { + cyc = cyc.wrapping_add(4); + self.pc = self.c2rust_unnamed_2.hl; + } + 205 => { + cyc = cyc.wrapping_add(17); + self.call(self.nextw()); + } + 196 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(zf) as i32 == 0 as i32), + ); + } + 204 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(zf) as i32 == 1 as i32), + ); + } + 212 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(cf) as i32 == 0 as i32), + ); + } + 220 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(cf) as i32 == 1 as i32), + ); + } + 228 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(pf) as i32 == 0 as i32), + ); + } + 236 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(pf) as i32 == 1 as i32), + ); + } + 244 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(sf) as i32 == 0 as i32), + ); + } + 252 => { + cyc = cyc.wrapping_add(10); + cyc = cyc + .wrapping_add( + self.cond_call(self.flag_get(sf) as i32 == 1 as i32), + ); + } + 201 => { + cyc = cyc.wrapping_add(10); + self.ret(); + } + 192 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(zf) as i32 == 0 as i32), + ); + } + 200 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(zf) as i32 == 1 as i32), + ); + } + 208 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(cf) as i32 == 0 as i32), + ); + } + 216 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(cf) as i32 == 1 as i32), + ); + } + 224 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(pf) as i32 == 0 as i32), + ); + } + 232 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(pf) as i32 == 1 as i32), + ); + } + 240 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(sf) as i32 == 0 as i32), + ); + } + 248 => { + cyc = cyc.wrapping_add(5); + cyc = cyc + .wrapping_add( + self.cond_ret(self.flag_get(sf) as i32 == 1 as i32), + ); + } + 199 => { + cyc = cyc.wrapping_add(11); + self.call(0 as i32 as uint16_t); + } + 207 => { + cyc = cyc.wrapping_add(11); + self.call(0x8 as i32 as uint16_t); + } + 215 => { + cyc = cyc.wrapping_add(11); + self.call(0x10 as i32 as uint16_t); + } + 223 => { + cyc = cyc.wrapping_add(11); + self.call(0x18 as i32 as uint16_t); + } + 231 => { + cyc = cyc.wrapping_add(11); + self.call(0x20 as i32 as uint16_t); + } + 239 => { + cyc = cyc.wrapping_add(11); + self.call(0x28 as i32 as uint16_t); + } + 247 => { + cyc = cyc.wrapping_add(11); + self.call(0x30 as i32 as uint16_t); + } + 255 => { + cyc = cyc.wrapping_add(11); + self.call(0x38 as i32 as uint16_t); + } + 197 => { + cyc = cyc.wrapping_add(11); + self.pushw(self.c2rust_unnamed_0.bc); + } + 213 => { + cyc = cyc.wrapping_add(11); + self.pushw(self.c2rust_unnamed_1.de); + } + 229 => { + cyc = cyc.wrapping_add(11); + self.pushw(self.c2rust_unnamed_2.hl); + } + 245 => { + cyc = cyc.wrapping_add(11); + self.pushw(self.c2rust_unnamed.af); + } + 193 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_0.bc = self.popw(); + } + 209 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_1.de = self.popw(); + } + 225 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed_2.hl = self.popw(); + } + 241 => { + cyc = cyc.wrapping_add(10); + self.c2rust_unnamed.af = self.popw(); + } + 219 => { + cyc = cyc.wrapping_add(11); + let port: uint16_t = (self.nextb() as i32 + | (self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32) as uint16_t; + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.internal_port_in(port); + self.mem_ptr = (port as i32 + 1 as i32) as uint16_t; + } + 211 => { + cyc = cyc.wrapping_add(11); + let port_0: uint16_t = (self.nextb() as i32 + | (self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32) as uint16_t; + self.internal_port_out(port_0, self.c2rust_unnamed.c2rust_unnamed.a); + self + .mem_ptr = (port_0 as i32 + 1 as i32 + & 0xff as i32 + | (self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32) as uint16_t; + } + 8 => { + cyc = cyc.wrapping_add(4); + let mut af: uint16_t = self.c2rust_unnamed.af; + self.c2rust_unnamed.af = self.c2rust_unnamed_3.a_f_; + self.c2rust_unnamed_3.a_f_ = af; + } + 217 => { + cyc = cyc.wrapping_add(4); + let mut bc: uint16_t = self.c2rust_unnamed_0.bc; + let mut de_0: uint16_t = self.c2rust_unnamed_1.de; + let mut hl: uint16_t = self.c2rust_unnamed_2.hl; + self.c2rust_unnamed_0.bc = self.c2rust_unnamed_4.b_c_; + self.c2rust_unnamed_1.de = self.c2rust_unnamed_5.d_e_; + self.c2rust_unnamed_2.hl = self.c2rust_unnamed_6.h_l_; + self.c2rust_unnamed_4.b_c_ = bc; + self.c2rust_unnamed_5.d_e_ = de_0; + self.c2rust_unnamed_6.h_l_ = hl; + } + 203 => { + cyc = cyc.wrapping_add(0); + cyc = cyc.wrapping_add(self.exec_opcode_cb(self.nextb())); + } + 237 => { + cyc = cyc.wrapping_add(0); + cyc = cyc.wrapping_add(self.exec_opcode_ed(self.nextb())); + } + 221 => { + cyc = cyc.wrapping_add(0); + cyc = cyc.wrapping_add(self.exec_opcode_ddfd(self.nextb(), &mut self.ix)); + } + 253 => { + cyc = cyc.wrapping_add(0); + cyc = cyc.wrapping_add(self.exec_opcode_ddfd(self.nextb(), &mut self.iy)); + } + _ => {} } - 199 => { - cyc = cyc.wrapping_add(11); - call(z, 0 as i32 as uint16_t); - } - 207 => { - cyc = cyc.wrapping_add(11); - call(z, 0x8 as i32 as uint16_t); - } - 215 => { - cyc = cyc.wrapping_add(11); - call(z, 0x10 as i32 as uint16_t); - } - 223 => { - cyc = cyc.wrapping_add(11); - call(z, 0x18 as i32 as uint16_t); - } - 231 => { - cyc = cyc.wrapping_add(11); - call(z, 0x20 as i32 as uint16_t); - } - 239 => { - cyc = cyc.wrapping_add(11); - call(z, 0x28 as i32 as uint16_t); - } - 247 => { - cyc = cyc.wrapping_add(11); - call(z, 0x30 as i32 as uint16_t); - } - 255 => { - cyc = cyc.wrapping_add(11); - call(z, 0x38 as i32 as uint16_t); - } - 197 => { - cyc = cyc.wrapping_add(11); - pushw(z, (*z).c2rust_unnamed_0.bc); - } - 213 => { - cyc = cyc.wrapping_add(11); - pushw(z, (*z).c2rust_unnamed_1.de); - } - 229 => { - cyc = cyc.wrapping_add(11); - pushw(z, (*z).c2rust_unnamed_2.hl); - } - 245 => { - cyc = cyc.wrapping_add(11); - pushw(z, (*z).c2rust_unnamed.af); - } - 193 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_0.bc = popw(z); - } - 209 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_1.de = popw(z); - } - 225 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed_2.hl = popw(z); - } - 241 => { - cyc = cyc.wrapping_add(10); - (*z).c2rust_unnamed.af = popw(z); - } - 219 => { - cyc = cyc.wrapping_add(11); - let port: uint16_t = (nextb(z) as i32 - | ((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32) as uint16_t; - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*z).internal_port_in(port); - (*z).mem_ptr = (port as i32 + 1 as i32) as uint16_t; - } - 211 => { - cyc = cyc.wrapping_add(11); - let port_0: uint16_t = (nextb(z) as i32 - | ((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32) as uint16_t; - (*z).internal_port_out(port_0, (*z).c2rust_unnamed.c2rust_unnamed.a); - (*z) - .mem_ptr = (port_0 as i32 + 1 as i32 - & 0xff as i32 - | ((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32) as uint16_t; - } - 8 => { - cyc = cyc.wrapping_add(4); - let mut af: uint16_t = (*z).c2rust_unnamed.af; - (*z).c2rust_unnamed.af = (*z).c2rust_unnamed_3.a_f_; - (*z).c2rust_unnamed_3.a_f_ = af; - } - 217 => { - cyc = cyc.wrapping_add(4); - let mut bc: uint16_t = (*z).c2rust_unnamed_0.bc; - let mut de_0: uint16_t = (*z).c2rust_unnamed_1.de; - let mut hl: uint16_t = (*z).c2rust_unnamed_2.hl; - (*z).c2rust_unnamed_0.bc = (*z).c2rust_unnamed_4.b_c_; - (*z).c2rust_unnamed_1.de = (*z).c2rust_unnamed_5.d_e_; - (*z).c2rust_unnamed_2.hl = (*z).c2rust_unnamed_6.h_l_; - (*z).c2rust_unnamed_4.b_c_ = bc; - (*z).c2rust_unnamed_5.d_e_ = de_0; - (*z).c2rust_unnamed_6.h_l_ = hl; - } - 203 => { - cyc = cyc.wrapping_add(0); - cyc = cyc.wrapping_add(exec_opcode_cb(z, nextb(z))); - } - 237 => { - cyc = cyc.wrapping_add(0); - cyc = cyc.wrapping_add(exec_opcode_ed(z, nextb(z))); - } - 221 => { - cyc = cyc.wrapping_add(0); - cyc = cyc.wrapping_add(exec_opcode_ddfd(z, nextb(z), &mut (*z).ix)); - } - 253 => { - cyc = cyc.wrapping_add(0); - cyc = cyc.wrapping_add(exec_opcode_ddfd(z, nextb(z), &mut (*z).iy)); - } - _ => {} - } - return cyc; -} -unsafe fn exec_opcode_ddfd( - z: *mut z80, - mut opcode: uint8_t, - iz: *mut uint16_t, -) -> u32 { - let mut cyc: u32 = 0; - inc_r(z); - match opcode as i32 { - 225 => { - cyc = cyc.wrapping_add(14); - *iz = popw(z); - } - 229 => { - cyc = cyc.wrapping_add(15); - pushw(z, *iz); - } - 233 => { - cyc = cyc.wrapping_add(8); - jump(z, *iz); - } - 9 => { - cyc = cyc.wrapping_add(15); - addiz(z, iz, (*z).c2rust_unnamed_0.bc); - } - 25 => { - cyc = cyc.wrapping_add(15); - addiz(z, iz, (*z).c2rust_unnamed_1.de); - } - 41 => { - cyc = cyc.wrapping_add(15); - addiz(z, iz, *iz); - } - 57 => { - cyc = cyc.wrapping_add(15); - addiz(z, iz, (*z).sp); - } - 132 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 >> 8 as i32) as uint32_t, - 0 as i32 != 0, - ); - } - 133 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 & 0xff as i32) as uint32_t, - 0 as i32 != 0, - ); - } - 140 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 >> 8 as i32) as uint32_t, - flag_get(z, cf), - ); - } - 141 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 & 0xff as i32) as uint32_t, - flag_get(z, cf), - ); - } - 134 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, displace(z, *iz, nextb(z) as int8_t)) as uint32_t, - 0 as i32 != 0, - ); - } - 142 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = addb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, displace(z, *iz, nextb(z) as int8_t)) as uint32_t, - flag_get(z, cf), - ); - } - 150 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, displace(z, *iz, nextb(z) as int8_t)) as uint32_t, - 0 as i32 != 0, - ); - } - 158 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - rb(z, displace(z, *iz, nextb(z) as int8_t)) as uint32_t, - flag_get(z, cf), - ); - } - 148 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 >> 8 as i32) as uint32_t, - 0 as i32 != 0, - ); - } - 149 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 & 0xff as i32) as uint32_t, - 0 as i32 != 0, - ); - } - 156 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 >> 8 as i32) as uint32_t, - flag_get(z, cf), - ); - } - 157 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - (*iz as i32 & 0xff as i32) as uint32_t, - flag_get(z, cf), - ); - } - 166 => { - cyc = cyc.wrapping_add(19); - land(z, rb(z, displace(z, *iz, nextb(z) as int8_t))); - } - 164 => { - cyc = cyc.wrapping_add(8); - land(z, (*iz as i32 >> 8 as i32) as uint8_t); - } - 165 => { - cyc = cyc.wrapping_add(8); - land(z, (*iz as i32 & 0xff as i32) as uint8_t); - } - 174 => { - cyc = cyc.wrapping_add(19); - lxor(z, rb(z, displace(z, *iz, nextb(z) as int8_t))); - } - 172 => { - cyc = cyc.wrapping_add(8); - lxor(z, (*iz as i32 >> 8 as i32) as uint8_t); - } - 173 => { - cyc = cyc.wrapping_add(8); - lxor(z, (*iz as i32 & 0xff as i32) as uint8_t); - } - 182 => { - cyc = cyc.wrapping_add(19); - lor(z, rb(z, displace(z, *iz, nextb(z) as int8_t))); - } - 180 => { - cyc = cyc.wrapping_add(8); - lor(z, (*iz as i32 >> 8 as i32) as uint8_t); - } - 181 => { - cyc = cyc.wrapping_add(8); - lor(z, (*iz as i32 & 0xff as i32) as uint8_t); - } - 190 => { - cyc = cyc.wrapping_add(19); - cp(z, rb(z, displace(z, *iz, nextb(z) as int8_t)) as uint32_t); - } - 188 => { - cyc = cyc.wrapping_add(8); - cp(z, (*iz as i32 >> 8 as i32) as uint32_t); - } - 189 => { - cyc = cyc.wrapping_add(8); - cp(z, (*iz as i32 & 0xff as i32) as uint32_t); - } - 35 => { - cyc = cyc.wrapping_add(10); - *iz = (*iz as i32 + 1 as i32) as uint16_t; - } - 43 => { - cyc = cyc.wrapping_add(10); - *iz = (*iz as i32 - 1 as i32) as uint16_t; - } - 52 => { - cyc = cyc.wrapping_add(23); - let mut addr: uint16_t = displace(z, *iz, nextb(z) as int8_t); - wb(z, addr, inc(z, rb(z, addr))); - } - 53 => { - cyc = cyc.wrapping_add(23); - let mut addr_0: uint16_t = displace(z, *iz, nextb(z) as int8_t); - wb(z, addr_0, dec(z, rb(z, addr_0))); - } - 36 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | (inc(z, (*iz as i32 >> 8 as i32) as uint8_t) - as i32) << 8 as i32) as uint16_t; - } - 37 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | (dec(z, (*iz as i32 >> 8 as i32) as uint8_t) - as i32) << 8 as i32) as uint16_t; - } - 44 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | inc(z, (*iz as i32 & 0xff as i32) as uint8_t) - as i32) as uint16_t; - } - 45 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | dec(z, (*iz as i32 & 0xff as i32) as uint8_t) - as i32) as uint16_t; - } - 42 => { - cyc = cyc.wrapping_add(20); - *iz = rw(z, nextw(z)); - } - 34 => { - cyc = cyc.wrapping_add(20); - ww(z, nextw(z), *iz); - } - 33 => { - cyc = cyc.wrapping_add(14); - *iz = nextw(z); - } - 54 => { - cyc = cyc.wrapping_add(19); - let mut addr_1: uint16_t = displace(z, *iz, nextb(z) as int8_t); - wb(z, addr_1, nextb(z)); - } - 112 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_0.c2rust_unnamed.b, - ); - } - 113 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_0.c2rust_unnamed.c, - ); - } - 114 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_1.c2rust_unnamed.d, - ); - } - 115 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_1.c2rust_unnamed.e, - ); - } - 116 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_2.c2rust_unnamed.h, - ); - } - 117 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed_2.c2rust_unnamed.l, - ); - } - 119 => { - cyc = cyc.wrapping_add(19); - wb( - z, - displace(z, *iz, nextb(z) as int8_t), - (*z).c2rust_unnamed.c2rust_unnamed.a, - ); - } - 70 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 78 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 86 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 94 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 102 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .h = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 110 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed_2 - .c2rust_unnamed - .l = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 126 => { - cyc = cyc.wrapping_add(19); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = rb(z, displace(z, *iz, nextb(z) as int8_t)); - } - 68 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*iz as i32 >> 8 as i32) as uint8_t; - } - 76 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*iz as i32 >> 8 as i32) as uint8_t; - } - 84 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*iz as i32 >> 8 as i32) as uint8_t; - } - 92 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*iz as i32 >> 8 as i32) as uint8_t; - } - 124 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*iz as i32 >> 8 as i32) as uint8_t; - } - 69 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .b = (*iz as i32 & 0xff as i32) as uint8_t; - } - 77 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_0 - .c2rust_unnamed - .c = (*iz as i32 & 0xff as i32) as uint8_t; - } - 85 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .d = (*iz as i32 & 0xff as i32) as uint8_t; - } - 93 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed_1 - .c2rust_unnamed - .e = (*iz as i32 & 0xff as i32) as uint8_t; - } - 125 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (*iz as i32 & 0xff as i32) as uint8_t; - } - 96 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | ((*z).c2rust_unnamed_0.c2rust_unnamed.b as i32) - << 8 as i32) as uint16_t; - } - 97 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | ((*z).c2rust_unnamed_0.c2rust_unnamed.c as i32) - << 8 as i32) as uint16_t; - } - 98 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | ((*z).c2rust_unnamed_1.c2rust_unnamed.d as i32) - << 8 as i32) as uint16_t; - } - 99 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | ((*z).c2rust_unnamed_1.c2rust_unnamed.e as i32) - << 8 as i32) as uint16_t; - } - 100 => { - cyc = cyc.wrapping_add(8); - } - 101 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 & 0xff as i32) << 8 as i32 - | *iz as i32 & 0xff as i32) as uint16_t; - } - 103 => { - cyc = cyc.wrapping_add(8); - *iz = (*iz as i32 & 0xff as i32 - | ((*z).c2rust_unnamed.c2rust_unnamed.a as i32) - << 8 as i32) as uint16_t; - } - 38 => { - cyc = cyc.wrapping_add(11); - *iz = (*iz as i32 & 0xff as i32 - | (nextb(z) as i32) << 8 as i32) as uint16_t; - } - 104 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32) as uint16_t; - } - 105 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | (*z).c2rust_unnamed_0.c2rust_unnamed.c as i32) as uint16_t; - } - 106 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | (*z).c2rust_unnamed_1.c2rust_unnamed.d as i32) as uint16_t; - } - 107 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | (*z).c2rust_unnamed_1.c2rust_unnamed.e as i32) as uint16_t; - } - 108 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | *iz as i32 >> 8 as i32) as uint16_t; - } - 109 => { - cyc = cyc.wrapping_add(8); - } - 111 => { - cyc = cyc.wrapping_add(8); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | (*z).c2rust_unnamed.c2rust_unnamed.a as i32) as uint16_t; - } - 46 => { - cyc = cyc.wrapping_add(11); - *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 - | nextb(z) as i32) as uint16_t; - } - 249 => { - cyc = cyc.wrapping_add(10); - (*z).sp = *iz; - } - 227 => { - cyc = cyc.wrapping_add(23); - let val: uint16_t = rw(z, (*z).sp); - ww(z, (*z).sp, *iz); - *iz = val; - (*z).mem_ptr = val; - } - 203 => { - let mut addr_2: uint16_t = displace(z, *iz, nextb(z) as int8_t); - let mut op: uint8_t = nextb(z); - cyc = cyc.wrapping_add(exec_opcode_dcb(z, op, addr_2)); - } - _ => { - cyc = cyc - .wrapping_add( - (4_u32) - .wrapping_add(exec_opcode(z, opcode)), + return cyc; + } + fn exec_opcode_ddfd( + &mut self, + mut opcode: uint8_t, + iz: *mut uint16_t, + ) -> u32 { + let mut cyc: u32 = 0; + self.inc_r(); + match opcode as i32 { + 225 => { + cyc = cyc.wrapping_add(14); + *iz = self.popw(); + } + 229 => { + cyc = cyc.wrapping_add(15); + self.pushw(*iz); + } + 233 => { + cyc = cyc.wrapping_add(8); + self.jump(*iz); + } + 9 => { + cyc = cyc.wrapping_add(15); + self.addiz(iz, self.c2rust_unnamed_0.bc); + } + 25 => { + cyc = cyc.wrapping_add(15); + self.addiz(iz, self.c2rust_unnamed_1.de); + } + 41 => { + cyc = cyc.wrapping_add(15); + self.addiz(iz, *iz); + } + 57 => { + cyc = cyc.wrapping_add(15); + self.addiz(iz, self.sp); + } + 132 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 >> 8 as i32) as uint32_t, + 0 as i32 != 0, + ); + } + 133 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 & 0xff as i32) as uint32_t, + 0 as i32 != 0, + ); + } + 140 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 >> 8 as i32) as uint32_t, + self.flag_get(cf), + ); + } + 141 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 & 0xff as i32) as uint32_t, + self.flag_get(cf), + ); + } + 134 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)) as uint32_t, + 0 as i32 != 0, + ); + } + 142 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.addb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)) as uint32_t, + self.flag_get(cf), + ); + } + 150 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)) as uint32_t, + 0 as i32 != 0, + ); + } + 158 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)) as uint32_t, + self.flag_get(cf), + ); + } + 148 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 >> 8 as i32) as uint32_t, + 0 as i32 != 0, + ); + } + 149 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 & 0xff as i32) as uint32_t, + 0 as i32 != 0, + ); + } + 156 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 >> 8 as i32) as uint32_t, + self.flag_get(cf), + ); + } + 157 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + (*iz as i32 & 0xff as i32) as uint32_t, + self.flag_get(cf), + ); + } + 166 => { + cyc = cyc.wrapping_add(19); + self.land(self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t))); + } + 164 => { + cyc = cyc.wrapping_add(8); + self.land((*iz as i32 >> 8 as i32) as uint8_t); + } + 165 => { + cyc = cyc.wrapping_add(8); + self.land((*iz as i32 & 0xff as i32) as uint8_t); + } + 174 => { + cyc = cyc.wrapping_add(19); + self.lxor(self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t))); + } + 172 => { + cyc = cyc.wrapping_add(8); + self.lxor((*iz as i32 >> 8 as i32) as uint8_t); + } + 173 => { + cyc = cyc.wrapping_add(8); + self.lxor((*iz as i32 & 0xff as i32) as uint8_t); + } + 182 => { + cyc = cyc.wrapping_add(19); + self.lor(self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t))); + } + 180 => { + cyc = cyc.wrapping_add(8); + self.lor((*iz as i32 >> 8 as i32) as uint8_t); + } + 181 => { + cyc = cyc.wrapping_add(8); + self.lor((*iz as i32 & 0xff as i32) as uint8_t); + } + 190 => { + cyc = cyc.wrapping_add(19); + self.cp(self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)) as uint32_t); + } + 188 => { + cyc = cyc.wrapping_add(8); + self.cp((*iz as i32 >> 8 as i32) as uint32_t); + } + 189 => { + cyc = cyc.wrapping_add(8); + self.cp((*iz as i32 & 0xff as i32) as uint32_t); + } + 35 => { + cyc = cyc.wrapping_add(10); + *iz = (*iz as i32 + 1 as i32) as uint16_t; + } + 43 => { + cyc = cyc.wrapping_add(10); + *iz = (*iz as i32 - 1 as i32) as uint16_t; + } + 52 => { + cyc = cyc.wrapping_add(23); + let mut addr: uint16_t = self.displace(*iz, self.nextb() as int8_t); + self.ctrl.write_byte(addr, self.inc(self.ctrl.read_byte(addr))); + } + 53 => { + cyc = cyc.wrapping_add(23); + let mut addr_0: uint16_t = self.displace(*iz, self.nextb() as int8_t); + self.ctrl.write_byte(addr_0, self.dec(self.ctrl.read_byte(addr_0))); + } + 36 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.inc((*iz as i32 >> 8 as i32) as uint8_t) + as i32) << 8 as i32) as uint16_t; + } + 37 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.dec((*iz as i32 >> 8 as i32) as uint8_t) + as i32) << 8 as i32) as uint16_t; + } + 44 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.inc((*iz as i32 & 0xff as i32) as uint8_t) + as i32) as uint16_t; + } + 45 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.dec((*iz as i32 & 0xff as i32) as uint8_t) + as i32) as uint16_t; + } + 42 => { + cyc = cyc.wrapping_add(20); + *iz = self.rw(self.nextw()); + } + 34 => { + cyc = cyc.wrapping_add(20); + self.ww(self.nextw(), *iz); + } + 33 => { + cyc = cyc.wrapping_add(14); + *iz = self.nextw(); + } + 54 => { + cyc = cyc.wrapping_add(19); + let mut addr_1: uint16_t = self.displace(*iz, self.nextb() as int8_t); + self.ctrl.write_byte(addr_1, self.nextb()); + } + 112 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_0.c2rust_unnamed.b, + ); + } + 113 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_0.c2rust_unnamed.c, + ); + } + 114 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_1.c2rust_unnamed.d, + ); + } + 115 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_1.c2rust_unnamed.e, ); - (*z) - .r = ((*z).r as i32 & 0x80 as i32 - | (*z).r as i32 - 1 as i32 & 0x7f as i32) - as uint8_t; + } + 116 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_2.c2rust_unnamed.h, + ); + } + 117 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed_2.c2rust_unnamed.l, + ); + } + 119 => { + cyc = cyc.wrapping_add(19); + self.ctrl.write_byte( + self.displace(*iz, self.nextb() as int8_t), + self.c2rust_unnamed.c2rust_unnamed.a, + ); + } + 70 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 78 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 86 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 94 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 102 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .h = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 110 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed_2 + .c2rust_unnamed + .l = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 126 => { + cyc = cyc.wrapping_add(19); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.ctrl.read_byte(self.displace(*iz, self.nextb() as int8_t)); + } + 68 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (*iz as i32 >> 8 as i32) as uint8_t; + } + 76 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = (*iz as i32 >> 8 as i32) as uint8_t; + } + 84 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = (*iz as i32 >> 8 as i32) as uint8_t; + } + 92 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = (*iz as i32 >> 8 as i32) as uint8_t; + } + 124 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (*iz as i32 >> 8 as i32) as uint8_t; + } + 69 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .b = (*iz as i32 & 0xff as i32) as uint8_t; + } + 77 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_0 + .c2rust_unnamed + .c = (*iz as i32 & 0xff as i32) as uint8_t; + } + 85 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .d = (*iz as i32 & 0xff as i32) as uint8_t; + } + 93 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed_1 + .c2rust_unnamed + .e = (*iz as i32 & 0xff as i32) as uint8_t; + } + 125 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (*iz as i32 & 0xff as i32) as uint8_t; + } + 96 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.c2rust_unnamed_0.c2rust_unnamed.b as i32) + << 8 as i32) as uint16_t; + } + 97 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.c2rust_unnamed_0.c2rust_unnamed.c as i32) + << 8 as i32) as uint16_t; + } + 98 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.c2rust_unnamed_1.c2rust_unnamed.d as i32) + << 8 as i32) as uint16_t; + } + 99 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.c2rust_unnamed_1.c2rust_unnamed.e as i32) + << 8 as i32) as uint16_t; + } + 100 => { + cyc = cyc.wrapping_add(8); + } + 101 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 & 0xff as i32) << 8 as i32 + | *iz as i32 & 0xff as i32) as uint16_t; + } + 103 => { + cyc = cyc.wrapping_add(8); + *iz = (*iz as i32 & 0xff as i32 + | (self.c2rust_unnamed.c2rust_unnamed.a as i32) + << 8 as i32) as uint16_t; + } + 38 => { + cyc = cyc.wrapping_add(11); + *iz = (*iz as i32 & 0xff as i32 + | (self.nextb() as i32) << 8 as i32) as uint16_t; + } + 104 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.c2rust_unnamed_0.c2rust_unnamed.b as i32) as uint16_t; + } + 105 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.c2rust_unnamed_0.c2rust_unnamed.c as i32) as uint16_t; + } + 106 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.c2rust_unnamed_1.c2rust_unnamed.d as i32) as uint16_t; + } + 107 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.c2rust_unnamed_1.c2rust_unnamed.e as i32) as uint16_t; + } + 108 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | *iz as i32 >> 8 as i32) as uint16_t; + } + 109 => { + cyc = cyc.wrapping_add(8); + } + 111 => { + cyc = cyc.wrapping_add(8); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.c2rust_unnamed.c2rust_unnamed.a as i32) as uint16_t; + } + 46 => { + cyc = cyc.wrapping_add(11); + *iz = ((*iz as i32 >> 8 as i32) << 8 as i32 + | self.nextb() as i32) as uint16_t; + } + 249 => { + cyc = cyc.wrapping_add(10); + self.sp = *iz; + } + 227 => { + cyc = cyc.wrapping_add(23); + let val: uint16_t = self.rw(self.sp); + self.ww(self.sp, *iz); + *iz = val; + self.mem_ptr = val; + } + 203 => { + let mut addr_2: uint16_t = self.displace(*iz, self.nextb() as int8_t); + let mut op: uint8_t = self.nextb(); + cyc = cyc.wrapping_add(self.exec_opcode_dcb(op, addr_2)); + } + _ => { + cyc = cyc + .wrapping_add( + (4_u32).wrapping_add(self.exec_opcode(opcode)), + ); + self + .r = (self.r as i32 & 0x80 as i32 + | self.r as i32 - 1 as i32 & 0x7f as i32) + as uint8_t; + } } + return cyc; } - return cyc; -} -unsafe fn exec_opcode_cb(z: *mut z80, mut opcode: uint8_t) -> u32 { - let mut cyc: u32 = 8; - inc_r(z); - let mut x_: uint8_t = (opcode as i32 >> 6 as i32 & 3 as i32) - as uint8_t; - let mut y_: uint8_t = (opcode as i32 >> 3 as i32 & 7 as i32) - as uint8_t; - let mut z_: uint8_t = (opcode as i32 & 7 as i32) as uint8_t; - let mut hl: uint8_t = 0 as i32 as uint8_t; - let mut reg: *mut uint8_t = 0 as *mut uint8_t; - match z_ as i32 { - 0 => { - reg = &mut (*z).c2rust_unnamed_0.c2rust_unnamed.b; - } - 1 => { - reg = &mut (*z).c2rust_unnamed_0.c2rust_unnamed.c; - } - 2 => { - reg = &mut (*z).c2rust_unnamed_1.c2rust_unnamed.d; - } - 3 => { - reg = &mut (*z).c2rust_unnamed_1.c2rust_unnamed.e; - } - 4 => { - reg = &mut (*z).c2rust_unnamed_2.c2rust_unnamed.h; - } - 5 => { - reg = &mut (*z).c2rust_unnamed_2.c2rust_unnamed.l; + fn exec_opcode_cb(&mut self, mut opcode: uint8_t) -> u32 { + let mut cyc: u32 = 8; + self.inc_r(); + let mut x_: uint8_t = (opcode as i32 >> 6 as i32 & 3 as i32) + as uint8_t; + let mut y_: uint8_t = (opcode as i32 >> 3 as i32 & 7 as i32) + as uint8_t; + let mut z_: uint8_t = (opcode as i32 & 7 as i32) as uint8_t; + let mut hl: uint8_t = 0 as i32 as uint8_t; + let mut reg: *mut uint8_t = 0 as *mut uint8_t; + match z_ as i32 { + 0 => { + reg = &mut self.c2rust_unnamed_0.c2rust_unnamed.b; + } + 1 => { + reg = &mut self.c2rust_unnamed_0.c2rust_unnamed.c; + } + 2 => { + reg = &mut self.c2rust_unnamed_1.c2rust_unnamed.d; + } + 3 => { + reg = &mut self.c2rust_unnamed_1.c2rust_unnamed.e; + } + 4 => { + reg = &mut self.c2rust_unnamed_2.c2rust_unnamed.h; + } + 5 => { + reg = &mut self.c2rust_unnamed_2.c2rust_unnamed.l; + } + 6 => { + hl = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + reg = &mut hl; + } + 7 => { + reg = &mut self.c2rust_unnamed.c2rust_unnamed.a; + } + _ => {} } - 6 => { - hl = rb(z, (*z).c2rust_unnamed_2.hl); - reg = &mut hl; + match x_ as i32 { + 0 => { + match y_ as i32 { + 0 => { + *reg = self.cb_rlc(*reg); + } + 1 => { + *reg = self.cb_rrc(*reg); + } + 2 => { + *reg = self.cb_rl(*reg); + } + 3 => { + *reg = self.cb_rr(*reg); + } + 4 => { + *reg = self.cb_sla(*reg); + } + 5 => { + *reg = self.cb_sra(*reg); + } + 6 => { + *reg = self.cb_sll(*reg); + } + 7 => { + *reg = self.cb_srl(*reg); + } + _ => {} + } + } + 1 => { + self.cb_bit(*reg, y_); + if z_ as i32 == 6 as i32 { + self.flag_set( + yf, + self.mem_ptr as i32 >> 8 as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + xf, + self.mem_ptr as i32 >> 8 as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + cyc = cyc.wrapping_add(4); + } else { + self.flag_set( + yf, + *reg as i32 >> 5 as i32 & 1 as i32 != 0, + ); + self.flag_set( + xf, + *reg as i32 >> 3 as i32 & 1 as i32 != 0, + ); + } + } + 2 => { + *reg = (*reg as i32 & !((1 as i32) << y_ as i32)) + as uint8_t; + } + 3 => { + *reg = (*reg as i32 | (1 as i32) << y_ as i32) + as uint8_t; + } + _ => {} } - 7 => { - reg = &mut (*z).c2rust_unnamed.c2rust_unnamed.a; + if x_ as i32 != 1 as i32 && z_ as i32 == 6 as i32 { + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, hl); + cyc = cyc.wrapping_add(7); } - _ => {} + return cyc; } - match x_ as i32 { - 0 => { - match y_ as i32 { + fn exec_opcode_dcb( + &mut self, + mut opcode: uint8_t, + mut addr: uint16_t, + ) -> u32 { + let mut cyc: u32 = 0; + let mut val: uint8_t = self.ctrl.read_byte(addr); + let mut result: uint8_t = 0 as i32 as uint8_t; + let mut x_: uint8_t = (opcode as i32 >> 6 as i32 & 3 as i32) + as uint8_t; + let mut y_: uint8_t = (opcode as i32 >> 3 as i32 & 7 as i32) + as uint8_t; + let mut z_: uint8_t = (opcode as i32 & 7 as i32) as uint8_t; + match x_ as i32 { + 0 => { + match y_ as i32 { + 0 => { + result = self.cb_rlc(val); + } + 1 => { + result = self.cb_rrc(val); + } + 2 => { + result = self.cb_rl(val); + } + 3 => { + result = self.cb_rr(val); + } + 4 => { + result = self.cb_sla(val); + } + 5 => { + result = self.cb_sra(val); + } + 6 => { + result = self.cb_sll(val); + } + 7 => { + result = self.cb_srl(val); + } + _ => {} + } + } + 1 => { + result = self.cb_bit(val, y_); + self.flag_set( + yf, + addr as i32 >> 8 as i32 >> 5 as i32 + & 1 as i32 != 0, + ); + self.flag_set( + xf, + addr as i32 >> 8 as i32 >> 3 as i32 + & 1 as i32 != 0, + ); + } + 2 => { + result = (val as i32 & !((1 as i32) << y_ as i32)) + as uint8_t; + } + 3 => { + result = (val as i32 | (1 as i32) << y_ as i32) + as uint8_t; + } + _ => {} + } + if x_ as i32 != 1 as i32 && z_ as i32 != 6 as i32 { + match z_ as i32 { 0 => { - *reg = cb_rlc(z, *reg); + self.c2rust_unnamed_0.c2rust_unnamed.b = result; } 1 => { - *reg = cb_rrc(z, *reg); + self.c2rust_unnamed_0.c2rust_unnamed.c = result; } 2 => { - *reg = cb_rl(z, *reg); + self.c2rust_unnamed_1.c2rust_unnamed.d = result; } 3 => { - *reg = cb_rr(z, *reg); + self.c2rust_unnamed_1.c2rust_unnamed.e = result; } 4 => { - *reg = cb_sla(z, *reg); + self.c2rust_unnamed_2.c2rust_unnamed.h = result; } 5 => { - *reg = cb_sra(z, *reg); + self.c2rust_unnamed_2.c2rust_unnamed.l = result; } 6 => { - *reg = cb_sll(z, *reg); + self.ctrl.write_byte(self.c2rust_unnamed_2.hl, result); } 7 => { - *reg = cb_srl(z, *reg); + self.c2rust_unnamed.c2rust_unnamed.a = result; } _ => {} } } - 1 => { - cb_bit(z, *reg, y_); - if z_ as i32 == 6 as i32 { - flag_set( - z, - yf, - (*z).mem_ptr as i32 >> 8 as i32 >> 5 as i32 - & 1 as i32 != 0, + if x_ as i32 == 1 as i32 { + cyc = cyc.wrapping_add(20); + } else { + self.ctrl.write_byte(addr, result); + cyc = cyc.wrapping_add(23); + } + return cyc; + } + fn exec_opcode_ed(&mut self, mut opcode: uint8_t) -> u32 { + let mut cyc: u32 = 0; + self.inc_r(); + match opcode as i32 { + 71 => { + cyc = cyc.wrapping_add(9); + self.i = self.c2rust_unnamed.c2rust_unnamed.a; + } + 79 => { + cyc = cyc.wrapping_add(9); + self.r = self.c2rust_unnamed.c2rust_unnamed.a; + } + 87 => { + cyc = cyc.wrapping_add(9); + self.c2rust_unnamed.c2rust_unnamed.a = self.i; + self.flag_set( + sf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 + != 0, ); - flag_set( - z, - xf, - (*z).mem_ptr as i32 >> 8 as i32 >> 3 as i32 - & 1 as i32 != 0, + self.flag_set( + zf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 == 0 as i32, ); - cyc = cyc.wrapping_add(4); - } else { - flag_set( - z, - yf, - *reg as i32 >> 5 as i32 & 1 as i32 != 0, + self.flag_set(hf, 0 as i32 != 0); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(pf, self.iff2); + } + 95 => { + cyc = cyc.wrapping_add(9); + self.c2rust_unnamed.c2rust_unnamed.a = self.r; + self.flag_set( + sf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 + != 0, ); - flag_set( - z, - xf, - *reg as i32 >> 3 as i32 & 1 as i32 != 0, + self.flag_set( + zf, + self.c2rust_unnamed.c2rust_unnamed.a as i32 == 0 as i32, ); + self.flag_set(hf, 0 as i32 != 0); + self.flag_set(nf, 0 as i32 != 0); + self.flag_set(pf, self.iff2); + } + 69 | 85 | 93 | 101 | 109 | 117 | 125 => { + cyc = cyc.wrapping_add(14); + self.iff1 = self.iff2; + self.ret(); + } + 77 => { + cyc = cyc.wrapping_add(14); + self.ret(); } - } - 2 => { - *reg = (*reg as i32 & !((1 as i32) << y_ as i32)) - as uint8_t; - } - 3 => { - *reg = (*reg as i32 | (1 as i32) << y_ as i32) - as uint8_t; - } - _ => {} - } - if x_ as i32 != 1 as i32 && z_ as i32 == 6 as i32 { - wb(z, (*z).c2rust_unnamed_2.hl, hl); - cyc = cyc.wrapping_add(7); - } - return cyc; -} -unsafe fn exec_opcode_dcb( - z: *mut z80, - mut opcode: uint8_t, - mut addr: uint16_t, -) -> u32 { - let mut cyc: u32 = 0; - let mut val: uint8_t = rb(z, addr); - let mut result: uint8_t = 0 as i32 as uint8_t; - let mut x_: uint8_t = (opcode as i32 >> 6 as i32 & 3 as i32) - as uint8_t; - let mut y_: uint8_t = (opcode as i32 >> 3 as i32 & 7 as i32) - as uint8_t; - let mut z_: uint8_t = (opcode as i32 & 7 as i32) as uint8_t; - match x_ as i32 { - 0 => { - match y_ as i32 { - 0 => { - result = cb_rlc(z, val); + 160 => { + cyc = cyc.wrapping_add(16); + self.ldi(); + } + 176 => { + cyc = cyc.wrapping_add(16); + self.ldi(); + if self.c2rust_unnamed_0.bc as i32 != 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - 1 => { - result = cb_rrc(z, val); + } + 168 => { + cyc = cyc.wrapping_add(16); + self.ldd(); + } + 184 => { + cyc = cyc.wrapping_add(16); + self.ldd(); + if self.c2rust_unnamed_0.bc as i32 != 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - 2 => { - result = cb_rl(z, val); + } + 161 => { + cyc = cyc.wrapping_add(16); + self.cpi(); + } + 169 => { + cyc = cyc.wrapping_add(16); + self.cpd(); + } + 177 => { + cyc = cyc.wrapping_add(16); + self.cpi(); + if self.c2rust_unnamed_0.bc as i32 != 0 as i32 + && !self.flag_get(zf) + { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; + } else { + self + .mem_ptr = (self.mem_ptr as i32 + 1 as i32) + as uint16_t; } - 3 => { - result = cb_rr(z, val); + } + 185 => { + cyc = cyc.wrapping_add(16); + self.cpd(); + if self.c2rust_unnamed_0.bc as i32 != 0 as i32 + && !self.flag_get(zf) + { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + } else { + self + .mem_ptr = (self.mem_ptr as i32 + 1 as i32) + as uint16_t; } - 4 => { - result = cb_sla(z, val); + } + 64 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 72 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 80 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 88 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 96 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 104 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 112 => { + cyc = cyc.wrapping_add(12); + let mut val: uint8_t = 0; + self.in_r_c(&mut val); + } + 120 => { + cyc = cyc.wrapping_add(12); + self.in_r_c(&mut self.c2rust_unnamed.c2rust_unnamed.a); + self + .mem_ptr = (self.c2rust_unnamed_0.bc as i32 + 1 as i32) + as uint16_t; + } + 162 => { + cyc = cyc.wrapping_add(16); + self.ini(); + } + 178 => { + cyc = cyc.wrapping_add(16); + self.ini(); + if self.c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - 5 => { - result = cb_sra(z, val); + } + 170 => { + cyc = cyc.wrapping_add(16); + self.ind(); + } + 186 => { + cyc = cyc.wrapping_add(16); + self.ind(); + if self.c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - 6 => { - result = cb_sll(z, val); + } + 121 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed.c2rust_unnamed.a); + } + 65 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_0.c2rust_unnamed.b); + } + 73 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_0.c2rust_unnamed.c); + } + 81 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_1.c2rust_unnamed.d); + } + 89 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_1.c2rust_unnamed.e); + } + 97 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_2.c2rust_unnamed.h); + } + 105 => { + cyc = cyc.wrapping_add(12); + self.outc(self.c2rust_unnamed_2.c2rust_unnamed.l); + } + 113 => { + cyc = cyc.wrapping_add(12); + self.outc(0 as i32 as uint8_t); + } + 163 => { + cyc = cyc.wrapping_add(16); + self.outi(); + } + 179 => { + cyc = cyc.wrapping_add(16); + self.outi(); + if self.c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - 7 => { - result = cb_srl(z, val); + } + 171 => { + cyc = cyc.wrapping_add(16); + self.outd(); + } + 187 => { + cyc = cyc.wrapping_add(16); + self.outd(); + if self.c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { + self.pc = (self.pc as i32 - 2 as i32) as uint16_t; + cyc = cyc.wrapping_add(5); + self.mem_ptr = (self.pc as i32 + 1 as i32) as uint16_t; } - _ => {} } - } - 1 => { - result = cb_bit(z, val, y_); - flag_set( - z, - yf, - addr as i32 >> 8 as i32 >> 5 as i32 - & 1 as i32 != 0, - ); - flag_set( - z, - xf, - addr as i32 >> 8 as i32 >> 3 as i32 - & 1 as i32 != 0, - ); - } - 2 => { - result = (val as i32 & !((1 as i32) << y_ as i32)) - as uint8_t; - } - 3 => { - result = (val as i32 | (1 as i32) << y_ as i32) - as uint8_t; - } - _ => {} - } - if x_ as i32 != 1 as i32 && z_ as i32 != 6 as i32 { - match z_ as i32 { - 0 => { - (*z).c2rust_unnamed_0.c2rust_unnamed.b = result; + 66 => { + cyc = cyc.wrapping_add(15); + self.sbchl(self.c2rust_unnamed_0.bc); } - 1 => { - (*z).c2rust_unnamed_0.c2rust_unnamed.c = result; + 82 => { + cyc = cyc.wrapping_add(15); + self.sbchl(self.c2rust_unnamed_1.de); } - 2 => { - (*z).c2rust_unnamed_1.c2rust_unnamed.d = result; + 98 => { + cyc = cyc.wrapping_add(15); + self.sbchl(self.c2rust_unnamed_2.hl); } - 3 => { - (*z).c2rust_unnamed_1.c2rust_unnamed.e = result; + 114 => { + cyc = cyc.wrapping_add(15); + self.sbchl(self.sp); } - 4 => { - (*z).c2rust_unnamed_2.c2rust_unnamed.h = result; + 74 => { + cyc = cyc.wrapping_add(15); + self.adchl(self.c2rust_unnamed_0.bc); } - 5 => { - (*z).c2rust_unnamed_2.c2rust_unnamed.l = result; + 90 => { + cyc = cyc.wrapping_add(15); + self.adchl(self.c2rust_unnamed_1.de); } - 6 => { - wb(z, (*z).c2rust_unnamed_2.hl, result); + 106 => { + cyc = cyc.wrapping_add(15); + self.adchl(self.c2rust_unnamed_2.hl); } - 7 => { - (*z).c2rust_unnamed.c2rust_unnamed.a = result; + 122 => { + cyc = cyc.wrapping_add(15); + self.adchl(self.sp); } - _ => {} - } - } - if x_ as i32 == 1 as i32 { - cyc = cyc.wrapping_add(20); - } else { - wb(z, addr, result); - cyc = cyc.wrapping_add(23); - } - return cyc; -} -unsafe fn exec_opcode_ed(z: *mut z80, mut opcode: uint8_t) -> u32 { - let mut cyc: u32 = 0; - inc_r(z); - match opcode as i32 { - 71 => { - cyc = cyc.wrapping_add(9); - (*z).i = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 79 => { - cyc = cyc.wrapping_add(9); - (*z).r = (*z).c2rust_unnamed.c2rust_unnamed.a; - } - 87 => { - cyc = cyc.wrapping_add(9); - (*z).c2rust_unnamed.c2rust_unnamed.a = (*z).i; - flag_set( - z, - sf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 - != 0, - ); - flag_set( - z, - zf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 == 0 as i32, - ); - flag_set(z, hf, 0 as i32 != 0); - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, pf, (*z).iff2); - } - 95 => { - cyc = cyc.wrapping_add(9); - (*z).c2rust_unnamed.c2rust_unnamed.a = (*z).r; - flag_set( - z, - sf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 >> 7 as i32 - != 0, - ); - flag_set( - z, - zf, - (*z).c2rust_unnamed.c2rust_unnamed.a as i32 == 0 as i32, - ); - flag_set(z, hf, 0 as i32 != 0); - flag_set(z, nf, 0 as i32 != 0); - flag_set(z, pf, (*z).iff2); - } - 69 | 85 | 93 | 101 | 109 | 117 | 125 => { - cyc = cyc.wrapping_add(14); - (*z).iff1 = (*z).iff2; - ret(z); - } - 77 => { - cyc = cyc.wrapping_add(14); - ret(z); - } - 160 => { - cyc = cyc.wrapping_add(16); - ldi(z); - } - 176 => { - cyc = cyc.wrapping_add(16); - ldi(z); - if (*z).c2rust_unnamed_0.bc as i32 != 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 67 => { + cyc = cyc.wrapping_add(20); + let addr: uint16_t = self.nextw(); + self.ww(addr, self.c2rust_unnamed_0.bc); + self.mem_ptr = (addr as i32 + 1 as i32) as uint16_t; } - } - 168 => { - cyc = cyc.wrapping_add(16); - ldd(z); - } - 184 => { - cyc = cyc.wrapping_add(16); - ldd(z); - if (*z).c2rust_unnamed_0.bc as i32 != 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 83 => { + cyc = cyc.wrapping_add(20); + let addr_0: uint16_t = self.nextw(); + self.ww(addr_0, self.c2rust_unnamed_1.de); + self.mem_ptr = (addr_0 as i32 + 1 as i32) as uint16_t; } - } - 161 => { - cyc = cyc.wrapping_add(16); - cpi(z); - } - 169 => { - cyc = cyc.wrapping_add(16); - cpd(z); - } - 177 => { - cyc = cyc.wrapping_add(16); - cpi(z); - if (*z).c2rust_unnamed_0.bc as i32 != 0 as i32 - && !flag_get(z, zf) - { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; - } else { - (*z) - .mem_ptr = ((*z).mem_ptr as i32 + 1 as i32) - as uint16_t; + 99 => { + cyc = cyc.wrapping_add(20); + let addr_1: uint16_t = self.nextw(); + self.ww(addr_1, self.c2rust_unnamed_2.hl); + self.mem_ptr = (addr_1 as i32 + 1 as i32) as uint16_t; } - } - 185 => { - cyc = cyc.wrapping_add(16); - cpd(z); - if (*z).c2rust_unnamed_0.bc as i32 != 0 as i32 - && !flag_get(z, zf) - { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - } else { - (*z) - .mem_ptr = ((*z).mem_ptr as i32 + 1 as i32) - as uint16_t; + 115 => { + cyc = cyc.wrapping_add(20); + let addr_2: uint16_t = self.nextw(); + self.ww(addr_2, self.sp); + self.mem_ptr = (addr_2 as i32 + 1 as i32) as uint16_t; } - } - 64 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 72 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 80 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 88 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 96 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 104 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 112 => { - cyc = cyc.wrapping_add(12); - let mut val: uint8_t = 0; - in_r_c(z, &mut val); - } - 120 => { - cyc = cyc.wrapping_add(12); - in_r_c(z, &mut (*z).c2rust_unnamed.c2rust_unnamed.a); - (*z) - .mem_ptr = ((*z).c2rust_unnamed_0.bc as i32 + 1 as i32) - as uint16_t; - } - 162 => { - cyc = cyc.wrapping_add(16); - ini(z); - } - 178 => { - cyc = cyc.wrapping_add(16); - ini(z); - if (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 75 => { + cyc = cyc.wrapping_add(20); + let addr_3: uint16_t = self.nextw(); + self.c2rust_unnamed_0.bc = self.rw(addr_3); + self.mem_ptr = (addr_3 as i32 + 1 as i32) as uint16_t; } - } - 170 => { - cyc = cyc.wrapping_add(16); - ind(z); - } - 186 => { - cyc = cyc.wrapping_add(16); - ind(z); - if (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 91 => { + cyc = cyc.wrapping_add(20); + let addr_4: uint16_t = self.nextw(); + self.c2rust_unnamed_1.de = self.rw(addr_4); + self.mem_ptr = (addr_4 as i32 + 1 as i32) as uint16_t; } - } - 121 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed.c2rust_unnamed.a); - } - 65 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_0.c2rust_unnamed.b); - } - 73 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_0.c2rust_unnamed.c); - } - 81 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_1.c2rust_unnamed.d); - } - 89 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_1.c2rust_unnamed.e); - } - 97 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_2.c2rust_unnamed.h); - } - 105 => { - cyc = cyc.wrapping_add(12); - outc(z, (*z).c2rust_unnamed_2.c2rust_unnamed.l); - } - 113 => { - cyc = cyc.wrapping_add(12); - outc(z, 0 as i32 as uint8_t); - } - 163 => { - cyc = cyc.wrapping_add(16); - outi(z); - } - 179 => { - cyc = cyc.wrapping_add(16); - outi(z); - if (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 107 => { + cyc = cyc.wrapping_add(20); + let addr_5: uint16_t = self.nextw(); + self.c2rust_unnamed_2.hl = self.rw(addr_5); + self.mem_ptr = (addr_5 as i32 + 1 as i32) as uint16_t; } - } - 171 => { - cyc = cyc.wrapping_add(16); - outd(z); - } - 187 => { - cyc = cyc.wrapping_add(16); - outd(z); - if (*z).c2rust_unnamed_0.c2rust_unnamed.b as i32 > 0 as i32 { - (*z).pc = ((*z).pc as i32 - 2 as i32) as uint16_t; - cyc = cyc.wrapping_add(5); - (*z).mem_ptr = ((*z).pc as i32 + 1 as i32) as uint16_t; + 123 => { + cyc = cyc.wrapping_add(20); + let addr_6: uint16_t = self.nextw(); + self.sp = self.rw(addr_6); + self.mem_ptr = (addr_6 as i32 + 1 as i32) as uint16_t; } + 68 | 84 | 100 | 116 | 76 | 92 | 108 | 124 => { + cyc = cyc.wrapping_add(8); + self + .c2rust_unnamed + .c2rust_unnamed + .a = self.subb( + 0 as i32 as uint32_t, + self.c2rust_unnamed.c2rust_unnamed.a as uint32_t, + 0 as i32 != 0, + ); + } + 70 | 102 => { + cyc = cyc.wrapping_add(8); + self.interrupt_mode = 0 as i32 as uint8_t; + } + 86 | 118 => { + cyc = cyc.wrapping_add(8); + self.interrupt_mode = 1 as i32 as uint8_t; + } + 94 | 126 => { + cyc = cyc.wrapping_add(8); + self.interrupt_mode = 2 as i32 as uint8_t; + } + 103 => { + cyc = cyc.wrapping_add(18); + let mut a: uint8_t = self.c2rust_unnamed.c2rust_unnamed.a; + let mut val_0: uint8_t = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (a as i32 & 0xf0 as i32 + | val_0 as i32 & 0xf as i32) as uint8_t; + self.ctrl.write_byte( + self.c2rust_unnamed_2.hl, + (val_0 as i32 >> 4 as i32 + | (a as i32) << 4 as i32) as uint8_t, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[self.c2rust_unnamed.c2rust_unnamed.a as usize] + as i32 | Self::flag_val(cf, self.flag_get(cf)) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + self + .mem_ptr = (self.c2rust_unnamed_2.hl as i32 + 1 as i32) + as uint16_t; + } + 111 => { + cyc = cyc.wrapping_add(18); + let mut a_0: uint8_t = self.c2rust_unnamed.c2rust_unnamed.a; + let mut val_1: uint8_t = self.ctrl.read_byte(self.c2rust_unnamed_2.hl); + self + .c2rust_unnamed + .c2rust_unnamed + .a = (a_0 as i32 & 0xf0 as i32 + | val_1 as i32 >> 4 as i32) as uint8_t; + self.ctrl.write_byte( + self.c2rust_unnamed_2.hl, + ((val_1 as i32) << 4 as i32 + | a_0 as i32 & 0xf as i32) as uint8_t, + ); + self + .c2rust_unnamed + .c2rust_unnamed + .f = (self.f_szpxy[self.c2rust_unnamed.c2rust_unnamed.a as usize] + as i32 | Self::flag_val(cf, self.flag_get(cf)) as i32 + | Self::flag_val(nf, 0 as i32 != 0) as i32 + | Self::flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; + self + .mem_ptr = (self.c2rust_unnamed_2.hl as i32 + 1 as i32) + as uint16_t; + } + _ => {} } - 66 => { - cyc = cyc.wrapping_add(15); - sbchl(z, (*z).c2rust_unnamed_0.bc); - } - 82 => { - cyc = cyc.wrapping_add(15); - sbchl(z, (*z).c2rust_unnamed_1.de); - } - 98 => { - cyc = cyc.wrapping_add(15); - sbchl(z, (*z).c2rust_unnamed_2.hl); - } - 114 => { - cyc = cyc.wrapping_add(15); - sbchl(z, (*z).sp); - } - 74 => { - cyc = cyc.wrapping_add(15); - adchl(z, (*z).c2rust_unnamed_0.bc); - } - 90 => { - cyc = cyc.wrapping_add(15); - adchl(z, (*z).c2rust_unnamed_1.de); - } - 106 => { - cyc = cyc.wrapping_add(15); - adchl(z, (*z).c2rust_unnamed_2.hl); - } - 122 => { - cyc = cyc.wrapping_add(15); - adchl(z, (*z).sp); - } - 67 => { - cyc = cyc.wrapping_add(20); - let addr: uint16_t = nextw(z); - ww(z, addr, (*z).c2rust_unnamed_0.bc); - (*z).mem_ptr = (addr as i32 + 1 as i32) as uint16_t; - } - 83 => { - cyc = cyc.wrapping_add(20); - let addr_0: uint16_t = nextw(z); - ww(z, addr_0, (*z).c2rust_unnamed_1.de); - (*z).mem_ptr = (addr_0 as i32 + 1 as i32) as uint16_t; - } - 99 => { - cyc = cyc.wrapping_add(20); - let addr_1: uint16_t = nextw(z); - ww(z, addr_1, (*z).c2rust_unnamed_2.hl); - (*z).mem_ptr = (addr_1 as i32 + 1 as i32) as uint16_t; - } - 115 => { - cyc = cyc.wrapping_add(20); - let addr_2: uint16_t = nextw(z); - ww(z, addr_2, (*z).sp); - (*z).mem_ptr = (addr_2 as i32 + 1 as i32) as uint16_t; - } - 75 => { - cyc = cyc.wrapping_add(20); - let addr_3: uint16_t = nextw(z); - (*z).c2rust_unnamed_0.bc = rw(z, addr_3); - (*z).mem_ptr = (addr_3 as i32 + 1 as i32) as uint16_t; - } - 91 => { - cyc = cyc.wrapping_add(20); - let addr_4: uint16_t = nextw(z); - (*z).c2rust_unnamed_1.de = rw(z, addr_4); - (*z).mem_ptr = (addr_4 as i32 + 1 as i32) as uint16_t; - } - 107 => { - cyc = cyc.wrapping_add(20); - let addr_5: uint16_t = nextw(z); - (*z).c2rust_unnamed_2.hl = rw(z, addr_5); - (*z).mem_ptr = (addr_5 as i32 + 1 as i32) as uint16_t; - } - 123 => { - cyc = cyc.wrapping_add(20); - let addr_6: uint16_t = nextw(z); - (*z).sp = rw(z, addr_6); - (*z).mem_ptr = (addr_6 as i32 + 1 as i32) as uint16_t; - } - 68 | 84 | 100 | 116 | 76 | 92 | 108 | 124 => { - cyc = cyc.wrapping_add(8); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = subb( - z, - 0 as i32 as uint32_t, - (*z).c2rust_unnamed.c2rust_unnamed.a as uint32_t, - 0 as i32 != 0, - ); - } - 70 | 102 => { - cyc = cyc.wrapping_add(8); - (*z).interrupt_mode = 0 as i32 as uint8_t; - } - 86 | 118 => { - cyc = cyc.wrapping_add(8); - (*z).interrupt_mode = 1 as i32 as uint8_t; - } - 94 | 126 => { - cyc = cyc.wrapping_add(8); - (*z).interrupt_mode = 2 as i32 as uint8_t; - } - 103 => { - cyc = cyc.wrapping_add(18); - let mut a: uint8_t = (*z).c2rust_unnamed.c2rust_unnamed.a; - let mut val_0: uint8_t = rb(z, (*z).c2rust_unnamed_2.hl); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (a as i32 & 0xf0 as i32 - | val_0 as i32 & 0xf as i32) as uint8_t; - wb( - z, - (*z).c2rust_unnamed_2.hl, - (val_0 as i32 >> 4 as i32 - | (a as i32) << 4 as i32) as uint8_t, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[(*z).c2rust_unnamed.c2rust_unnamed.a as usize] - as i32 | flag_val(cf, flag_get(z, cf)) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - (*z) - .mem_ptr = ((*z).c2rust_unnamed_2.hl as i32 + 1 as i32) - as uint16_t; - } - 111 => { - cyc = cyc.wrapping_add(18); - let mut a_0: uint8_t = (*z).c2rust_unnamed.c2rust_unnamed.a; - let mut val_1: uint8_t = rb(z, (*z).c2rust_unnamed_2.hl); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .a = (a_0 as i32 & 0xf0 as i32 - | val_1 as i32 >> 4 as i32) as uint8_t; - wb( - z, - (*z).c2rust_unnamed_2.hl, - ((val_1 as i32) << 4 as i32 - | a_0 as i32 & 0xf as i32) as uint8_t, - ); - (*z) - .c2rust_unnamed - .c2rust_unnamed - .f = (f_szpxy[(*z).c2rust_unnamed.c2rust_unnamed.a as usize] - as i32 | flag_val(cf, flag_get(z, cf)) as i32 - | flag_val(nf, 0 as i32 != 0) as i32 - | flag_val(hf, 0 as i32 != 0) as i32) as uint8_t; - (*z) - .mem_ptr = ((*z).c2rust_unnamed_2.hl as i32 + 1 as i32) - as uint16_t; - } - _ => {} + return cyc; } - return cyc; +} + +#[derive(Copy, Clone)] +pub union C2RustUnnamed_0 { + pub c2rust_unnamed: C2RustUnnamed_1, + pub h_l_: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_1 { + pub l_: uint8_t, + pub h_: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_2 { + pub c2rust_unnamed: C2RustUnnamed_3, + pub d_e_: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_3 { + pub e_: uint8_t, + pub d_: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_4 { + pub c2rust_unnamed: C2RustUnnamed_5, + pub b_c_: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_5 { + pub c_: uint8_t, + pub b_: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_6 { + pub c2rust_unnamed: C2RustUnnamed_7, + pub a_f_: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_7 { + pub f_: uint8_t, + pub a_: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_8 { + pub c2rust_unnamed: C2RustUnnamed_9, + pub hl: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_9 { + pub l: uint8_t, + pub h: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_10 { + pub c2rust_unnamed: C2RustUnnamed_11, + pub de: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_11 { + pub e: uint8_t, + pub d: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_12 { + pub c2rust_unnamed: C2RustUnnamed_13, + pub bc: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_13 { + pub c: uint8_t, + pub b: uint8_t, +} +#[derive(Copy, Clone)] +pub union C2RustUnnamed_14 { + pub c2rust_unnamed: C2RustUnnamed_15, + pub af: uint16_t, +} +#[derive(Copy, Clone)] +pub struct C2RustUnnamed_15 { + pub f: uint8_t, + pub a: uint8_t, }