Z80 Class Reference

#include <z80.h>

Collaboration diagram for Z80:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Flags {
  VS = 1, HS = 2, HDT = 4, VDT = 8,
  HT = 16, VT = 32, MR = 64, VTadj = 128,
  VSf = 256, Sflag = 0x80, Zflag = 0x40, Hflag = 0x10,
  Pflag = 0x04, Vflag = 0x04, Nflag = 0x02, Cflag = 0x01,
  Xflags = 0x28
}
enum  Flags2 {
  CF = 0x01, NF = 0x02, PF = 0x04, VF = PF,
  XF = 0x08, HF = 0x10, YF = 0x20, ZF = 0x40,
  SF = 0x80
}
enum  ExitCode {
  EC_BREAKPOINT = 10, EC_TRACE = 20, EC_FRAME_COMPLETE = 30, EC_CYCLE_COUNT = 40,
  EC_SOUND_BUFFER = 50
}
enum  opcodes {
  nop, ld_bc_word, ld_mbc_a, inc_bc,
  inc_b, dec_b, ld_b_byte, rlca,
  ex_af_af, add_hl_bc, ld_a_mbc, dec_bc,
  inc_c, dec_c, ld_c_byte, rrca,
  djnz, ld_de_word, ld_mde_a, inc_de,
  inc_d, dec_d, ld_d_byte, rla,
  jr, add_hl_de, ld_a_mde, dec_de,
  inc_e, dec_e, ld_e_byte, rra,
  jr_nz, ld_hl_word, ld_mword_hl, inc_hl,
  inc_h, dec_h, ld_h_byte, daa,
  jr_z, add_hl_hl, ld_hl_mword, dec_hl,
  inc_l, dec_l, ld_l_byte, cpl,
  jr_nc, ld_sp_word, ld_mword_a, inc_sp,
  inc_mhl, dec_mhl, ld_mhl_byte, scf,
  jr_c, add_hl_sp, ld_a_mword, dec_sp,
  inc_a, dec_a, ld_a_byte, ccf,
  ld_b_b, ld_b_c, ld_b_d, ld_b_e,
  ld_b_h, ld_b_l, ld_b_mhl, ld_b_a,
  ld_c_b, ld_c_c, ld_c_d, ld_c_e,
  ld_c_h, ld_c_l, ld_c_mhl, ld_c_a,
  ld_d_b, ld_d_c, ld_d_d, ld_d_e,
  ld_d_h, ld_d_l, ld_d_mhl, ld_d_a,
  ld_e_b, ld_e_c, ld_e_d, ld_e_e,
  ld_e_h, ld_e_l, ld_e_mhl, ld_e_a,
  ld_h_b, ld_h_c, ld_h_d, ld_h_e,
  ld_h_h, ld_h_l, ld_h_mhl, ld_h_a,
  ld_l_b, ld_l_c, ld_l_d, ld_l_e,
  ld_l_h, ld_l_l, ld_l_mhl, ld_l_a,
  ld_mhl_b, ld_mhl_c, ld_mhl_d, ld_mhl_e,
  ld_mhl_h, ld_mhl_l, halt, ld_mhl_a,
  ld_a_b, ld_a_c, ld_a_d, ld_a_e,
  ld_a_h, ld_a_l, ld_a_mhl, ld_a_a,
  add_b, add_c, add_d, add_e,
  add_h, add_l, add_mhl, add_a,
  adc_b, adc_c, adc_d, adc_e,
  adc_h, adc_l, adc_mhl, adc_a,
  sub_b, sub_c, sub_d, sub_e,
  sub_h, sub_l, sub_mhl, sub_a,
  sbc_b, sbc_c, sbc_d, sbc_e,
  sbc_h, sbc_l, sbc_mhl, sbc_a,
  and_b, and_c, and_d, and_e,
  and_h, and_l, and_mhl, and_a,
  xor_b, xor_c, xor_d, xor_e,
  xor_h, xor_l, xor_mhl, xor_a,
  or_b, or_c, or_d, or_e,
  or_h, or_l, or_mhl, or_a,
  cp_b, cp_c, cp_d, cp_e,
  cp_h, cp_l, cp_mhl, cp_a,
  ret_nz, pop_bc, jp_nz, jp,
  call_nz, push_bc, add_byte, rst00,
  ret_z, ret, jp_z, pfx_cb,
  call_z, call, adc_byte, rst08,
  ret_nc, pop_de, jp_nc, outa,
  call_nc, push_de, sub_byte, rst10,
  ret_c, exx, jp_c, ina,
  call_c, pfx_dd, sbc_byte, rst18,
  ret_po, pop_hl, jp_po, ex_msp_hl,
  call_po, push_hl, and_byte, rst20,
  ret_pe, ld_pc_hl, jp_pe, ex_de_hl,
  call_pe, pfx_ed, xor_byte, rst28,
  ret_p, pop_af, jp_p, di,
  call_p, push_af, or_byte, rst30,
  ret_m, ld_sp_hl, jp_m, ei,
  call_m, pfx_fd, cp_byte, rst38
}
enum  CBcodes {
  rlc_b, rlc_c, rlc_d, rlc_e,
  rlc_h, rlc_l, rlc_mhl, rlc_a,
  rrc_b, rrc_c, rrc_d, rrc_e,
  rrc_h, rrc_l, rrc_mhl, rrc_a,
  rl_b, rl_c, rl_d, rl_e,
  rl_h, rl_l, rl_mhl, rl_a,
  rr_b, rr_c, rr_d, rr_e,
  rr_h, rr_l, rr_mhl, rr_a,
  sla_b, sla_c, sla_d, sla_e,
  sla_h, sla_l, sla_mhl, sla_a,
  sra_b, sra_c, sra_d, sra_e,
  sra_h, sra_l, sra_mhl, sra_a,
  sll_b, sll_c, sll_d, sll_e,
  sll_h, sll_l, sll_mhl, sll_a,
  srl_b, srl_c, srl_d, srl_e,
  srl_h, srl_l, srl_mhl, srl_a,
  bit0_b, bit0_c, bit0_d, bit0_e,
  bit0_h, bit0_l, bit0_mhl, bit0_a,
  bit1_b, bit1_c, bit1_d, bit1_e,
  bit1_h, bit1_l, bit1_mhl, bit1_a,
  bit2_b, bit2_c, bit2_d, bit2_e,
  bit2_h, bit2_l, bit2_mhl, bit2_a,
  bit3_b, bit3_c, bit3_d, bit3_e,
  bit3_h, bit3_l, bit3_mhl, bit3_a,
  bit4_b, bit4_c, bit4_d, bit4_e,
  bit4_h, bit4_l, bit4_mhl, bit4_a,
  bit5_b, bit5_c, bit5_d, bit5_e,
  bit5_h, bit5_l, bit5_mhl, bit5_a,
  bit6_b, bit6_c, bit6_d, bit6_e,
  bit6_h, bit6_l, bit6_mhl, bit6_a,
  bit7_b, bit7_c, bit7_d, bit7_e,
  bit7_h, bit7_l, bit7_mhl, bit7_a,
  res0_b, res0_c, res0_d, res0_e,
  res0_h, res0_l, res0_mhl, res0_a,
  res1_b, res1_c, res1_d, res1_e,
  res1_h, res1_l, res1_mhl, res1_a,
  res2_b, res2_c, res2_d, res2_e,
  res2_h, res2_l, res2_mhl, res2_a,
  res3_b, res3_c, res3_d, res3_e,
  res3_h, res3_l, res3_mhl, res3_a,
  res4_b, res4_c, res4_d, res4_e,
  res4_h, res4_l, res4_mhl, res4_a,
  res5_b, res5_c, res5_d, res5_e,
  res5_h, res5_l, res5_mhl, res5_a,
  res6_b, res6_c, res6_d, res6_e,
  res6_h, res6_l, res6_mhl, res6_a,
  res7_b, res7_c, res7_d, res7_e,
  res7_h, res7_l, res7_mhl, res7_a,
  set0_b, set0_c, set0_d, set0_e,
  set0_h, set0_l, set0_mhl, set0_a,
  set1_b, set1_c, set1_d, set1_e,
  set1_h, set1_l, set1_mhl, set1_a,
  set2_b, set2_c, set2_d, set2_e,
  set2_h, set2_l, set2_mhl, set2_a,
  set3_b, set3_c, set3_d, set3_e,
  set3_h, set3_l, set3_mhl, set3_a,
  set4_b, set4_c, set4_d, set4_e,
  set4_h, set4_l, set4_mhl, set4_a,
  set5_b, set5_c, set5_d, set5_e,
  set5_h, set5_l, set5_mhl, set5_a,
  set6_b, set6_c, set6_d, set6_e,
  set6_h, set6_l, set6_mhl, set6_a,
  set7_b, set7_c, set7_d, set7_e,
  set7_h, set7_l, set7_mhl, set7_a
}
enum  EDcodes {
  ed_00, ed_01, ed_02, ed_03,
  ed_04, ed_05, ed_06, ed_07,
  ed_08, ed_09, ed_0a, ed_0b,
  ed_0c, ed_0d, ed_0e, ed_0f,
  ed_10, ed_11, ed_12, ed_13,
  ed_14, ed_15, ed_16, ed_17,
  ed_18, ed_19, ed_1a, ed_1b,
  ed_1c, ed_1d, ed_1e, ed_1f,
  ed_20, ed_21, ed_22, ed_23,
  ed_24, ed_25, ed_26, ed_27,
  ed_28, ed_29, ed_2a, ed_2b,
  ed_2c, ed_2d, ed_2e, ed_2f,
  ed_30, ed_31, ed_32, ed_33,
  ed_34, ed_35, ed_36, ed_37,
  ed_38, ed_39, ed_3a, ed_3b,
  ed_3c, ed_3d, ed_3e, ed_3f,
  in_b_c, out_c_b, sbc_hl_bc, ld_EDmword_bc,
  neg, retn, im_0, ld_i_a,
  in_c_c, out_c_c, adc_hl_bc, ld_EDbc_mword,
  neg_1, reti, im_0_1, ld_r_a,
  in_d_c, out_c_d, sbc_hl_de, ld_EDmword_de,
  neg_2, retn_1, im_1, ld_a_i,
  in_e_c, out_c_e, adc_hl_de, ld_EDde_mword,
  neg_3, reti_1, im_2, ld_a_r,
  in_h_c, out_c_h, sbc_hl_hl, ld_EDmword_hl,
  neg_4, retn_2, im_0_2, rrd,
  in_l_c, out_c_l, adc_hl_hl, ld_EDhl_mword,
  neg_5, reti_2, im_0_3, rld,
  in_0_c, out_c_0, sbc_hl_sp, ld_EDmword_sp,
  neg_6, retn_3, im_1_1, ed_77,
  in_a_c, out_c_a, adc_hl_sp, ld_EDsp_mword,
  neg_7, reti_3, im_2_1, ed_7f,
  ed_80, ed_81, ed_82, ed_83,
  ed_84, ed_85, ed_86, ed_87,
  ed_88, ed_89, ed_8a, ed_8b,
  ed_8c, ed_8d, ed_8e, ed_8f,
  ed_90, ed_91, ed_92, ed_93,
  ed_94, ed_95, ed_96, ed_97,
  ed_98, ed_99, ed_9a, ed_9b,
  ed_9c, ed_9d, ed_9e, ed_9f,
  ldi, cpi, ini, outi,
  ed_a4, ed_a5, ed_a6, ed_a7,
  ldd, cpd, ind, outd,
  ed_ac, ed_ad, ed_ae, ed_af,
  ldir, cpir, inir, otir,
  ed_b4, ed_b5, ed_b6, ed_b7,
  lddr, cpdr, indr, otdr,
  ed_bc, ed_bd, ed_be, ed_bf,
  ed_c0, ed_c1, ed_c2, ed_c3,
  ed_c4, ed_c5, ed_c6, ed_c7,
  ed_c8, ed_c9, ed_ca, ed_cb,
  ed_cc, ed_cd, ed_ce, ed_cf,
  ed_d0, ed_d1, ed_d2, ed_d3,
  ed_d4, ed_d5, ed_d6, ed_d7,
  ed_d8, ed_d9, ed_da, ed_db,
  ed_dc, ed_dd, ed_de, ed_df,
  ed_e0, ed_e1, ed_e2, ed_e3,
  ed_e4, ed_e5, ed_e6, ed_e7,
  ed_e8, ed_e9, ed_ea, ed_eb,
  ed_ec, ed_ed, ed_ee, ed_ef,
  ed_f0, ed_f1, ed_f2, ed_f3,
  ed_f4, ed_f5, ed_f6, ed_f7,
  ed_f8, ed_f9, ed_fa, ed_fb,
  ed_fc, ed_fd, ed_fe, ed_ff
}

Public Member Functions

UBYTE read_mem (UWORD addr)
void write_mem (UWORD addr, UBYTE val)
void setMembank_read (UBYTE bank, UBYTE *ptr)
void setMembank_write (UBYTE bank, UBYTE *ptr)
void setInHandler (Z80_IN_Handler handler)
void setOutHandler (Z80_OUT_Handler handler)
void setWsHandler (Z80_WS_Handler handler)
Registerreg ()
void init ()
int execute (int cc)
void stop ()
void init_tables ()
int cycleCount ()
void mf2stop ()
void setMF2ExitAddr (UDWORD addr)
void setIntPending (UBYTE ip)
UBYTE intPending ()
void initMemMap ()
void endMemMap ()
void z80_pfx_cb ()
void z80_pfx_dd ()
void z80_pfx_ddcb ()
void z80_pfx_ed ()
void z80_pfx_fd ()
void z80_pfx_fdcb ()
UBYTE RES (UBYTE bit, UBYTE val)
UBYTE RLC (UBYTE val)
UBYTE RL (UBYTE val)
UBYTE RRC (UBYTE val)
UBYTE RR (UBYTE val)
UBYTE SET (UBYTE bit, UBYTE val)
UBYTE SLA (UBYTE val)
UBYTE SLL (UBYTE val)
UBYTE SRA (UBYTE val)
UBYTE SRL (UBYTE val)

Detailed Description

Author:
Fred Klaus


The documentation for this class was generated from the following files:
Generated on Fri Mar 16 21:30:31 2007 for roland.kdevelop by  doxygen 1.5.0