Struct moa_z80::execute::ExecuteNext

source ·
pub(crate) struct ExecuteNext<'a, Bus, Instant>
where Bus: BusAccess<Z80AddressSpace, Instant = Instant>,
{ state: &'a mut Z80State, signals: &'a mut Z80Signals, debugger: &'a mut Z80Debugger, cycle: Z80Cycle<Instant>, bus: Bus, }

Fields§

§state: &'a mut Z80State§signals: &'a mut Z80Signals§debugger: &'a mut Z80Debugger§cycle: Z80Cycle<Instant>§bus: Bus

Implementations§

source§

impl<'a, Bus, Instant> ExecuteNext<'a, Bus, Instant>
where Bus: BusAccess<Z80AddressSpace, Instant = Instant>, Instant: EmuInstant,

source

pub(crate) fn end(self) -> Z80Cycle<Instant>

source

pub(crate) fn step_one(&mut self) -> Result<u16, Z80Error>

source

fn step_internal(&mut self) -> Result<u16, Z80Error>

source

fn init(&mut self) -> Result<u16, Z80Error>

source

fn reset(&mut self) -> Result<u16, Z80Error>

source

fn cycle_one(&mut self) -> Result<u16, Z80Error>

source

fn decode_next(&mut self) -> Result<(), Z80Error>

source

fn execute_current(&mut self) -> Result<(), Z80Error>

source

fn execute_adca(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_adc16( &mut self, dest_pair: RegisterPair, src_pair: RegisterPair ) -> Result<(), Z80Error>

source

fn execute_adda(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_add16( &mut self, dest_pair: RegisterPair, src_pair: RegisterPair ) -> Result<(), Z80Error>

source

fn execute_and(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_bit(&mut self, bit: u8, target: Target) -> Result<(), Z80Error>

source

fn execute_call(&mut self, addr: u16) -> Result<(), Z80Error>

source

fn execute_callcc(&mut self, cond: Condition, addr: u16) -> Result<(), Z80Error>

source

fn execute_ccf(&mut self) -> Result<(), Z80Error>

source

fn execute_cp(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_cpl(&mut self) -> Result<(), Z80Error>

source

fn execute_daa(&mut self) -> Result<(), Z80Error>

source

fn execute_dec16(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_dec8(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_di(&mut self) -> Result<(), Z80Error>

source

fn execute_djnz(&mut self, offset: i8) -> Result<(), Z80Error>

source

fn execute_ei(&mut self) -> Result<(), Z80Error>

source

fn execute_exx(&mut self) -> Result<(), Z80Error>

source

fn execute_ex_af_af(&mut self) -> Result<(), Z80Error>

source

fn execute_ex_hl_de(&mut self) -> Result<(), Z80Error>

source

fn execute_ex_sp(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_halt(&mut self) -> Result<(), Z80Error>

source

fn execute_im(&mut self, mode: InterruptMode) -> Result<(), Z80Error>

source

fn execute_inc16(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_inc8(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_ini(&mut self) -> Result<(), Z80Error>

source

fn execute_inic(&mut self, reg: Register) -> Result<(), Z80Error>

source

fn execute_inx(&mut self, n: u8) -> Result<(), Z80Error>

source

fn execute_jp(&mut self, addr: u16) -> Result<(), Z80Error>

source

fn execute_jp_indirect(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_jpcc(&mut self, cond: Condition, addr: u16) -> Result<(), Z80Error>

source

fn execute_jr(&mut self, offset: i8) -> Result<(), Z80Error>

source

fn execute_jrcc(&mut self, cond: Condition, offset: i8) -> Result<(), Z80Error>

source

fn execute_ld( &mut self, dest: LoadTarget, src: LoadTarget ) -> Result<(), Z80Error>

source

fn execute_ldsr( &mut self, special_reg: SpecialRegister, dir: Direction ) -> Result<(), Z80Error>

source

fn execute_ldx(&mut self) -> Result<(), Z80Error>

source

fn execute_neg(&mut self) -> Result<(), Z80Error>

source

fn execute_or(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_outic(&mut self, reg: Register) -> Result<(), Z80Error>

source

fn execute_outx(&mut self, n: u8) -> Result<(), Z80Error>

source

fn execute_pop(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_push(&mut self, regpair: RegisterPair) -> Result<(), Z80Error>

source

fn execute_res( &mut self, bit: u8, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_ret(&mut self) -> Result<(), Z80Error>

source

fn execute_reti(&mut self) -> Result<(), Z80Error>

source

fn execute_retn(&mut self) -> Result<(), Z80Error>

source

fn execute_retcc(&mut self, cond: Condition) -> Result<(), Z80Error>

source

fn execute_rl( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_rla(&mut self) -> Result<(), Z80Error>

source

fn execute_rlc( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_rlca(&mut self) -> Result<(), Z80Error>

source

fn execute_rld(&mut self) -> Result<(), Z80Error>

source

fn execute_rr( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_rra(&mut self) -> Result<(), Z80Error>

source

fn execute_rrc( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_rrca(&mut self) -> Result<(), Z80Error>

source

fn execute_rrd(&mut self) -> Result<(), Z80Error>

source

fn execute_rst(&mut self, addr: u8) -> Result<(), Z80Error>

source

fn execute_sbca(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_sbc16( &mut self, dest_pair: RegisterPair, src_pair: RegisterPair ) -> Result<(), Z80Error>

source

fn execute_scf(&mut self) -> Result<(), Z80Error>

source

fn execute_set( &mut self, bit: u8, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_sla( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_sll( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_sra( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_srl( &mut self, target: Target, opt_copy: UndocumentedCopy ) -> Result<(), Z80Error>

source

fn execute_sub(&mut self, target: Target) -> Result<(), Z80Error>

source

fn execute_xor(&mut self, target: Target) -> Result<(), Z80Error>

source

fn rotate_left(&mut self, value: u8, rtype: RotateType) -> (u8, bool)

source

fn rotate_right(&mut self, value: u8, rtype: RotateType) -> (u8, bool)

source

fn add_to_regpair(&mut self, regpair: RegisterPair, value: i16) -> u16

source

fn push_word(&mut self, value: u16) -> Result<(), Z80Error>

source

fn pop_word(&mut self) -> Result<u16, Z80Error>

source

fn get_load_target_value(&mut self, target: LoadTarget) -> Result<u16, Z80Error>

source

fn set_load_target_value( &mut self, target: LoadTarget, value: u16 ) -> Result<(), Z80Error>

source

fn get_target_value(&mut self, target: Target) -> Result<u8, Z80Error>

source

fn set_target_value( &mut self, target: Target, value: u8 ) -> Result<(), Z80Error>

source

fn increment_refresh(&mut self, count: u8)

source

fn read_port_u8(&mut self, addr: u16) -> Result<u8, Z80Error>

source

fn write_port_u8(&mut self, addr: u16, value: u8) -> Result<(), Z80Error>

source

fn read_port_u16(&mut self, addr: u16) -> Result<u16, Z80Error>

Read a u16 value through this CPU’s memory port

Since the memory port is only able to read 8 bits at a time, this does two reads in little endian byte order

source

fn write_port_u16(&mut self, addr: u16, value: u16) -> Result<(), Z80Error>

Write a u16 value through this CPU’s memory port

Since the memory port is only able to read 8 bits at a time, this does two writes in little endian byte order

source

fn read_ioport_value(&mut self, upper: u8, lower: u8) -> Result<u8, Z80Error>

source

fn write_ioport_value( &mut self, upper: u8, lower: u8, value: u8 ) -> Result<(), Z80Error>

source

fn get_register_value(&mut self, reg: Register) -> u8

source

fn set_register_value(&mut self, reg: Register, value: u8)

source

fn get_index_register_half_value(&mut self, reg: IndexRegisterHalf) -> u8

source

fn set_index_register_half_value(&mut self, reg: IndexRegisterHalf, value: u8)

source

fn get_register_pair_value(&mut self, regpair: RegisterPair) -> u16

source

fn set_register_pair_value(&mut self, regpair: RegisterPair, value: u16)

source

fn get_index_register_value(&mut self, reg: IndexRegister) -> u16

source

fn get_current_condition(&mut self, cond: Condition) -> bool

source

fn set_numeric_flags(&mut self, value: u16, size: Size)

source

fn set_parity_flags(&mut self, value: u8)

source

fn set_arithmetic_op_flags( &mut self, value: u16, size: Size, addsub: bool, carry: bool, overflow: bool, half_carry: bool )

source

fn set_logic_op_flags(&mut self, value: u8, carry: bool, half_carry: bool)

source

fn get_flag(&self, flag: Flags) -> bool

source

fn set_flag(&mut self, flag: Flags, value: bool)

source

fn get_flags(&self) -> u8

source

fn set_flags(&mut self, mask: u8, values: u8)

Auto Trait Implementations§

§

impl<'a, Bus, Instant> Freeze for ExecuteNext<'a, Bus, Instant>
where Bus: Freeze, Instant: Freeze,

§

impl<'a, Bus, Instant> !RefUnwindSafe for ExecuteNext<'a, Bus, Instant>

§

impl<'a, Bus, Instant> !Send for ExecuteNext<'a, Bus, Instant>

§

impl<'a, Bus, Instant> !Sync for ExecuteNext<'a, Bus, Instant>

§

impl<'a, Bus, Instant> Unpin for ExecuteNext<'a, Bus, Instant>
where Bus: Unpin, Instant: Unpin,

§

impl<'a, Bus, Instant> !UnwindSafe for ExecuteNext<'a, Bus, Instant>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, S> IntoAddress<T> for S
where T: FromAddress<S>,

source§

fn into_address(self) -> T

Translate the given address into an address of type T
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.