|
|
| version 1.1, 2004/08/01 05:31:32 | version 1.3, 2008/06/02 20:07:32 |
|---|---|
| Line 1 | Line 1 |
| //---------------------------------------------------------------------------- | /* ----------------------------------------------------------------------- |
| // | * |
| // Z80C : Z80 Engine - GENERIC | * Z80C : Z80 Engine - GENERIC |
| // | * |
| // Copyright by Studio Milmake 1999-2000,2004 | * Copyright by Studio Milmake 1999-2000,2004 |
| // | * |
| //---------------------------------------------------------------------------- | *------------------------------------------------------------------------ */ |
| #include "compiler.h" | #include "compiler.h" |
| #include "z80core.h" | #include "z80core.h" |
| #include "z80c.h" | #include "z80c.h" |
| #include "x1_io.h" | |
| #include "z80c.mcr" | #include "z80c.mcr" |
| #include "z80c_i.mcr" | #include "z80c_i.mcr" |
| Line 123 Z80FN _ld_sp_ix(void) MCR_LD_W(R_Z80SP, | Line 121 Z80FN _ld_sp_ix(void) MCR_LD_W(R_Z80SP, |
| static const Z80OP z80c_ixp[256] = { | static const Z80OP z80c_ixp[256] = { |
| _no_op, _no_op, _no_op, _no_op, // 00 | _no_op, _no_op, _no_op, _no_op, /* 00 */ |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _add_ix_bc, _no_op, _no_op, | _no_op, _add_ix_bc, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 10 | _no_op, _no_op, _no_op, _no_op, /* 10 */ |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _add_ix_de, _no_op, _no_op, | _no_op, _add_ix_de, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _ld_ix_word, _ld_xword_ix, _inc_ix, // 20 | _no_op, _ld_ix_word, _ld_xword_ix, _inc_ix, /* 20 */ |
| _inc_ixh, _dec_ixh, _ld_ixh_byte, _no_op, | _inc_ixh, _dec_ixh, _ld_ixh_byte, _no_op, |
| _no_op, _add_ix_ix, _ld_ix_xword, _dec_ix, | _no_op, _add_ix_ix, _ld_ix_xword, _dec_ix, |
| _inc_ixl, _dec_ixl, _ld_ixl_byte, _no_op, | _inc_ixl, _dec_ixl, _ld_ixl_byte, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 30 | _no_op, _no_op, _no_op, _no_op, /* 30 */ |
| _inc_xix, _dec_xix, _ld_xix_byte, _no_op, | _inc_xix, _dec_xix, _ld_xix_byte, _no_op, |
| _no_op, _add_ix_sp, _no_op, _no_op, | _no_op, _add_ix_sp, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 40 | _no_op, _no_op, _no_op, _no_op, /* 40 */ |
| _ld_b_ixh, _ld_b_ixl, _ld_b_xix, _no_op, | _ld_b_ixh, _ld_b_ixl, _ld_b_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _ld_c_ixh, _ld_c_ixl, _ld_c_xix, _no_op, | _ld_c_ixh, _ld_c_ixl, _ld_c_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 50 | _no_op, _no_op, _no_op, _no_op, /* 50 */ |
| _ld_d_ixh, _ld_d_ixl, _ld_d_xix, _no_op, | _ld_d_ixh, _ld_d_ixl, _ld_d_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _ld_e_ixh, _ld_e_ixl, _ld_e_xix, _no_op, | _ld_e_ixh, _ld_e_ixl, _ld_e_xix, _no_op, |
| _ld_ixh_b, _ld_ixh_c, _ld_ixh_d, _ld_ixh_e, // 60 | _ld_ixh_b, _ld_ixh_c, _ld_ixh_d, _ld_ixh_e, /* 60 */ |
| _ld_nop, _ld_ixh_ixl, _ld_h_xix, _ld_ixh_a, | _ld_nop, _ld_ixh_ixl, _ld_h_xix, _ld_ixh_a, |
| _ld_ixl_b, _ld_ixl_c, _ld_ixl_d, _ld_ixl_e, | _ld_ixl_b, _ld_ixl_c, _ld_ixl_d, _ld_ixl_e, |
| _ld_ixl_ixh, _ld_nop, _ld_l_xix, _ld_ixl_a, | _ld_ixl_ixh, _ld_nop, _ld_l_xix, _ld_ixl_a, |
| _ld_xix_b, _ld_xix_c, _ld_xix_d, _ld_xix_e, // 70 | _ld_xix_b, _ld_xix_c, _ld_xix_d, _ld_xix_e, /* 70 */ |
| _ld_xix_h, _ld_xix_l, _no_op, _ld_xix_a, | _ld_xix_h, _ld_xix_l, _no_op, _ld_xix_a, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _ld_a_ixh, _ld_a_ixl, _ld_a_xix, _no_op, | _ld_a_ixh, _ld_a_ixl, _ld_a_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 80 | _no_op, _no_op, _no_op, _no_op, /* 80 */ |
| _add_a_ixh, _add_a_ixl, _add_a_xix, _no_op, | _add_a_ixh, _add_a_ixl, _add_a_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _adc_a_ixh, _adc_a_ixl, _adc_a_xix, _no_op, | _adc_a_ixh, _adc_a_ixl, _adc_a_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // 90 | _no_op, _no_op, _no_op, _no_op, /* 90 */ |
| _sub_ixh, _sub_ixl, _sub_xix, _no_op, | _sub_ixh, _sub_ixl, _sub_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _sbc_a_ixh, _sbc_a_ixl, _sbc_a_xix, _no_op, | _sbc_a_ixh, _sbc_a_ixl, _sbc_a_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // a0 | _no_op, _no_op, _no_op, _no_op, /* a0 */ |
| _and_ixh, _and_ixl, _and_xix, _no_op, | _and_ixh, _and_ixl, _and_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _xor_ixh, _xor_ixl, _xor_xix, _no_op, | _xor_ixh, _xor_ixl, _xor_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // b0 | _no_op, _no_op, _no_op, _no_op, /* b0 */ |
| _or_ixh, _or_ixl, _or_xix, _no_op, | _or_ixh, _or_ixl, _or_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _cp_ixh, _cp_ixl, _cp_xix, _no_op, | _cp_ixh, _cp_ixl, _cp_xix, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // c0 | _no_op, _no_op, _no_op, _no_op, /* c0 */ |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, z80c_ixcb, | _no_op, _no_op, _no_op, z80c_ixcb, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // d0 | _no_op, _no_op, _no_op, _no_op, /* d0 */ |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _pop_ix, _no_op, _ex_xsp_ix, // e0 | _no_op, _pop_ix, _no_op, _ex_xsp_ix, /* e0 */ |
| _no_op, _push_ix, _no_op, _no_op, | _no_op, _push_ix, _no_op, _no_op, |
| _no_op, _jp_ix, _no_op, _no_op, | _no_op, _jp_ix, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op, // f0 | _no_op, _no_op, _no_op, _no_op, /* f0 */ |
| _no_op, _no_op, _no_op, _no_op, | _no_op, _no_op, _no_op, _no_op, |
| _no_op, _ld_sp_ix, _no_op, _no_op, | _no_op, _ld_sp_ix, _no_op, _no_op, |
| _no_op, _no_op, _no_op, _no_op | _no_op, _no_op, _no_op, _no_op |
| }; | }; |