Pointer-ified the 6800, 6809 and hd6309 cpu cores

* temporarily named the state var m68_state in the 68xx cores
* reorganized some code for simpler comparison of 68xx cores
This commit is contained in:
Couriersud 2008-11-14 07:49:20 +00:00
parent 1463838fdc
commit 9ad6fe0049
13 changed files with 6021 additions and 5658 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,443 +1,443 @@
INLINE void illegal( void );
INLINE void neg_di( void );
INLINE void oim_di( void );
INLINE void aim_di( void );
INLINE void com_di( void );
INLINE void lsr_di( void );
INLINE void eim_di( void );
INLINE void ror_di( void );
INLINE void asr_di( void );
INLINE void asl_di( void );
INLINE void rol_di( void );
INLINE void dec_di( void );
INLINE void tim_di( void );
INLINE void inc_di( void );
INLINE void tst_di( void );
INLINE void jmp_di( void );
INLINE void clr_di( void );
INLINE void nop( void );
INLINE void sync( void );
INLINE void sexw( void );
INLINE void lbra( void );
INLINE void lbsr( void );
INLINE void daa( void );
INLINE void daa( void );
INLINE void orcc( void );
INLINE void andcc( void );
INLINE void sex( void );
INLINE void exg( void );
INLINE void tfr( void );
INLINE void bra( void );
INLINE void brn( void );
INLINE void lbrn( void );
INLINE void bhi( void );
INLINE void lbhi( void );
INLINE void bls( void );
INLINE void lbls( void );
INLINE void bcc( void );
INLINE void lbcc( void );
INLINE void bcs( void );
INLINE void lbcs( void );
INLINE void bne( void );
INLINE void lbne( void );
INLINE void beq( void );
INLINE void lbeq( void );
INLINE void bvc( void );
INLINE void lbvc( void );
INLINE void bvs( void );
INLINE void lbvs( void );
INLINE void bpl( void );
INLINE void lbpl( void );
INLINE void bmi( void );
INLINE void lbmi( void );
INLINE void bge( void );
INLINE void lbge( void );
INLINE void blt( void );
INLINE void lblt( void );
INLINE void bgt( void );
INLINE void lbgt( void );
INLINE void ble( void );
INLINE void lble( void );
INLINE void addr_r( void );
INLINE void adcr( void );
INLINE void subr( void );
INLINE void sbcr( void );
INLINE void andr( void );
INLINE void orr( void );
INLINE void eorr( void );
INLINE void cmpr( void );
INLINE void tfmpp( void );
INLINE void tfmmm( void );
INLINE void tfmpc( void );
INLINE void tfmcp( void );
INLINE void bitmd_im( void );
INLINE void leax( void );
INLINE void leay( void );
INLINE void leas( void );
INLINE void leau( void );
INLINE void pshs( void );
INLINE void ldmd_im( void );
INLINE void pshsw( void );
INLINE void pshuw( void );
INLINE void puls( void );
INLINE void pulsw( void );
INLINE void puluw( void );
INLINE void pshu( void );
INLINE void pulu( void );
INLINE void rts( void );
INLINE void abx( void );
INLINE void rti( void );
INLINE void cwai( void );
INLINE void bitd_di( void );
INLINE void bitd_ix( void );
INLINE void bitd_ex( void );
INLINE void mul( void );
INLINE void swi( void );
INLINE void band( void );
INLINE void bitd_im( void );
INLINE void biand( void );
INLINE void bor( void );
INLINE void bior( void );
INLINE void beor( void );
INLINE void bieor( void );
INLINE void ldbt( void );
INLINE void stbt( void );
INLINE void swi2( void );
INLINE void swi3( void );
INLINE void nega( void );
INLINE void coma( void );
INLINE void lsra( void );
INLINE void rora( void );
INLINE void asra( void );
INLINE void asla( void );
INLINE void rola( void );
INLINE void deca( void );
INLINE void inca( void );
INLINE void tsta( void );
INLINE void clra( void );
INLINE void negb( void );
INLINE void negd( void );
INLINE void comb( void );
INLINE void come( void );
INLINE void comf( void );
INLINE void comd( void );
INLINE void comw( void );
INLINE void lsrb( void );
INLINE void lsrd( void );
INLINE void lsrw( void );
INLINE void rorb( void );
INLINE void rord( void );
INLINE void rorw( void );
INLINE void asrb( void );
INLINE void asrd( void );
INLINE void aslb( void );
INLINE void asld( void );
INLINE void rolb( void );
INLINE void rold( void );
INLINE void rolw( void );
INLINE void decb( void );
INLINE void dece( void );
INLINE void decf( void );
INLINE void decd( void );
INLINE void decw( void );
INLINE void incb( void );
INLINE void ince( void );
INLINE void incf( void );
INLINE void incd( void );
INLINE void incw( void );
INLINE void tstb( void );
INLINE void tstd( void );
INLINE void tstw( void );
INLINE void tste( void );
INLINE void tstf( void );
INLINE void clrb( void );
INLINE void clrd( void );
INLINE void clre( void );
INLINE void clrf( void );
INLINE void clrw( void );
INLINE void neg_ix( void );
INLINE void oim_ix( void );
INLINE void aim_ix( void );
INLINE void com_ix( void );
INLINE void lsr_ix( void );
INLINE void eim_ix( void );
INLINE void ror_ix( void );
INLINE void asr_ix( void );
INLINE void asl_ix( void );
INLINE void rol_ix( void );
INLINE void dec_ix( void );
INLINE void tim_ix( void );
INLINE void inc_ix( void );
INLINE void tst_ix( void );
INLINE void jmp_ix( void );
INLINE void clr_ix( void );
INLINE void neg_ex( void );
INLINE void oim_ex( void );
INLINE void aim_ex( void );
INLINE void com_ex( void );
INLINE void lsr_ex( void );
INLINE void eim_ex( void );
INLINE void ror_ex( void );
INLINE void asr_ex( void );
INLINE void asl_ex( void );
INLINE void rol_ex( void );
INLINE void dec_ex( void );
INLINE void tim_ex( void );
INLINE void inc_ex( void );
INLINE void tst_ex( void );
INLINE void jmp_ex( void );
INLINE void clr_ex( void );
INLINE void suba_im( void );
INLINE void cmpa_im( void );
INLINE void sbca_im( void );
INLINE void subd_im( void );
INLINE void subw_im( void );
INLINE void cmpd_im( void );
INLINE void cmpw_im( void );
INLINE void cmpu_im( void );
INLINE void anda_im( void );
INLINE void bita_im( void );
INLINE void lda_im( void );
INLINE void eora_im( void );
INLINE void adca_im( void );
INLINE void ora_im( void );
INLINE void adda_im( void );
INLINE void cmpx_im( void );
INLINE void cmpy_im( void );
INLINE void cmps_im( void );
INLINE void bsr( void );
INLINE void ldx_im( void );
INLINE void ldq_im( void );
INLINE void ldy_im( void );
INLINE void suba_di( void );
INLINE void cmpa_di( void );
INLINE void sbca_di( void );
INLINE void subd_di( void );
INLINE void subw_di( void );
INLINE void cmpd_di( void );
INLINE void cmpw_di( void );
INLINE void cmpu_di( void );
INLINE void anda_di( void );
INLINE void bita_di( void );
INLINE void lda_di( void );
INLINE void sta_di( void );
INLINE void eora_di( void );
INLINE void adca_di( void );
INLINE void ora_di( void );
INLINE void adda_di( void );
INLINE void cmpx_di( void );
INLINE void cmpy_di( void );
INLINE void cmps_di( void );
INLINE void jsr_di( void );
INLINE void ldx_di( void );
INLINE void muld_di( void );
INLINE void divd_im( void );
INLINE void divq_im( void );
INLINE void muld_im( void );
INLINE void divd_di( void );
INLINE void divq_di( void );
INLINE void ldq_di( void );
INLINE void ldy_di( void );
INLINE void stx_di( void );
INLINE void stq_di( void );
INLINE void sty_di( void );
INLINE void suba_ix( void );
INLINE void cmpa_ix( void );
INLINE void sbca_ix( void );
INLINE void subd_ix( void );
INLINE void subw_ix( void );
INLINE void cmpd_ix( void );
INLINE void cmpw_ix( void );
INLINE void cmpu_ix( void );
INLINE void anda_ix( void );
INLINE void bita_ix( void );
INLINE void lda_ix( void );
INLINE void sta_ix( void );
INLINE void eora_ix( void );
INLINE void adca_ix( void );
INLINE void ora_ix( void );
INLINE void adda_ix( void );
INLINE void cmpx_ix( void );
INLINE void cmpy_ix( void );
INLINE void cmps_ix( void );
INLINE void jsr_ix( void );
INLINE void ldx_ix( void );
INLINE void muld_ix( void );
INLINE void divd_ix( void );
INLINE void divq_ix( void );
INLINE void ldq_ix( void );
INLINE void ldy_ix( void );
INLINE void stx_ix( void );
INLINE void stq_ix( void );
INLINE void sty_ix( void );
INLINE void suba_ex( void );
INLINE void cmpa_ex( void );
INLINE void sbca_ex( void );
INLINE void subd_ex( void );
INLINE void subw_ex( void );
INLINE void cmpd_ex( void );
INLINE void cmpw_ex( void );
INLINE void cmpu_ex( void );
INLINE void anda_ex( void );
INLINE void bita_ex( void );
INLINE void lda_ex( void );
INLINE void sta_ex( void );
INLINE void eora_ex( void );
INLINE void adca_ex( void );
INLINE void ora_ex( void );
INLINE void adda_ex( void );
INLINE void cmpx_ex( void );
INLINE void cmpy_ex( void );
INLINE void cmps_ex( void );
INLINE void jsr_ex( void );
INLINE void ldx_ex( void );
INLINE void muld_ex( void );
INLINE void divd_ex( void );
INLINE void divq_ex( void );
INLINE void ldq_ex( void );
INLINE void ldy_ex( void );
INLINE void stx_ex( void );
INLINE void stq_ex( void );
INLINE void sty_ex( void );
INLINE void subb_im( void );
INLINE void sube_im( void );
INLINE void subf_im( void );
INLINE void cmpb_im( void );
INLINE void cmpe_im( void );
INLINE void cmpf_im( void );
INLINE void sbcb_im( void );
INLINE void sbcd_im( void );
INLINE void addd_im( void );
INLINE void addw_im( void );
INLINE void adde_im( void );
INLINE void addf_im( void );
INLINE void andb_im( void );
INLINE void andd_im( void );
INLINE void bitb_im( void );
INLINE void ldb_im( void );
INLINE void lde_im( void );
INLINE void ldf_im( void );
INLINE void eorb_im( void );
INLINE void eord_im( void );
INLINE void adcb_im( void );
INLINE void adcd_im( void );
INLINE void orb_im( void );
INLINE void ord_im( void );
INLINE void addb_im( void );
INLINE void ldd_im( void );
INLINE void ldw_im( void );
INLINE void ldu_im( void );
INLINE void lds_im( void );
INLINE void subb_di( void );
INLINE void sube_di( void );
INLINE void subf_di( void );
INLINE void cmpb_di( void );
INLINE void cmpe_di( void );
INLINE void cmpf_di( void );
INLINE void sbcb_di( void );
INLINE void sbcd_di( void );
INLINE void addd_di( void );
INLINE void addw_di( void );
INLINE void adde_di( void );
INLINE void addf_di( void );
INLINE void andb_di( void );
INLINE void andd_di( void );
INLINE void bitb_di( void );
INLINE void ldb_di( void );
INLINE void lde_di( void );
INLINE void ldf_di( void );
INLINE void stb_di( void );
INLINE void ste_di( void );
INLINE void stf_di( void );
INLINE void eorb_di( void );
INLINE void eord_di( void );
INLINE void adcb_di( void );
INLINE void adcd_di( void );
INLINE void orb_di( void );
INLINE void ord_di( void );
INLINE void addb_di( void );
INLINE void ldd_di( void );
INLINE void ldw_di( void );
INLINE void std_di( void );
INLINE void stw_di( void );
INLINE void ldu_di( void );
INLINE void lds_di( void );
INLINE void stu_di( void );
INLINE void sts_di( void );
INLINE void subb_ix( void );
INLINE void sube_ix( void );
INLINE void subf_ix( void );
INLINE void cmpb_ix( void );
INLINE void cmpe_ix( void );
INLINE void cmpf_ix( void );
INLINE void sbcb_ix( void );
INLINE void sbcd_ix( void );
INLINE void addd_ix( void );
INLINE void addw_ix( void );
INLINE void adde_ix( void );
INLINE void addf_ix( void );
INLINE void andb_ix( void );
INLINE void andd_ix( void );
INLINE void bitb_ix( void );
INLINE void ldb_ix( void );
INLINE void lde_ix( void );
INLINE void ldf_ix( void );
INLINE void stb_ix( void );
INLINE void ste_ix( void );
INLINE void stf_ix( void );
INLINE void eorb_ix( void );
INLINE void eord_ix( void );
INLINE void adcb_ix( void );
INLINE void adcd_ix( void );
INLINE void orb_ix( void );
INLINE void ord_ix( void );
INLINE void addb_ix( void );
INLINE void ldd_ix( void );
INLINE void ldw_ix( void );
INLINE void std_ix( void );
INLINE void stw_ix( void );
INLINE void ldu_ix( void );
INLINE void lds_ix( void );
INLINE void stu_ix( void );
INLINE void sts_ix( void );
INLINE void subb_ex( void );
INLINE void sube_ex( void );
INLINE void subf_ex( void );
INLINE void cmpb_ex( void );
INLINE void cmpe_ex( void );
INLINE void cmpf_ex( void );
INLINE void sbcb_ex( void );
INLINE void sbcd_ex( void );
INLINE void addd_ex( void );
INLINE void addw_ex( void );
INLINE void adde_ex( void );
INLINE void addf_ex( void );
INLINE void andb_ex( void );
INLINE void andd_ex( void );
INLINE void bitb_ex( void );
INLINE void ldb_ex( void );
INLINE void lde_ex( void );
INLINE void ldf_ex( void );
INLINE void stb_ex( void );
INLINE void ste_ex( void );
INLINE void stf_ex( void );
INLINE void eorb_ex( void );
INLINE void eord_ex( void );
INLINE void adcb_ex( void );
INLINE void adcd_ex( void );
INLINE void orb_ex( void );
INLINE void ord_ex( void );
INLINE void addb_ex( void );
INLINE void ldd_ex( void );
INLINE void ldw_ex( void );
INLINE void std_ex( void );
INLINE void stw_ex( void );
INLINE void ldu_ex( void );
INLINE void lds_ex( void );
INLINE void stu_ex( void );
INLINE void sts_ex( void );
INLINE void pref10( void );
INLINE void pref11( void );
INLINE void abx(m68_state_t *m68_state);
INLINE void adca_di(m68_state_t *m68_state);
INLINE void adca_ex(m68_state_t *m68_state);
INLINE void adca_im(m68_state_t *m68_state);
INLINE void adca_ix(m68_state_t *m68_state);
INLINE void adcb_di(m68_state_t *m68_state);
INLINE void adcb_ex(m68_state_t *m68_state);
INLINE void adcb_im(m68_state_t *m68_state);
INLINE void adcb_ix(m68_state_t *m68_state);
INLINE void adcd_di(m68_state_t *m68_state);
INLINE void adcd_ex(m68_state_t *m68_state);
INLINE void adcd_im(m68_state_t *m68_state);
INLINE void adcd_ix(m68_state_t *m68_state);
INLINE void adcr(m68_state_t *m68_state);
INLINE void adda_di(m68_state_t *m68_state);
INLINE void adda_ex(m68_state_t *m68_state);
INLINE void adda_im(m68_state_t *m68_state);
INLINE void adda_ix(m68_state_t *m68_state);
INLINE void addb_di(m68_state_t *m68_state);
INLINE void addb_ex(m68_state_t *m68_state);
INLINE void addb_im(m68_state_t *m68_state);
INLINE void addb_ix(m68_state_t *m68_state);
INLINE void addd_di(m68_state_t *m68_state);
INLINE void addd_ex(m68_state_t *m68_state);
INLINE void addd_im(m68_state_t *m68_state);
INLINE void addd_ix(m68_state_t *m68_state);
INLINE void adde_di(m68_state_t *m68_state);
INLINE void adde_ex(m68_state_t *m68_state);
INLINE void adde_im(m68_state_t *m68_state);
INLINE void adde_ix(m68_state_t *m68_state);
INLINE void addf_di(m68_state_t *m68_state);
INLINE void addf_ex(m68_state_t *m68_state);
INLINE void addf_im(m68_state_t *m68_state);
INLINE void addf_ix(m68_state_t *m68_state);
INLINE void addr_r(m68_state_t *m68_state);
INLINE void addw_di(m68_state_t *m68_state);
INLINE void addw_ex(m68_state_t *m68_state);
INLINE void addw_im(m68_state_t *m68_state);
INLINE void addw_ix(m68_state_t *m68_state);
INLINE void aim_di(m68_state_t *m68_state);
INLINE void aim_ex(m68_state_t *m68_state);
INLINE void aim_ix(m68_state_t *m68_state);
INLINE void anda_di(m68_state_t *m68_state);
INLINE void anda_ex(m68_state_t *m68_state);
INLINE void anda_im(m68_state_t *m68_state);
INLINE void anda_ix(m68_state_t *m68_state);
INLINE void andb_di(m68_state_t *m68_state);
INLINE void andb_ex(m68_state_t *m68_state);
INLINE void andb_im(m68_state_t *m68_state);
INLINE void andb_ix(m68_state_t *m68_state);
INLINE void andcc(m68_state_t *m68_state);
INLINE void andd_di(m68_state_t *m68_state);
INLINE void andd_ex(m68_state_t *m68_state);
INLINE void andd_im(m68_state_t *m68_state);
INLINE void andd_ix(m68_state_t *m68_state);
INLINE void andr(m68_state_t *m68_state);
INLINE void asla(m68_state_t *m68_state);
INLINE void aslb(m68_state_t *m68_state);
INLINE void asl_di(m68_state_t *m68_state);
INLINE void asld(m68_state_t *m68_state);
INLINE void asl_ex(m68_state_t *m68_state);
INLINE void asl_ix(m68_state_t *m68_state);
INLINE void asra(m68_state_t *m68_state);
INLINE void asrb(m68_state_t *m68_state);
INLINE void asr_di(m68_state_t *m68_state);
INLINE void asrd(m68_state_t *m68_state);
INLINE void asr_ex(m68_state_t *m68_state);
INLINE void asr_ix(m68_state_t *m68_state);
INLINE void band(m68_state_t *m68_state);
INLINE void bcc(m68_state_t *m68_state);
INLINE void bcs(m68_state_t *m68_state);
INLINE void beor(m68_state_t *m68_state);
INLINE void beq(m68_state_t *m68_state);
INLINE void bge(m68_state_t *m68_state);
INLINE void bgt(m68_state_t *m68_state);
INLINE void bhi(m68_state_t *m68_state);
INLINE void biand(m68_state_t *m68_state);
INLINE void bieor(m68_state_t *m68_state);
INLINE void bior(m68_state_t *m68_state);
INLINE void bita_di(m68_state_t *m68_state);
INLINE void bita_ex(m68_state_t *m68_state);
INLINE void bita_im(m68_state_t *m68_state);
INLINE void bita_ix(m68_state_t *m68_state);
INLINE void bitb_di(m68_state_t *m68_state);
INLINE void bitb_ex(m68_state_t *m68_state);
INLINE void bitb_im(m68_state_t *m68_state);
INLINE void bitb_ix(m68_state_t *m68_state);
INLINE void bitd_di(m68_state_t *m68_state);
INLINE void bitd_ex(m68_state_t *m68_state);
INLINE void bitd_im(m68_state_t *m68_state);
INLINE void bitd_ix(m68_state_t *m68_state);
INLINE void bitmd_im(m68_state_t *m68_state);
INLINE void ble(m68_state_t *m68_state);
INLINE void bls(m68_state_t *m68_state);
INLINE void blt(m68_state_t *m68_state);
INLINE void bmi(m68_state_t *m68_state);
INLINE void bne(m68_state_t *m68_state);
INLINE void bor(m68_state_t *m68_state);
INLINE void bpl(m68_state_t *m68_state);
INLINE void bra(m68_state_t *m68_state);
INLINE void brn(m68_state_t *m68_state);
INLINE void bsr(m68_state_t *m68_state);
INLINE void bvc(m68_state_t *m68_state);
INLINE void bvs(m68_state_t *m68_state);
INLINE void clra(m68_state_t *m68_state);
INLINE void clrb(m68_state_t *m68_state);
INLINE void clr_di(m68_state_t *m68_state);
INLINE void clrd(m68_state_t *m68_state);
INLINE void clre(m68_state_t *m68_state);
INLINE void clr_ex(m68_state_t *m68_state);
INLINE void clrf(m68_state_t *m68_state);
INLINE void clr_ix(m68_state_t *m68_state);
INLINE void clrw(m68_state_t *m68_state);
INLINE void cmpa_di(m68_state_t *m68_state);
INLINE void cmpa_ex(m68_state_t *m68_state);
INLINE void cmpa_im(m68_state_t *m68_state);
INLINE void cmpa_ix(m68_state_t *m68_state);
INLINE void cmpb_di(m68_state_t *m68_state);
INLINE void cmpb_ex(m68_state_t *m68_state);
INLINE void cmpb_im(m68_state_t *m68_state);
INLINE void cmpb_ix(m68_state_t *m68_state);
INLINE void cmpd_di(m68_state_t *m68_state);
INLINE void cmpd_ex(m68_state_t *m68_state);
INLINE void cmpd_im(m68_state_t *m68_state);
INLINE void cmpd_ix(m68_state_t *m68_state);
INLINE void cmpe_di(m68_state_t *m68_state);
INLINE void cmpe_ex(m68_state_t *m68_state);
INLINE void cmpe_im(m68_state_t *m68_state);
INLINE void cmpe_ix(m68_state_t *m68_state);
INLINE void cmpf_di(m68_state_t *m68_state);
INLINE void cmpf_ex(m68_state_t *m68_state);
INLINE void cmpf_im(m68_state_t *m68_state);
INLINE void cmpf_ix(m68_state_t *m68_state);
INLINE void cmpr(m68_state_t *m68_state);
INLINE void cmps_di(m68_state_t *m68_state);
INLINE void cmps_ex(m68_state_t *m68_state);
INLINE void cmps_im(m68_state_t *m68_state);
INLINE void cmps_ix(m68_state_t *m68_state);
INLINE void cmpu_di(m68_state_t *m68_state);
INLINE void cmpu_ex(m68_state_t *m68_state);
INLINE void cmpu_im(m68_state_t *m68_state);
INLINE void cmpu_ix(m68_state_t *m68_state);
INLINE void cmpw_di(m68_state_t *m68_state);
INLINE void cmpw_ex(m68_state_t *m68_state);
INLINE void cmpw_im(m68_state_t *m68_state);
INLINE void cmpw_ix(m68_state_t *m68_state);
INLINE void cmpx_di(m68_state_t *m68_state);
INLINE void cmpx_ex(m68_state_t *m68_state);
INLINE void cmpx_im(m68_state_t *m68_state);
INLINE void cmpx_ix(m68_state_t *m68_state);
INLINE void cmpy_di(m68_state_t *m68_state);
INLINE void cmpy_ex(m68_state_t *m68_state);
INLINE void cmpy_im(m68_state_t *m68_state);
INLINE void cmpy_ix(m68_state_t *m68_state);
INLINE void coma(m68_state_t *m68_state);
INLINE void comb(m68_state_t *m68_state);
INLINE void com_di(m68_state_t *m68_state);
INLINE void comd(m68_state_t *m68_state);
INLINE void come(m68_state_t *m68_state);
INLINE void com_ex(m68_state_t *m68_state);
INLINE void comf(m68_state_t *m68_state);
INLINE void com_ix(m68_state_t *m68_state);
INLINE void comw(m68_state_t *m68_state);
INLINE void cwai(m68_state_t *m68_state);
INLINE void daa(m68_state_t *m68_state);
INLINE void daa(m68_state_t *m68_state);
INLINE void deca(m68_state_t *m68_state);
INLINE void decb(m68_state_t *m68_state);
INLINE void dec_di(m68_state_t *m68_state);
INLINE void decd(m68_state_t *m68_state);
INLINE void dece(m68_state_t *m68_state);
INLINE void dec_ex(m68_state_t *m68_state);
INLINE void decf(m68_state_t *m68_state);
INLINE void dec_ix(m68_state_t *m68_state);
INLINE void decw(m68_state_t *m68_state);
INLINE void divd_di(m68_state_t *m68_state);
INLINE void divd_ex(m68_state_t *m68_state);
INLINE void divd_im(m68_state_t *m68_state);
INLINE void divd_ix(m68_state_t *m68_state);
INLINE void divq_di(m68_state_t *m68_state);
INLINE void divq_ex(m68_state_t *m68_state);
INLINE void divq_im(m68_state_t *m68_state);
INLINE void divq_ix(m68_state_t *m68_state);
INLINE void eim_di(m68_state_t *m68_state);
INLINE void eim_ex(m68_state_t *m68_state);
INLINE void eim_ix(m68_state_t *m68_state);
INLINE void eora_di(m68_state_t *m68_state);
INLINE void eora_ex(m68_state_t *m68_state);
INLINE void eora_im(m68_state_t *m68_state);
INLINE void eora_ix(m68_state_t *m68_state);
INLINE void eorb_di(m68_state_t *m68_state);
INLINE void eorb_ex(m68_state_t *m68_state);
INLINE void eorb_im(m68_state_t *m68_state);
INLINE void eorb_ix(m68_state_t *m68_state);
INLINE void eord_di(m68_state_t *m68_state);
INLINE void eord_ex(m68_state_t *m68_state);
INLINE void eord_im(m68_state_t *m68_state);
INLINE void eord_ix(m68_state_t *m68_state);
INLINE void eorr(m68_state_t *m68_state);
INLINE void exg(m68_state_t *m68_state);
INLINE void illegal(m68_state_t *m68_state);
INLINE void inca(m68_state_t *m68_state);
INLINE void incb(m68_state_t *m68_state);
INLINE void inc_di(m68_state_t *m68_state);
INLINE void incd(m68_state_t *m68_state);
INLINE void ince(m68_state_t *m68_state);
INLINE void inc_ex(m68_state_t *m68_state);
INLINE void incf(m68_state_t *m68_state);
INLINE void inc_ix(m68_state_t *m68_state);
INLINE void incw(m68_state_t *m68_state);
INLINE void jmp_di(m68_state_t *m68_state);
INLINE void jmp_ex(m68_state_t *m68_state);
INLINE void jmp_ix(m68_state_t *m68_state);
INLINE void jsr_di(m68_state_t *m68_state);
INLINE void jsr_ex(m68_state_t *m68_state);
INLINE void jsr_ix(m68_state_t *m68_state);
INLINE void lbcc(m68_state_t *m68_state);
INLINE void lbcs(m68_state_t *m68_state);
INLINE void lbeq(m68_state_t *m68_state);
INLINE void lbge(m68_state_t *m68_state);
INLINE void lbgt(m68_state_t *m68_state);
INLINE void lbhi(m68_state_t *m68_state);
INLINE void lble(m68_state_t *m68_state);
INLINE void lbls(m68_state_t *m68_state);
INLINE void lblt(m68_state_t *m68_state);
INLINE void lbmi(m68_state_t *m68_state);
INLINE void lbne(m68_state_t *m68_state);
INLINE void lbpl(m68_state_t *m68_state);
INLINE void lbra(m68_state_t *m68_state);
INLINE void lbrn(m68_state_t *m68_state);
INLINE void lbsr(m68_state_t *m68_state);
INLINE void lbvc(m68_state_t *m68_state);
INLINE void lbvs(m68_state_t *m68_state);
INLINE void lda_di(m68_state_t *m68_state);
INLINE void lda_ex(m68_state_t *m68_state);
INLINE void lda_im(m68_state_t *m68_state);
INLINE void lda_ix(m68_state_t *m68_state);
INLINE void ldb_di(m68_state_t *m68_state);
INLINE void ldb_ex(m68_state_t *m68_state);
INLINE void ldb_im(m68_state_t *m68_state);
INLINE void ldb_ix(m68_state_t *m68_state);
INLINE void ldbt(m68_state_t *m68_state);
INLINE void ldd_di(m68_state_t *m68_state);
INLINE void ldd_ex(m68_state_t *m68_state);
INLINE void ldd_im(m68_state_t *m68_state);
INLINE void ldd_ix(m68_state_t *m68_state);
INLINE void lde_di(m68_state_t *m68_state);
INLINE void lde_ex(m68_state_t *m68_state);
INLINE void lde_im(m68_state_t *m68_state);
INLINE void lde_ix(m68_state_t *m68_state);
INLINE void ldf_di(m68_state_t *m68_state);
INLINE void ldf_ex(m68_state_t *m68_state);
INLINE void ldf_im(m68_state_t *m68_state);
INLINE void ldf_ix(m68_state_t *m68_state);
INLINE void ldmd_im(m68_state_t *m68_state);
INLINE void ldq_di(m68_state_t *m68_state);
INLINE void ldq_ex(m68_state_t *m68_state);
INLINE void ldq_im(m68_state_t *m68_state);
INLINE void ldq_ix(m68_state_t *m68_state);
INLINE void lds_di(m68_state_t *m68_state);
INLINE void lds_ex(m68_state_t *m68_state);
INLINE void lds_im(m68_state_t *m68_state);
INLINE void lds_ix(m68_state_t *m68_state);
INLINE void ldu_di(m68_state_t *m68_state);
INLINE void ldu_ex(m68_state_t *m68_state);
INLINE void ldu_im(m68_state_t *m68_state);
INLINE void ldu_ix(m68_state_t *m68_state);
INLINE void ldw_di(m68_state_t *m68_state);
INLINE void ldw_ex(m68_state_t *m68_state);
INLINE void ldw_im(m68_state_t *m68_state);
INLINE void ldw_ix(m68_state_t *m68_state);
INLINE void ldx_di(m68_state_t *m68_state);
INLINE void ldx_ex(m68_state_t *m68_state);
INLINE void ldx_im(m68_state_t *m68_state);
INLINE void ldx_ix(m68_state_t *m68_state);
INLINE void ldy_di(m68_state_t *m68_state);
INLINE void ldy_ex(m68_state_t *m68_state);
INLINE void ldy_im(m68_state_t *m68_state);
INLINE void ldy_ix(m68_state_t *m68_state);
INLINE void leas(m68_state_t *m68_state);
INLINE void leau(m68_state_t *m68_state);
INLINE void leax(m68_state_t *m68_state);
INLINE void leay(m68_state_t *m68_state);
INLINE void lsra(m68_state_t *m68_state);
INLINE void lsrb(m68_state_t *m68_state);
INLINE void lsr_di(m68_state_t *m68_state);
INLINE void lsrd(m68_state_t *m68_state);
INLINE void lsr_ex(m68_state_t *m68_state);
INLINE void lsr_ix(m68_state_t *m68_state);
INLINE void lsrw(m68_state_t *m68_state);
INLINE void muld_di(m68_state_t *m68_state);
INLINE void muld_ex(m68_state_t *m68_state);
INLINE void muld_im(m68_state_t *m68_state);
INLINE void muld_ix(m68_state_t *m68_state);
INLINE void mul(m68_state_t *m68_state);
INLINE void nega(m68_state_t *m68_state);
INLINE void negb(m68_state_t *m68_state);
INLINE void neg_di(m68_state_t *m68_state);
INLINE void negd(m68_state_t *m68_state);
INLINE void neg_ex(m68_state_t *m68_state);
INLINE void neg_ix(m68_state_t *m68_state);
INLINE void nop(m68_state_t *m68_state);
INLINE void oim_di(m68_state_t *m68_state);
INLINE void oim_ex(m68_state_t *m68_state);
INLINE void oim_ix(m68_state_t *m68_state);
INLINE void ora_di(m68_state_t *m68_state);
INLINE void ora_ex(m68_state_t *m68_state);
INLINE void ora_im(m68_state_t *m68_state);
INLINE void ora_ix(m68_state_t *m68_state);
INLINE void orb_di(m68_state_t *m68_state);
INLINE void orb_ex(m68_state_t *m68_state);
INLINE void orb_im(m68_state_t *m68_state);
INLINE void orb_ix(m68_state_t *m68_state);
INLINE void orcc(m68_state_t *m68_state);
INLINE void ord_di(m68_state_t *m68_state);
INLINE void ord_ex(m68_state_t *m68_state);
INLINE void ord_im(m68_state_t *m68_state);
INLINE void ord_ix(m68_state_t *m68_state);
INLINE void orr(m68_state_t *m68_state);
INLINE void pref10(m68_state_t *m68_state);
INLINE void pref11(m68_state_t *m68_state);
INLINE void pshs(m68_state_t *m68_state);
INLINE void pshsw(m68_state_t *m68_state);
INLINE void pshu(m68_state_t *m68_state);
INLINE void pshuw(m68_state_t *m68_state);
INLINE void puls(m68_state_t *m68_state);
INLINE void pulsw(m68_state_t *m68_state);
INLINE void pulu(m68_state_t *m68_state);
INLINE void puluw(m68_state_t *m68_state);
INLINE void rola(m68_state_t *m68_state);
INLINE void rolb(m68_state_t *m68_state);
INLINE void rol_di(m68_state_t *m68_state);
INLINE void rold(m68_state_t *m68_state);
INLINE void rol_ex(m68_state_t *m68_state);
INLINE void rol_ix(m68_state_t *m68_state);
INLINE void rolw(m68_state_t *m68_state);
INLINE void rora(m68_state_t *m68_state);
INLINE void rorb(m68_state_t *m68_state);
INLINE void ror_di(m68_state_t *m68_state);
INLINE void rord(m68_state_t *m68_state);
INLINE void ror_ex(m68_state_t *m68_state);
INLINE void ror_ix(m68_state_t *m68_state);
INLINE void rorw(m68_state_t *m68_state);
INLINE void rti(m68_state_t *m68_state);
INLINE void rts(m68_state_t *m68_state);
INLINE void sbca_di(m68_state_t *m68_state);
INLINE void sbca_ex(m68_state_t *m68_state);
INLINE void sbca_im(m68_state_t *m68_state);
INLINE void sbca_ix(m68_state_t *m68_state);
INLINE void sbcb_di(m68_state_t *m68_state);
INLINE void sbcb_ex(m68_state_t *m68_state);
INLINE void sbcb_im(m68_state_t *m68_state);
INLINE void sbcb_ix(m68_state_t *m68_state);
INLINE void sbcd_di(m68_state_t *m68_state);
INLINE void sbcd_ex(m68_state_t *m68_state);
INLINE void sbcd_im(m68_state_t *m68_state);
INLINE void sbcd_ix(m68_state_t *m68_state);
INLINE void sbcr(m68_state_t *m68_state);
INLINE void sex(m68_state_t *m68_state);
INLINE void sexw(m68_state_t *m68_state);
INLINE void sta_di(m68_state_t *m68_state);
INLINE void sta_ex(m68_state_t *m68_state);
INLINE void sta_ix(m68_state_t *m68_state);
INLINE void stb_di(m68_state_t *m68_state);
INLINE void stb_ex(m68_state_t *m68_state);
INLINE void stb_ix(m68_state_t *m68_state);
INLINE void stbt(m68_state_t *m68_state);
INLINE void std_di(m68_state_t *m68_state);
INLINE void std_ex(m68_state_t *m68_state);
INLINE void std_ix(m68_state_t *m68_state);
INLINE void ste_di(m68_state_t *m68_state);
INLINE void ste_ex(m68_state_t *m68_state);
INLINE void ste_ix(m68_state_t *m68_state);
INLINE void stf_di(m68_state_t *m68_state);
INLINE void stf_ex(m68_state_t *m68_state);
INLINE void stf_ix(m68_state_t *m68_state);
INLINE void stq_di(m68_state_t *m68_state);
INLINE void stq_ex(m68_state_t *m68_state);
INLINE void stq_ix(m68_state_t *m68_state);
INLINE void sts_di(m68_state_t *m68_state);
INLINE void sts_ex(m68_state_t *m68_state);
INLINE void sts_ix(m68_state_t *m68_state);
INLINE void stu_di(m68_state_t *m68_state);
INLINE void stu_ex(m68_state_t *m68_state);
INLINE void stu_ix(m68_state_t *m68_state);
INLINE void stw_di(m68_state_t *m68_state);
INLINE void stw_ex(m68_state_t *m68_state);
INLINE void stw_ix(m68_state_t *m68_state);
INLINE void stx_di(m68_state_t *m68_state);
INLINE void stx_ex(m68_state_t *m68_state);
INLINE void stx_ix(m68_state_t *m68_state);
INLINE void sty_di(m68_state_t *m68_state);
INLINE void sty_ex(m68_state_t *m68_state);
INLINE void sty_ix(m68_state_t *m68_state);
INLINE void suba_di(m68_state_t *m68_state);
INLINE void suba_ex(m68_state_t *m68_state);
INLINE void suba_im(m68_state_t *m68_state);
INLINE void suba_ix(m68_state_t *m68_state);
INLINE void subb_di(m68_state_t *m68_state);
INLINE void subb_ex(m68_state_t *m68_state);
INLINE void subb_im(m68_state_t *m68_state);
INLINE void subb_ix(m68_state_t *m68_state);
INLINE void subd_di(m68_state_t *m68_state);
INLINE void subd_ex(m68_state_t *m68_state);
INLINE void subd_im(m68_state_t *m68_state);
INLINE void subd_ix(m68_state_t *m68_state);
INLINE void sube_di(m68_state_t *m68_state);
INLINE void sube_ex(m68_state_t *m68_state);
INLINE void sube_im(m68_state_t *m68_state);
INLINE void sube_ix(m68_state_t *m68_state);
INLINE void subf_di(m68_state_t *m68_state);
INLINE void subf_ex(m68_state_t *m68_state);
INLINE void subf_im(m68_state_t *m68_state);
INLINE void subf_ix(m68_state_t *m68_state);
INLINE void subr(m68_state_t *m68_state);
INLINE void subw_di(m68_state_t *m68_state);
INLINE void subw_ex(m68_state_t *m68_state);
INLINE void subw_im(m68_state_t *m68_state);
INLINE void subw_ix(m68_state_t *m68_state);
INLINE void swi2(m68_state_t *m68_state);
INLINE void swi3(m68_state_t *m68_state);
INLINE void swi(m68_state_t *m68_state);
INLINE void sync(m68_state_t *m68_state);
INLINE void tfmcp(m68_state_t *m68_state);
INLINE void tfmmm(m68_state_t *m68_state);
INLINE void tfmpc(m68_state_t *m68_state);
INLINE void tfmpp(m68_state_t *m68_state);
INLINE void tfr(m68_state_t *m68_state);
INLINE void tim_di(m68_state_t *m68_state);
INLINE void tim_ex(m68_state_t *m68_state);
INLINE void tim_ix(m68_state_t *m68_state);
INLINE void tsta(m68_state_t *m68_state);
INLINE void tstb(m68_state_t *m68_state);
INLINE void tst_di(m68_state_t *m68_state);
INLINE void tstd(m68_state_t *m68_state);
INLINE void tste(m68_state_t *m68_state);
INLINE void tst_ex(m68_state_t *m68_state);
INLINE void tstf(m68_state_t *m68_state);
INLINE void tst_ix(m68_state_t *m68_state);
INLINE void tstw(m68_state_t *m68_state);
static const UINT8 flags8i[256]= /* increment */
{
@ -650,9 +650,9 @@ static const UINT8 ccounts_page11_na[256] = /* Cycle Counts Page 11, Native 6
/* 0xFX */ 5, 5, IIP1, IIP1, IIP1, IIP1, 5, 5, IIP1, IIP1, IIP1, 5, IIP1, IIP1, IIP1, IIP1
};
#ifndef BIG_SWITCH
#if !BIG_SWITCH
static void (*const hd6309_main[0x100])(void) = {
static void (*const hd6309_main[0x100])(m68_state_t *) = {
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
@ -705,7 +705,7 @@ static void (*const hd6309_main[0x100])(void) = {
eorb_ex, adcb_ex, orb_ex, addb_ex, ldd_ex, std_ex, ldu_ex, stu_ex
};
static void (*const hd6309_page01[0x100])(void) = {
static void (*const hd6309_page01[0x100])(m68_state_t *) = {
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
@ -757,7 +757,7 @@ static void (*const hd6309_page01[0x100])(void) = {
/* 0xFX */ IIError, IIError, IIError, IIError, IIError, IIError, IIError, IIError,
IIError, IIError, IIError, IIError, ldq_ex, stq_ex, lds_ex, sts_ex
};
static void (*const hd6309_page11[0x100])(void) = {
static void (*const hd6309_page11[0x100])(m68_state_t *) = {
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */

File diff suppressed because it is too large Load Diff

View File

@ -52,4 +52,6 @@ CPU_GET_INFO( hd6309 );
# define TRUE (!FALSE)
#endif
CPU_DISASSEMBLE( hd6309 );
#endif /* __HD6309_H__ */

File diff suppressed because it is too large Load Diff

View File

@ -1,257 +1,255 @@
INLINE void aba(void);
INLINE void abx(void);
INLINE void adca_di(void);
INLINE void adca_ex(void);
INLINE void adca_im(void);
INLINE void adca_ix(void);
INLINE void adcb_di(void);
INLINE void adcb_ex(void);
INLINE void adcb_im(void);
INLINE void adcb_ix(void);
INLINE void adcx_im(void);
INLINE void adda_di(void);
INLINE void adda_ex(void);
INLINE void adda_im(void);
INLINE void adda_ix(void);
INLINE void addb_di(void);
INLINE void addb_ex(void);
INLINE void addb_im(void);
INLINE void addb_ix(void);
INLINE void addd_di(void);
INLINE void addd_ex(void);
INLINE void addx_ex(void);
INLINE void addd_im(void);
INLINE void addd_ix(void);
INLINE void aim_di(void);
INLINE void aim_ix(void);
INLINE void anda_di(void);
INLINE void anda_ex(void);
INLINE void anda_im(void);
INLINE void anda_ix(void);
INLINE void andb_di(void);
INLINE void andb_ex(void);
INLINE void andb_im(void);
INLINE void andb_ix(void);
INLINE void asl_ex(void);
INLINE void asl_ix(void);
INLINE void asla(void);
INLINE void aslb(void);
INLINE void asld(void);
INLINE void asr_ex(void);
INLINE void asr_ix(void);
INLINE void asra(void);
INLINE void asrb(void);
INLINE void bcc(void);
INLINE void bcs(void);
INLINE void beq(void);
INLINE void bge(void);
INLINE void bgt(void);
INLINE void bhi(void);
INLINE void bita_di(void);
INLINE void bita_ex(void);
INLINE void bita_im(void);
INLINE void bita_ix(void);
INLINE void bitb_di(void);
INLINE void bitb_ex(void);
INLINE void bitb_im(void);
INLINE void bitb_ix(void);
INLINE void ble(void);
INLINE void bls(void);
INLINE void blt(void);
INLINE void bmi(void);
INLINE void bne(void);
INLINE void bpl(void);
INLINE void bra(void);
INLINE void brn(void);
INLINE void bsr(void);
INLINE void bvc(void);
INLINE void bvs(void);
INLINE void cba(void);
INLINE void clc(void);
INLINE void cli(void);
INLINE void clr_ex(void);
INLINE void clr_ix(void);
INLINE void clra(void);
INLINE void clrb(void);
INLINE void clv(void);
INLINE void cmpa_di(void);
INLINE void cmpa_ex(void);
INLINE void cmpa_im(void);
INLINE void cmpa_ix(void);
INLINE void cmpb_di(void);
INLINE void cmpb_ex(void);
INLINE void cmpb_im(void);
INLINE void cmpb_ix(void);
INLINE void cmpx_di(void);
INLINE void cmpx_ex(void);
INLINE void cmpx_im(void);
INLINE void cmpx_ix(void);
INLINE void com_ex(void);
INLINE void com_ix(void);
INLINE void coma(void);
INLINE void comb(void);
INLINE void daa(void);
INLINE void dec_ex(void);
INLINE void dec_ix(void);
INLINE void deca(void);
INLINE void decb(void);
INLINE void des(void);
INLINE void dex(void);
INLINE void eim_di(void);
INLINE void eim_ix(void);
INLINE void eora_di(void);
INLINE void eora_ex(void);
INLINE void eora_im(void);
INLINE void eora_ix(void);
INLINE void eorb_di(void);
INLINE void eorb_ex(void);
INLINE void eorb_im(void);
INLINE void eorb_ix(void);
//INLINE void illegal(void);
static void illegal(void);
INLINE void inc_ex(void);
INLINE void inc_ix(void);
INLINE void inca(void);
INLINE void incb(void);
INLINE void ins(void);
INLINE void inx(void);
INLINE void jmp_ex(void);
INLINE void jmp_ix(void);
INLINE void jsr_di(void);
INLINE void jsr_ex(void);
INLINE void jsr_ix(void);
INLINE void lda_di(void);
INLINE void lda_ex(void);
INLINE void lda_im(void);
INLINE void lda_ix(void);
INLINE void ldb_di(void);
INLINE void ldb_ex(void);
INLINE void ldb_im(void);
INLINE void ldb_ix(void);
INLINE void ldd_di(void);
INLINE void ldd_ex(void);
INLINE void ldd_im(void);
INLINE void ldd_ix(void);
INLINE void lds_di(void);
INLINE void lds_ex(void);
INLINE void lds_im(void);
INLINE void lds_ix(void);
INLINE void ldx_di(void);
INLINE void ldx_ex(void);
INLINE void ldx_im(void);
INLINE void ldx_ix(void);
INLINE void lsr_ex(void);
INLINE void lsr_ix(void);
INLINE void lsra(void);
INLINE void lsrb(void);
INLINE void lsrd(void);
INLINE void mul(void);
INLINE void neg_ex(void);
INLINE void neg_ix(void);
INLINE void nega(void);
INLINE void negb(void);
INLINE void nop(void);
INLINE void oim_di(void);
INLINE void oim_ix(void);
INLINE void ora_di(void);
INLINE void ora_ex(void);
INLINE void ora_im(void);
INLINE void ora_ix(void);
INLINE void orb_di(void);
INLINE void orb_ex(void);
INLINE void orb_im(void);
INLINE void orb_ix(void);
INLINE void psha(void);
INLINE void pshb(void);
INLINE void pshx(void);
INLINE void pula(void);
INLINE void pulb(void);
INLINE void pulx(void);
INLINE void rol_ex(void);
INLINE void rol_ix(void);
INLINE void rola(void);
INLINE void rolb(void);
INLINE void ror_ex(void);
INLINE void ror_ix(void);
INLINE void rora(void);
INLINE void rorb(void);
INLINE void rti(void);
INLINE void rts(void);
INLINE void sba(void);
INLINE void sbca_di(void);
INLINE void sbca_ex(void);
INLINE void sbca_im(void);
INLINE void sbca_ix(void);
INLINE void sbcb_di(void);
INLINE void sbcb_ex(void);
INLINE void sbcb_im(void);
INLINE void sbcb_ix(void);
INLINE void sec(void);
INLINE void sei(void);
INLINE void sev(void);
INLINE void aba(m68_state_t *m68_state);
INLINE void abx(m68_state_t *m68_state);
INLINE void adca_di(m68_state_t *m68_state);
INLINE void adca_ex(m68_state_t *m68_state);
INLINE void adca_im(m68_state_t *m68_state);
INLINE void adca_ix(m68_state_t *m68_state);
INLINE void adcb_di(m68_state_t *m68_state);
INLINE void adcb_ex(m68_state_t *m68_state);
INLINE void adcb_im(m68_state_t *m68_state);
INLINE void adcb_ix(m68_state_t *m68_state);
INLINE void adcx_im(m68_state_t *m68_state);
INLINE void adda_di(m68_state_t *m68_state);
INLINE void adda_ex(m68_state_t *m68_state);
INLINE void adda_im(m68_state_t *m68_state);
INLINE void adda_ix(m68_state_t *m68_state);
INLINE void addb_di(m68_state_t *m68_state);
INLINE void addb_ex(m68_state_t *m68_state);
INLINE void addb_im(m68_state_t *m68_state);
INLINE void addb_ix(m68_state_t *m68_state);
INLINE void addd_di(m68_state_t *m68_state);
INLINE void addd_ex(m68_state_t *m68_state);
INLINE void addx_ex(m68_state_t *m68_state);
INLINE void addd_im(m68_state_t *m68_state);
INLINE void addd_ix(m68_state_t *m68_state);
INLINE void aim_di(m68_state_t *m68_state);
INLINE void aim_ix(m68_state_t *m68_state);
INLINE void anda_di(m68_state_t *m68_state);
INLINE void anda_ex(m68_state_t *m68_state);
INLINE void anda_im(m68_state_t *m68_state);
INLINE void anda_ix(m68_state_t *m68_state);
INLINE void andb_di(m68_state_t *m68_state);
INLINE void andb_ex(m68_state_t *m68_state);
INLINE void andb_im(m68_state_t *m68_state);
INLINE void andb_ix(m68_state_t *m68_state);
INLINE void asl_ex(m68_state_t *m68_state);
INLINE void asl_ix(m68_state_t *m68_state);
INLINE void asla(m68_state_t *m68_state);
INLINE void aslb(m68_state_t *m68_state);
INLINE void asld(m68_state_t *m68_state);
INLINE void asr_ex(m68_state_t *m68_state);
INLINE void asr_ix(m68_state_t *m68_state);
INLINE void asra(m68_state_t *m68_state);
INLINE void asrb(m68_state_t *m68_state);
INLINE void bcc(m68_state_t *m68_state);
INLINE void bcs(m68_state_t *m68_state);
INLINE void beq(m68_state_t *m68_state);
INLINE void bge(m68_state_t *m68_state);
INLINE void bgt(m68_state_t *m68_state);
INLINE void bhi(m68_state_t *m68_state);
INLINE void bita_di(m68_state_t *m68_state);
INLINE void bita_ex(m68_state_t *m68_state);
INLINE void bita_im(m68_state_t *m68_state);
INLINE void bita_ix(m68_state_t *m68_state);
INLINE void bitb_di(m68_state_t *m68_state);
INLINE void bitb_ex(m68_state_t *m68_state);
INLINE void bitb_im(m68_state_t *m68_state);
INLINE void bitb_ix(m68_state_t *m68_state);
INLINE void ble(m68_state_t *m68_state);
INLINE void bls(m68_state_t *m68_state);
INLINE void blt(m68_state_t *m68_state);
INLINE void bmi(m68_state_t *m68_state);
INLINE void bne(m68_state_t *m68_state);
INLINE void bpl(m68_state_t *m68_state);
INLINE void bra(m68_state_t *m68_state);
INLINE void brn(m68_state_t *m68_state);
INLINE void bsr(m68_state_t *m68_state);
INLINE void bvc(m68_state_t *m68_state);
INLINE void bvs(m68_state_t *m68_state);
INLINE void cba(m68_state_t *m68_state);
INLINE void clc(m68_state_t *m68_state);
INLINE void cli(m68_state_t *m68_state);
INLINE void clr_ex(m68_state_t *m68_state);
INLINE void clr_ix(m68_state_t *m68_state);
INLINE void clra(m68_state_t *m68_state);
INLINE void clrb(m68_state_t *m68_state);
INLINE void clv(m68_state_t *m68_state);
INLINE void cmpa_di(m68_state_t *m68_state);
INLINE void cmpa_ex(m68_state_t *m68_state);
INLINE void cmpa_im(m68_state_t *m68_state);
INLINE void cmpa_ix(m68_state_t *m68_state);
INLINE void cmpb_di(m68_state_t *m68_state);
INLINE void cmpb_ex(m68_state_t *m68_state);
INLINE void cmpb_im(m68_state_t *m68_state);
INLINE void cmpb_ix(m68_state_t *m68_state);
INLINE void cmpx_di(m68_state_t *m68_state);
INLINE void cmpx_ex(m68_state_t *m68_state);
INLINE void cmpx_im(m68_state_t *m68_state);
INLINE void cmpx_ix(m68_state_t *m68_state);
INLINE void com_ex(m68_state_t *m68_state);
INLINE void com_ix(m68_state_t *m68_state);
INLINE void coma(m68_state_t *m68_state);
INLINE void comb(m68_state_t *m68_state);
INLINE void daa(m68_state_t *m68_state);
INLINE void dec_ex(m68_state_t *m68_state);
INLINE void dec_ix(m68_state_t *m68_state);
INLINE void deca(m68_state_t *m68_state);
INLINE void decb(m68_state_t *m68_state);
INLINE void des(m68_state_t *m68_state);
INLINE void dex(m68_state_t *m68_state);
INLINE void eim_di(m68_state_t *m68_state);
INLINE void eim_ix(m68_state_t *m68_state);
INLINE void eora_di(m68_state_t *m68_state);
INLINE void eora_ex(m68_state_t *m68_state);
INLINE void eora_im(m68_state_t *m68_state);
INLINE void eora_ix(m68_state_t *m68_state);
INLINE void eorb_di(m68_state_t *m68_state);
INLINE void eorb_ex(m68_state_t *m68_state);
INLINE void eorb_im(m68_state_t *m68_state);
INLINE void eorb_ix(m68_state_t *m68_state);
INLINE void illegal(m68_state_t *m68_state);
INLINE void inc_ex(m68_state_t *m68_state);
INLINE void inc_ix(m68_state_t *m68_state);
INLINE void inca(m68_state_t *m68_state);
INLINE void incb(m68_state_t *m68_state);
INLINE void ins(m68_state_t *m68_state);
INLINE void inx(m68_state_t *m68_state);
INLINE void jmp_ex(m68_state_t *m68_state);
INLINE void jmp_ix(m68_state_t *m68_state);
INLINE void jsr_di(m68_state_t *m68_state);
INLINE void jsr_ex(m68_state_t *m68_state);
INLINE void jsr_ix(m68_state_t *m68_state);
INLINE void lda_di(m68_state_t *m68_state);
INLINE void lda_ex(m68_state_t *m68_state);
INLINE void lda_im(m68_state_t *m68_state);
INLINE void lda_ix(m68_state_t *m68_state);
INLINE void ldb_di(m68_state_t *m68_state);
INLINE void ldb_ex(m68_state_t *m68_state);
INLINE void ldb_im(m68_state_t *m68_state);
INLINE void ldb_ix(m68_state_t *m68_state);
INLINE void ldd_di(m68_state_t *m68_state);
INLINE void ldd_ex(m68_state_t *m68_state);
INLINE void ldd_im(m68_state_t *m68_state);
INLINE void ldd_ix(m68_state_t *m68_state);
INLINE void lds_di(m68_state_t *m68_state);
INLINE void lds_ex(m68_state_t *m68_state);
INLINE void lds_im(m68_state_t *m68_state);
INLINE void lds_ix(m68_state_t *m68_state);
INLINE void ldx_di(m68_state_t *m68_state);
INLINE void ldx_ex(m68_state_t *m68_state);
INLINE void ldx_im(m68_state_t *m68_state);
INLINE void ldx_ix(m68_state_t *m68_state);
INLINE void lsr_ex(m68_state_t *m68_state);
INLINE void lsr_ix(m68_state_t *m68_state);
INLINE void lsra(m68_state_t *m68_state);
INLINE void lsrb(m68_state_t *m68_state);
INLINE void lsrd(m68_state_t *m68_state);
INLINE void mul(m68_state_t *m68_state);
INLINE void neg_ex(m68_state_t *m68_state);
INLINE void neg_ix(m68_state_t *m68_state);
INLINE void nega(m68_state_t *m68_state);
INLINE void negb(m68_state_t *m68_state);
INLINE void nop(m68_state_t *m68_state);
INLINE void oim_di(m68_state_t *m68_state);
INLINE void oim_ix(m68_state_t *m68_state);
INLINE void ora_di(m68_state_t *m68_state);
INLINE void ora_ex(m68_state_t *m68_state);
INLINE void ora_im(m68_state_t *m68_state);
INLINE void ora_ix(m68_state_t *m68_state);
INLINE void orb_di(m68_state_t *m68_state);
INLINE void orb_ex(m68_state_t *m68_state);
INLINE void orb_im(m68_state_t *m68_state);
INLINE void orb_ix(m68_state_t *m68_state);
INLINE void psha(m68_state_t *m68_state);
INLINE void pshb(m68_state_t *m68_state);
INLINE void pshx(m68_state_t *m68_state);
INLINE void pula(m68_state_t *m68_state);
INLINE void pulb(m68_state_t *m68_state);
INLINE void pulx(m68_state_t *m68_state);
INLINE void rol_ex(m68_state_t *m68_state);
INLINE void rol_ix(m68_state_t *m68_state);
INLINE void rola(m68_state_t *m68_state);
INLINE void rolb(m68_state_t *m68_state);
INLINE void ror_ex(m68_state_t *m68_state);
INLINE void ror_ix(m68_state_t *m68_state);
INLINE void rora(m68_state_t *m68_state);
INLINE void rorb(m68_state_t *m68_state);
INLINE void rti(m68_state_t *m68_state);
INLINE void rts(m68_state_t *m68_state);
INLINE void sba(m68_state_t *m68_state);
INLINE void sbca_di(m68_state_t *m68_state);
INLINE void sbca_ex(m68_state_t *m68_state);
INLINE void sbca_im(m68_state_t *m68_state);
INLINE void sbca_ix(m68_state_t *m68_state);
INLINE void sbcb_di(m68_state_t *m68_state);
INLINE void sbcb_ex(m68_state_t *m68_state);
INLINE void sbcb_im(m68_state_t *m68_state);
INLINE void sbcb_ix(m68_state_t *m68_state);
INLINE void sec(m68_state_t *m68_state);
INLINE void sei(m68_state_t *m68_state);
INLINE void sev(m68_state_t *m68_state);
#if (HAS_HD63701)
INLINE void slp(void);
INLINE void slp(m68_state_t *m68_state);
#endif
INLINE void sta_di(void);
INLINE void sta_ex(void);
INLINE void sta_im(void);
INLINE void sta_ix(void);
INLINE void stb_di(void);
INLINE void stb_ex(void);
INLINE void stb_im(void);
INLINE void stb_ix(void);
INLINE void std_di(void);
INLINE void std_ex(void);
INLINE void std_im(void);
INLINE void std_ix(void);
INLINE void sts_di(void);
INLINE void sts_ex(void);
INLINE void sts_im(void);
INLINE void sts_ix(void);
INLINE void stx_di(void);
INLINE void stx_ex(void);
INLINE void stx_im(void);
INLINE void stx_ix(void);
INLINE void suba_di(void);
INLINE void suba_ex(void);
INLINE void suba_im(void);
INLINE void suba_ix(void);
INLINE void subb_di(void);
INLINE void subb_ex(void);
INLINE void subb_im(void);
INLINE void subb_ix(void);
INLINE void subd_di(void);
INLINE void subd_ex(void);
INLINE void subd_im(void);
INLINE void subd_ix(void);
INLINE void swi(void);
INLINE void tab(void);
INLINE void tap(void);
INLINE void tba(void);
INLINE void tim_di(void);
INLINE void tim_ix(void);
INLINE void tpa(void);
INLINE void tst_ex(void);
INLINE void tst_ix(void);
INLINE void tsta(void);
INLINE void tstb(void);
INLINE void tsx(void);
INLINE void txs(void);
INLINE void undoc1(void);
INLINE void undoc2(void);
INLINE void wai(void);
INLINE void xgdx(void);
INLINE void sta_di(m68_state_t *m68_state);
INLINE void sta_ex(m68_state_t *m68_state);
INLINE void sta_im(m68_state_t *m68_state);
INLINE void sta_ix(m68_state_t *m68_state);
INLINE void stb_di(m68_state_t *m68_state);
INLINE void stb_ex(m68_state_t *m68_state);
INLINE void stb_im(m68_state_t *m68_state);
INLINE void stb_ix(m68_state_t *m68_state);
INLINE void std_di(m68_state_t *m68_state);
INLINE void std_ex(m68_state_t *m68_state);
INLINE void std_im(m68_state_t *m68_state);
INLINE void std_ix(m68_state_t *m68_state);
INLINE void sts_di(m68_state_t *m68_state);
INLINE void sts_ex(m68_state_t *m68_state);
INLINE void sts_im(m68_state_t *m68_state);
INLINE void sts_ix(m68_state_t *m68_state);
INLINE void stx_di(m68_state_t *m68_state);
INLINE void stx_ex(m68_state_t *m68_state);
INLINE void stx_im(m68_state_t *m68_state);
INLINE void stx_ix(m68_state_t *m68_state);
INLINE void suba_di(m68_state_t *m68_state);
INLINE void suba_ex(m68_state_t *m68_state);
INLINE void suba_im(m68_state_t *m68_state);
INLINE void suba_ix(m68_state_t *m68_state);
INLINE void subb_di(m68_state_t *m68_state);
INLINE void subb_ex(m68_state_t *m68_state);
INLINE void subb_im(m68_state_t *m68_state);
INLINE void subb_ix(m68_state_t *m68_state);
INLINE void subd_di(m68_state_t *m68_state);
INLINE void subd_ex(m68_state_t *m68_state);
INLINE void subd_im(m68_state_t *m68_state);
INLINE void subd_ix(m68_state_t *m68_state);
INLINE void swi(m68_state_t *m68_state);
INLINE void tab(m68_state_t *m68_state);
INLINE void tap(m68_state_t *m68_state);
INLINE void tba(m68_state_t *m68_state);
INLINE void tim_di(m68_state_t *m68_state);
INLINE void tim_ix(m68_state_t *m68_state);
INLINE void tpa(m68_state_t *m68_state);
INLINE void tst_ex(m68_state_t *m68_state);
INLINE void tst_ix(m68_state_t *m68_state);
INLINE void tsta(m68_state_t *m68_state);
INLINE void tstb(m68_state_t *m68_state);
INLINE void tsx(m68_state_t *m68_state);
INLINE void txs(m68_state_t *m68_state);
INLINE void undoc1(m68_state_t *m68_state);
INLINE void undoc2(m68_state_t *m68_state);
INLINE void wai(m68_state_t *m68_state);
INLINE void xgdx(m68_state_t *m68_state);
INLINE void cpx_di(void);
INLINE void cpx_ex(void);
INLINE void cpx_im(void);
INLINE void cpx_ix(void);
INLINE void cpx_di(m68_state_t *m68_state);
INLINE void cpx_ex(m68_state_t *m68_state);
INLINE void cpx_im(m68_state_t *m68_state);
INLINE void cpx_ix(m68_state_t *m68_state);
#if (HAS_HD63701)
//INLINE void trap(void);
static void trap(void);
INLINE void trap(m68_state_t *m68_state);
#endif
static void (*const m6800_insn[0x100])(void) = {
static void (*const m6800_insn[0x100])(m68_state_t *m68_state) = {
illegal,nop, illegal,illegal,illegal,illegal,tap, tpa,
inx, dex, clv, sev, clc, sec, cli, sei,
sba, cba, illegal,illegal,illegal,illegal,tab, tba,
@ -287,7 +285,7 @@ eorb_ex,adcb_ex,orb_ex, addb_ex,illegal,illegal,ldx_ex, stx_ex
};
#if (HAS_M6801||HAS_M6803)
static void (*const m6803_insn[0x100])(void) = {
static void (*const m6803_insn[0x100])(m68_state_t *m68_state) = {
illegal,nop, illegal,illegal,lsrd, asld, tap, tpa,
inx, dex, clv, sev, clc, sec, cli, sei,
sba, cba, illegal,illegal,illegal,illegal,tab, tba,
@ -324,7 +322,7 @@ eorb_ex,adcb_ex,orb_ex, addb_ex,ldd_ex, std_ex, ldx_ex, stx_ex
#endif
#if (HAS_HD63701)
static void (*const hd63701_insn[0x100])(void) = {
static void (*const hd63701_insn[0x100])(m68_state_t *m68_state) = {
trap ,nop, trap ,trap ,lsrd, asld, tap, tpa,
inx, dex, clv, sev, clc, sec, cli, sei,
sba, cba, undoc1, undoc2, trap ,trap ,tab, tba,
@ -361,7 +359,7 @@ eorb_ex,adcb_ex,orb_ex, addb_ex,ldd_ex, std_ex, ldx_ex, stx_ex
#endif
#if (HAS_NSC8105)
static void (*const nsc8105_insn[0x100])(void) = {
static void (*const nsc8105_insn[0x100])(m68_state_t *m68_state) = {
illegal,illegal,nop, illegal,illegal,tap, illegal,tpa,
inx, clv, dex, sev, clc, cli, sec, sei,
sba, illegal,cba, illegal,illegal,tab, illegal,tba,

File diff suppressed because it is too large Load Diff

View File

@ -13,19 +13,91 @@ enum
M6800_WAI_STATE
};
#define M6800_WAI 8 /* set when WAI is waiting for an interrupt */
#define M6800_SLP 0x10 /* HD63701 only */
#define M6800_IRQ_LINE 0 /* IRQ line number */
#define M6800_TIN_LINE 1 /* P20/Tin Input Capture line (eddge sense) */
enum
{
M6800_IRQ_LINE = 0, /* IRQ line number */
M6800_TIN_LINE /* P20/Tin Input Capture line (eddge sense) */
/* Active eddge is selecrable by internal reg. */
/* raise eddge : CLEAR_LINE -> ASSERT_LINE */
/* fall eddge : ASSERT_LINE -> CLEAR_LINE */
/* it is usuali to use PULSE_LINE state */
};
extern CPU_GET_INFO( m6800 );
#if (HAS_M6801||HAS_M6803||HAS_HD63701)
/* By default, on a port write port bits which are not set as output in the DDR */
/* are set to the value returned by a read from the same port. If you need to */
/* know the DDR for e.g. port 1, do m6803_internal_registers_r(M6801_DDR1) */
enum
{
M6803_DDR1 = 0x00,
M6803_DDR2 = 0x01,
M6803_DDR3 = 0x04,
M6803_DDR4 = 0x05
};
enum
{
M6803_PORT1 = 0x100,
M6803_PORT2,
M6803_PORT3,
M6803_PORT4
};
#endif
CPU_GET_INFO( m6800 );
#if (HAS_M6801)
CPU_GET_INFO( m6801 );
#endif
#if (HAS_M6802)
CPU_GET_INFO( m6802 );
#endif
#if (HAS_M6803)
CPU_GET_INFO( m6803 );
#endif
#if (HAS_M6808)
CPU_GET_INFO( m6808 );
#endif
#if (HAS_HD63701)
CPU_GET_INFO( hd63701 );
/* FIMXE: these should be replaced to use m6803 ones */
#define HD63701_DDR1 M6803_DDR1
#define HD63701_DDR2 M6803_DDR2
#define HD63701_DDR3 M6803_DDR3
#define HD63701_DDR4 M6803_DDR4
#define HD63701_PORT1 M6803_PORT1
#define HD63701_PORT2 M6803_PORT2
#define HD63701_PORT3 M6803_PORT3
#define HD63701_PORT4 M6803_PORT4
READ8_HANDLER( hd63701_internal_registers_r );
WRITE8_HANDLER( hd63701_internal_registers_w );
#endif
#if (HAS_NSC8105)
CPU_GET_INFO( nsc8105 );
#endif
CPU_DISASSEMBLE( m6800 );
CPU_DISASSEMBLE( m6801 );
CPU_DISASSEMBLE( m6802 );
CPU_DISASSEMBLE( m6803 );
CPU_DISASSEMBLE( m6808 );
CPU_DISASSEMBLE( hd63701 );
CPU_DISASSEMBLE( nsc8105 );
#if 0
/* Wonder if we need it */
/****************************************************************************
* For now make the 6801 using the m6800 variables and functions
****************************************************************************/
@ -144,8 +216,6 @@ extern CPU_GET_INFO( m6808 );
extern CPU_GET_INFO( hd63701 );
void hd63701_trap_pc(void);
#define HD63701_DDR1 M6803_DDR1
#define HD63701_DDR2 M6803_DDR2
#define HD63701_DDR3 M6803_DDR3
@ -182,44 +252,6 @@ WRITE8_HANDLER( hd63701_internal_registers_w );
extern CPU_GET_INFO( nsc8105 );
#endif
/****************************************************************************/
/* Read a byte from given memory location */
/****************************************************************************/
/* ASG 971005 -- changed to program_read_byte_8/program_write_byte_8 */
#define M6800_RDMEM(Addr) ((unsigned)program_read_byte_8be(Addr))
/****************************************************************************/
/* Write a byte to given memory location */
/****************************************************************************/
#define M6800_WRMEM(Addr,Value) (program_write_byte_8be(Addr,Value))
/****************************************************************************/
/* M6800_RDOP() is identical to M6800_RDMEM() except it is used for reading */
/* opcodes. In case of system with memory mapped I/O, this function can be */
/* used to greatly speed up emulation */
/****************************************************************************/
#define M6800_RDOP(Addr) ((unsigned)cpu_readop(Addr))
/****************************************************************************/
/* M6800_RDOP_ARG() is identical to M6800_RDOP() but it's used for reading */
/* opcode arguments. This difference can be used to support systems that */
/* use different encoding mechanisms for opcodes and opcode arguments */
/****************************************************************************/
#define M6800_RDOP_ARG(Addr) ((unsigned)cpu_readop_arg(Addr))
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE (!FALSE)
#endif
CPU_DISASSEMBLE( m6800 );
CPU_DISASSEMBLE( m6801 );
CPU_DISASSEMBLE( m6802 );
CPU_DISASSEMBLE( m6803 );
CPU_DISASSEMBLE( m6808 );
CPU_DISASSEMBLE( hd63701 );
CPU_DISASSEMBLE( nsc8105 );
#endif /* __M6800_H__ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,316 +1,416 @@
INLINE void abx(void);
INLINE void adca_di(void);
INLINE void adca_ex(void);
INLINE void adca_im(void);
INLINE void adca_ix(void);
INLINE void adcb_di(void);
INLINE void adcb_ex(void);
INLINE void adcb_im(void);
INLINE void adcb_ix(void);
INLINE void adda_di(void);
INLINE void adda_ex(void);
INLINE void adda_im(void);
INLINE void adda_ix(void);
INLINE void addb_di(void);
INLINE void addb_ex(void);
INLINE void addb_im(void);
INLINE void addb_ix(void);
INLINE void addd_di(void);
INLINE void addd_ex(void);
INLINE void addd_im(void);
INLINE void addd_ix(void);
INLINE void anda_di(void);
INLINE void anda_ex(void);
INLINE void anda_im(void);
INLINE void anda_ix(void);
INLINE void andb_di(void);
INLINE void andb_ex(void);
INLINE void andb_im(void);
INLINE void andb_ix(void);
INLINE void andcc(void);
INLINE void asl_di(void);
INLINE void asl_ex(void);
INLINE void asl_ix(void);
INLINE void asla(void);
INLINE void aslb(void);
INLINE void asr_di(void);
INLINE void asr_ex(void);
INLINE void asr_ix(void);
INLINE void asra(void);
INLINE void asrb(void);
INLINE void bcc(void);
INLINE void bcs(void);
INLINE void beq(void);
INLINE void bge(void);
INLINE void bgt(void);
INLINE void bhi(void);
INLINE void bita_di(void);
INLINE void bita_ex(void);
INLINE void bita_im(void);
INLINE void bita_ix(void);
INLINE void bitb_di(void);
INLINE void bitb_ex(void);
INLINE void bitb_im(void);
INLINE void bitb_ix(void);
INLINE void ble(void);
INLINE void bls(void);
INLINE void blt(void);
INLINE void bmi(void);
INLINE void bne(void);
INLINE void bpl(void);
INLINE void bra(void);
INLINE void brn(void);
INLINE void bsr(void);
INLINE void bvc(void);
INLINE void bvs(void);
INLINE void clr_di(void);
INLINE void clr_ex(void);
INLINE void clr_ix(void);
INLINE void clra(void);
INLINE void clrb(void);
INLINE void cmpa_di(void);
INLINE void cmpa_ex(void);
INLINE void cmpa_im(void);
INLINE void cmpa_ix(void);
INLINE void cmpb_di(void);
INLINE void cmpb_ex(void);
INLINE void cmpb_im(void);
INLINE void cmpb_ix(void);
INLINE void cmpd_di(void);
INLINE void cmpd_ex(void);
INLINE void cmpd_im(void);
INLINE void cmpd_ix(void);
INLINE void cmps_di(void);
INLINE void cmps_ex(void);
INLINE void cmps_im(void);
INLINE void cmps_ix(void);
INLINE void cmpu_di(void);
INLINE void cmpu_ex(void);
INLINE void cmpu_im(void);
INLINE void cmpu_ix(void);
INLINE void cmpx_di(void);
INLINE void cmpx_ex(void);
INLINE void cmpx_im(void);
INLINE void cmpx_ix(void);
INLINE void cmpy_di(void);
INLINE void cmpy_ex(void);
INLINE void cmpy_im(void);
INLINE void cmpy_ix(void);
INLINE void com_di(void);
INLINE void com_ex(void);
INLINE void com_ix(void);
INLINE void coma(void);
INLINE void comb(void);
INLINE void cwai(void);
INLINE void daa(void);
INLINE void dec_di(void);
INLINE void dec_ex(void);
INLINE void dec_ix(void);
INLINE void deca(void);
INLINE void decb(void);
INLINE void eora_di(void);
INLINE void eora_ex(void);
INLINE void eora_im(void);
INLINE void eora_ix(void);
INLINE void eorb_di(void);
INLINE void eorb_ex(void);
INLINE void eorb_im(void);
INLINE void eorb_ix(void);
INLINE void exg(void);
INLINE void illegal(void);
INLINE void inc_di(void);
INLINE void inc_ex(void);
INLINE void inc_ix(void);
INLINE void inca(void);
INLINE void incb(void);
INLINE void jmp_di(void);
INLINE void jmp_ex(void);
INLINE void jmp_ix(void);
INLINE void jsr_di(void);
INLINE void jsr_ex(void);
INLINE void jsr_ix(void);
INLINE void lbcc(void);
INLINE void lbcs(void);
INLINE void lbeq(void);
INLINE void lbge(void);
INLINE void lbgt(void);
INLINE void lbhi(void);
INLINE void lble(void);
INLINE void lbls(void);
INLINE void lblt(void);
INLINE void lbmi(void);
INLINE void lbne(void);
INLINE void lbpl(void);
INLINE void lbra(void);
INLINE void lbrn(void);
INLINE void lbsr(void);
INLINE void lbvc(void);
INLINE void lbvs(void);
INLINE void lda_di(void);
INLINE void lda_ex(void);
INLINE void lda_im(void);
INLINE void lda_ix(void);
INLINE void ldb_di(void);
INLINE void ldb_ex(void);
INLINE void ldb_im(void);
INLINE void ldb_ix(void);
INLINE void ldd_di(void);
INLINE void ldd_ex(void);
INLINE void ldd_im(void);
INLINE void ldd_ix(void);
INLINE void lds_di(void);
INLINE void lds_ex(void);
INLINE void lds_im(void);
INLINE void lds_ix(void);
INLINE void ldu_di(void);
INLINE void ldu_ex(void);
INLINE void ldu_im(void);
INLINE void ldu_ix(void);
INLINE void ldx_di(void);
INLINE void ldx_ex(void);
INLINE void ldx_im(void);
INLINE void ldx_ix(void);
INLINE void ldy_di(void);
INLINE void ldy_ex(void);
INLINE void ldy_im(void);
INLINE void ldy_ix(void);
INLINE void leas(void);
INLINE void leau(void);
INLINE void leax(void);
INLINE void leay(void);
INLINE void lsr_di(void);
INLINE void lsr_ex(void);
INLINE void lsr_ix(void);
INLINE void lsra(void);
INLINE void lsrb(void);
INLINE void mul(void);
INLINE void neg_di(void);
INLINE void neg_ex(void);
INLINE void neg_ix(void);
INLINE void nega(void);
INLINE void negb(void);
INLINE void nop(void);
INLINE void ora_di(void);
INLINE void ora_ex(void);
INLINE void ora_im(void);
INLINE void ora_ix(void);
INLINE void orb_di(void);
INLINE void orb_ex(void);
INLINE void orb_im(void);
INLINE void orb_ix(void);
INLINE void orcc(void);
INLINE void pshs(void);
INLINE void pshu(void);
INLINE void puls(void);
INLINE void pulu(void);
INLINE void rol_di(void);
INLINE void rol_ex(void);
INLINE void rol_ix(void);
INLINE void rola(void);
INLINE void rolb(void);
INLINE void ror_di(void);
INLINE void ror_ex(void);
INLINE void ror_ix(void);
INLINE void rora(void);
INLINE void rorb(void);
INLINE void rti(void);
INLINE void rts(void);
INLINE void sbca_di(void);
INLINE void sbca_ex(void);
INLINE void sbca_im(void);
INLINE void sbca_ix(void);
INLINE void sbcb_di(void);
INLINE void sbcb_ex(void);
INLINE void sbcb_im(void);
INLINE void sbcb_ix(void);
INLINE void sex(void);
INLINE void sta_di(void);
INLINE void sta_ex(void);
INLINE void sta_im(void);
INLINE void sta_ix(void);
INLINE void stb_di(void);
INLINE void stb_ex(void);
INLINE void stb_im(void);
INLINE void stb_ix(void);
INLINE void std_di(void);
INLINE void std_ex(void);
INLINE void std_im(void);
INLINE void std_ix(void);
INLINE void sts_di(void);
INLINE void sts_ex(void);
INLINE void sts_im(void);
INLINE void sts_ix(void);
INLINE void stu_di(void);
INLINE void stu_ex(void);
INLINE void stu_im(void);
INLINE void stu_ix(void);
INLINE void stx_di(void);
INLINE void stx_ex(void);
INLINE void stx_im(void);
INLINE void stx_ix(void);
INLINE void sty_di(void);
INLINE void sty_ex(void);
INLINE void sty_im(void);
INLINE void sty_ix(void);
INLINE void suba_di(void);
INLINE void suba_ex(void);
INLINE void suba_im(void);
INLINE void suba_ix(void);
INLINE void subb_di(void);
INLINE void subb_ex(void);
INLINE void subb_im(void);
INLINE void subb_ix(void);
INLINE void subd_di(void);
INLINE void subd_ex(void);
INLINE void subd_im(void);
INLINE void subd_ix(void);
INLINE void swi(void);
INLINE void swi2(void);
INLINE void swi3(void);
INLINE void sync(void);
INLINE void tfr(void);
INLINE void tst_di(void);
INLINE void tst_ex(void);
INLINE void tst_ix(void);
INLINE void tsta(void);
INLINE void tstb(void);
INLINE void abx(m68_state_t *m68_state);
INLINE void adca_di(m68_state_t *m68_state);
INLINE void adca_ex(m68_state_t *m68_state);
INLINE void adca_im(m68_state_t *m68_state);
INLINE void adca_ix(m68_state_t *m68_state);
INLINE void adcb_di(m68_state_t *m68_state);
INLINE void adcb_ex(m68_state_t *m68_state);
INLINE void adcb_im(m68_state_t *m68_state);
INLINE void adcb_ix(m68_state_t *m68_state);
INLINE void adda_di(m68_state_t *m68_state);
INLINE void adda_ex(m68_state_t *m68_state);
INLINE void adda_im(m68_state_t *m68_state);
INLINE void adda_ix(m68_state_t *m68_state);
INLINE void addb_di(m68_state_t *m68_state);
INLINE void addb_ex(m68_state_t *m68_state);
INLINE void addb_im(m68_state_t *m68_state);
INLINE void addb_ix(m68_state_t *m68_state);
INLINE void addd_di(m68_state_t *m68_state);
INLINE void addd_ex(m68_state_t *m68_state);
INLINE void addd_im(m68_state_t *m68_state);
INLINE void addd_ix(m68_state_t *m68_state);
INLINE void anda_di(m68_state_t *m68_state);
INLINE void anda_ex(m68_state_t *m68_state);
INLINE void anda_im(m68_state_t *m68_state);
INLINE void anda_ix(m68_state_t *m68_state);
INLINE void andb_di(m68_state_t *m68_state);
INLINE void andb_ex(m68_state_t *m68_state);
INLINE void andb_im(m68_state_t *m68_state);
INLINE void andb_ix(m68_state_t *m68_state);
INLINE void andcc(m68_state_t *m68_state);
INLINE void asla(m68_state_t *m68_state);
INLINE void aslb(m68_state_t *m68_state);
INLINE void asl_di(m68_state_t *m68_state);
INLINE void asl_ex(m68_state_t *m68_state);
INLINE void asl_ix(m68_state_t *m68_state);
INLINE void asra(m68_state_t *m68_state);
INLINE void asrb(m68_state_t *m68_state);
INLINE void asr_di(m68_state_t *m68_state);
INLINE void asr_ex(m68_state_t *m68_state);
INLINE void asr_ix(m68_state_t *m68_state);
INLINE void bcc(m68_state_t *m68_state);
INLINE void bcs(m68_state_t *m68_state);
INLINE void beq(m68_state_t *m68_state);
INLINE void bge(m68_state_t *m68_state);
INLINE void bgt(m68_state_t *m68_state);
INLINE void bhi(m68_state_t *m68_state);
INLINE void bita_di(m68_state_t *m68_state);
INLINE void bita_ex(m68_state_t *m68_state);
INLINE void bita_im(m68_state_t *m68_state);
INLINE void bita_ix(m68_state_t *m68_state);
INLINE void bitb_di(m68_state_t *m68_state);
INLINE void bitb_ex(m68_state_t *m68_state);
INLINE void bitb_im(m68_state_t *m68_state);
INLINE void bitb_ix(m68_state_t *m68_state);
INLINE void ble(m68_state_t *m68_state);
INLINE void bls(m68_state_t *m68_state);
INLINE void blt(m68_state_t *m68_state);
INLINE void bmi(m68_state_t *m68_state);
INLINE void bne(m68_state_t *m68_state);
INLINE void bpl(m68_state_t *m68_state);
INLINE void bra(m68_state_t *m68_state);
INLINE void brn(m68_state_t *m68_state);
INLINE void bsr(m68_state_t *m68_state);
INLINE void bvc(m68_state_t *m68_state);
INLINE void bvs(m68_state_t *m68_state);
INLINE void clra(m68_state_t *m68_state);
INLINE void clrb(m68_state_t *m68_state);
INLINE void clr_di(m68_state_t *m68_state);
INLINE void clr_ex(m68_state_t *m68_state);
INLINE void clr_ix(m68_state_t *m68_state);
INLINE void cmpa_di(m68_state_t *m68_state);
INLINE void cmpa_ex(m68_state_t *m68_state);
INLINE void cmpa_im(m68_state_t *m68_state);
INLINE void cmpa_ix(m68_state_t *m68_state);
INLINE void cmpb_di(m68_state_t *m68_state);
INLINE void cmpb_ex(m68_state_t *m68_state);
INLINE void cmpb_im(m68_state_t *m68_state);
INLINE void cmpb_ix(m68_state_t *m68_state);
INLINE void cmpd_di(m68_state_t *m68_state);
INLINE void cmpd_ex(m68_state_t *m68_state);
INLINE void cmpd_im(m68_state_t *m68_state);
INLINE void cmpd_ix(m68_state_t *m68_state);
INLINE void cmps_di(m68_state_t *m68_state);
INLINE void cmps_ex(m68_state_t *m68_state);
INLINE void cmps_im(m68_state_t *m68_state);
INLINE void cmps_ix(m68_state_t *m68_state);
INLINE void cmpu_di(m68_state_t *m68_state);
INLINE void cmpu_ex(m68_state_t *m68_state);
INLINE void cmpu_im(m68_state_t *m68_state);
INLINE void cmpu_ix(m68_state_t *m68_state);
INLINE void cmpx_di(m68_state_t *m68_state);
INLINE void cmpx_ex(m68_state_t *m68_state);
INLINE void cmpx_im(m68_state_t *m68_state);
INLINE void cmpx_ix(m68_state_t *m68_state);
INLINE void cmpy_di(m68_state_t *m68_state);
INLINE void cmpy_ex(m68_state_t *m68_state);
INLINE void cmpy_im(m68_state_t *m68_state);
INLINE void cmpy_ix(m68_state_t *m68_state);
INLINE void coma(m68_state_t *m68_state);
INLINE void comb(m68_state_t *m68_state);
INLINE void com_di(m68_state_t *m68_state);
INLINE void com_ex(m68_state_t *m68_state);
INLINE void com_ix(m68_state_t *m68_state);
INLINE void cwai(m68_state_t *m68_state);
INLINE void daa(m68_state_t *m68_state);
INLINE void deca(m68_state_t *m68_state);
INLINE void decb(m68_state_t *m68_state);
INLINE void dec_di(m68_state_t *m68_state);
INLINE void dec_ex(m68_state_t *m68_state);
INLINE void dec_ix(m68_state_t *m68_state);
INLINE void eora_di(m68_state_t *m68_state);
INLINE void eora_ex(m68_state_t *m68_state);
INLINE void eora_im(m68_state_t *m68_state);
INLINE void eora_ix(m68_state_t *m68_state);
INLINE void eorb_di(m68_state_t *m68_state);
INLINE void eorb_ex(m68_state_t *m68_state);
INLINE void eorb_im(m68_state_t *m68_state);
INLINE void eorb_ix(m68_state_t *m68_state);
INLINE void exg(m68_state_t *m68_state);
INLINE void illegal(m68_state_t *m68_state);
INLINE void inca(m68_state_t *m68_state);
INLINE void incb(m68_state_t *m68_state);
INLINE void inc_di(m68_state_t *m68_state);
INLINE void inc_ex(m68_state_t *m68_state);
INLINE void inc_ix(m68_state_t *m68_state);
INLINE void jmp_di(m68_state_t *m68_state);
INLINE void jmp_ex(m68_state_t *m68_state);
INLINE void jmp_ix(m68_state_t *m68_state);
INLINE void jsr_di(m68_state_t *m68_state);
INLINE void jsr_ex(m68_state_t *m68_state);
INLINE void jsr_ix(m68_state_t *m68_state);
INLINE void lbcc(m68_state_t *m68_state);
INLINE void lbcs(m68_state_t *m68_state);
INLINE void lbeq(m68_state_t *m68_state);
INLINE void lbge(m68_state_t *m68_state);
INLINE void lbgt(m68_state_t *m68_state);
INLINE void lbhi(m68_state_t *m68_state);
INLINE void lble(m68_state_t *m68_state);
INLINE void lbls(m68_state_t *m68_state);
INLINE void lblt(m68_state_t *m68_state);
INLINE void lbmi(m68_state_t *m68_state);
INLINE void lbne(m68_state_t *m68_state);
INLINE void lbpl(m68_state_t *m68_state);
INLINE void lbra(m68_state_t *m68_state);
INLINE void lbrn(m68_state_t *m68_state);
INLINE void lbsr(m68_state_t *m68_state);
INLINE void lbvc(m68_state_t *m68_state);
INLINE void lbvs(m68_state_t *m68_state);
INLINE void lda_di(m68_state_t *m68_state);
INLINE void lda_ex(m68_state_t *m68_state);
INLINE void lda_im(m68_state_t *m68_state);
INLINE void lda_ix(m68_state_t *m68_state);
INLINE void ldb_di(m68_state_t *m68_state);
INLINE void ldb_ex(m68_state_t *m68_state);
INLINE void ldb_im(m68_state_t *m68_state);
INLINE void ldb_ix(m68_state_t *m68_state);
INLINE void ldd_di(m68_state_t *m68_state);
INLINE void ldd_ex(m68_state_t *m68_state);
INLINE void ldd_im(m68_state_t *m68_state);
INLINE void ldd_ix(m68_state_t *m68_state);
INLINE void lds_di(m68_state_t *m68_state);
INLINE void lds_ex(m68_state_t *m68_state);
INLINE void lds_im(m68_state_t *m68_state);
INLINE void lds_ix(m68_state_t *m68_state);
INLINE void ldu_di(m68_state_t *m68_state);
INLINE void ldu_ex(m68_state_t *m68_state);
INLINE void ldu_im(m68_state_t *m68_state);
INLINE void ldu_ix(m68_state_t *m68_state);
INLINE void ldx_di(m68_state_t *m68_state);
INLINE void ldx_ex(m68_state_t *m68_state);
INLINE void ldx_im(m68_state_t *m68_state);
INLINE void ldx_ix(m68_state_t *m68_state);
INLINE void ldy_di(m68_state_t *m68_state);
INLINE void ldy_ex(m68_state_t *m68_state);
INLINE void ldy_im(m68_state_t *m68_state);
INLINE void ldy_ix(m68_state_t *m68_state);
INLINE void leas(m68_state_t *m68_state);
INLINE void leau(m68_state_t *m68_state);
INLINE void leax(m68_state_t *m68_state);
INLINE void leay(m68_state_t *m68_state);
INLINE void lsra(m68_state_t *m68_state);
INLINE void lsrb(m68_state_t *m68_state);
INLINE void lsr_di(m68_state_t *m68_state);
INLINE void lsr_ex(m68_state_t *m68_state);
INLINE void lsr_ix(m68_state_t *m68_state);
INLINE void mul(m68_state_t *m68_state);
INLINE void nega(m68_state_t *m68_state);
INLINE void negb(m68_state_t *m68_state);
INLINE void neg_di(m68_state_t *m68_state);
INLINE void neg_ex(m68_state_t *m68_state);
INLINE void neg_ix(m68_state_t *m68_state);
INLINE void nop(m68_state_t *m68_state);
INLINE void ora_di(m68_state_t *m68_state);
INLINE void ora_ex(m68_state_t *m68_state);
INLINE void ora_im(m68_state_t *m68_state);
INLINE void ora_ix(m68_state_t *m68_state);
INLINE void orb_di(m68_state_t *m68_state);
INLINE void orb_ex(m68_state_t *m68_state);
INLINE void orb_im(m68_state_t *m68_state);
INLINE void orb_ix(m68_state_t *m68_state);
INLINE void orcc(m68_state_t *m68_state);
INLINE void pref10(m68_state_t *m68_state);
INLINE void pref11(m68_state_t *m68_state);
INLINE void pshs(m68_state_t *m68_state);
INLINE void pshu(m68_state_t *m68_state);
INLINE void puls(m68_state_t *m68_state);
INLINE void pulu(m68_state_t *m68_state);
INLINE void rola(m68_state_t *m68_state);
INLINE void rolb(m68_state_t *m68_state);
INLINE void rol_di(m68_state_t *m68_state);
INLINE void rol_ex(m68_state_t *m68_state);
INLINE void rol_ix(m68_state_t *m68_state);
INLINE void rora(m68_state_t *m68_state);
INLINE void rorb(m68_state_t *m68_state);
INLINE void ror_di(m68_state_t *m68_state);
INLINE void ror_ex(m68_state_t *m68_state);
INLINE void ror_ix(m68_state_t *m68_state);
INLINE void rti(m68_state_t *m68_state);
INLINE void rts(m68_state_t *m68_state);
INLINE void sbca_di(m68_state_t *m68_state);
INLINE void sbca_ex(m68_state_t *m68_state);
INLINE void sbca_im(m68_state_t *m68_state);
INLINE void sbca_ix(m68_state_t *m68_state);
INLINE void sbcb_di(m68_state_t *m68_state);
INLINE void sbcb_ex(m68_state_t *m68_state);
INLINE void sbcb_im(m68_state_t *m68_state);
INLINE void sbcb_ix(m68_state_t *m68_state);
INLINE void sex(m68_state_t *m68_state);
INLINE void sta_di(m68_state_t *m68_state);
INLINE void sta_ex(m68_state_t *m68_state);
INLINE void sta_im(m68_state_t *m68_state);
INLINE void sta_ix(m68_state_t *m68_state);
INLINE void stb_di(m68_state_t *m68_state);
INLINE void stb_ex(m68_state_t *m68_state);
INLINE void stb_im(m68_state_t *m68_state);
INLINE void stb_ix(m68_state_t *m68_state);
INLINE void std_di(m68_state_t *m68_state);
INLINE void std_ex(m68_state_t *m68_state);
INLINE void std_im(m68_state_t *m68_state);
INLINE void std_ix(m68_state_t *m68_state);
INLINE void sts_di(m68_state_t *m68_state);
INLINE void sts_ex(m68_state_t *m68_state);
INLINE void sts_im(m68_state_t *m68_state);
INLINE void sts_ix(m68_state_t *m68_state);
INLINE void stu_di(m68_state_t *m68_state);
INLINE void stu_ex(m68_state_t *m68_state);
INLINE void stu_im(m68_state_t *m68_state);
INLINE void stu_ix(m68_state_t *m68_state);
INLINE void stx_di(m68_state_t *m68_state);
INLINE void stx_ex(m68_state_t *m68_state);
INLINE void stx_im(m68_state_t *m68_state);
INLINE void stx_ix(m68_state_t *m68_state);
INLINE void sty_di(m68_state_t *m68_state);
INLINE void sty_ex(m68_state_t *m68_state);
INLINE void sty_im(m68_state_t *m68_state);
INLINE void sty_ix(m68_state_t *m68_state);
INLINE void suba_di(m68_state_t *m68_state);
INLINE void suba_ex(m68_state_t *m68_state);
INLINE void suba_im(m68_state_t *m68_state);
INLINE void suba_ix(m68_state_t *m68_state);
INLINE void subb_di(m68_state_t *m68_state);
INLINE void subb_ex(m68_state_t *m68_state);
INLINE void subb_im(m68_state_t *m68_state);
INLINE void subb_ix(m68_state_t *m68_state);
INLINE void subd_di(m68_state_t *m68_state);
INLINE void subd_ex(m68_state_t *m68_state);
INLINE void subd_im(m68_state_t *m68_state);
INLINE void subd_ix(m68_state_t *m68_state);
INLINE void swi2(m68_state_t *m68_state);
INLINE void swi3(m68_state_t *m68_state);
INLINE void swi(m68_state_t *m68_state);
INLINE void sync(m68_state_t *m68_state);
INLINE void tfr(m68_state_t *m68_state);
INLINE void tsta(m68_state_t *m68_state);
INLINE void tstb(m68_state_t *m68_state);
INLINE void tst_di(m68_state_t *m68_state);
INLINE void tst_ex(m68_state_t *m68_state);
INLINE void tst_ix(m68_state_t *m68_state);
INLINE void pref10(void);
INLINE void pref11(void);
static const UINT8 flags8i[256]= /* increment */
{
CC_Z,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CC_N|CC_V,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N
};
static const UINT8 flags8d[256]= /* decrement */
{
CC_Z,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,CC_V,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,
CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N,CC_N
};
/* FIXME: Cycles differ slighly from hd6309 emulation */
static const UINT8 index_cycle_em[256] = { /* Index Loopup cycle counts */
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7, 0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
/* 0x0X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x1X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x2X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x3X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x4X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x5X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x6X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x7X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* 0x8X */ 2, 3, 2, 3, 0, 1, 1, 0, 1, 4, 0, 4, 1, 5, 0, 5,
/* 0x9X */ 5, 6, 5, 6, 3, 4, 4, 0, 4, 7, 0, 7, 4, 8, 0, 8,
/* 0xAX */ 2, 3, 2, 3, 0, 1, 1, 0, 1, 4, 0, 4, 1, 5, 0, 5,
/* 0xBX */ 5, 6, 5, 6, 3, 4, 4, 0, 4, 7, 0, 7, 4, 8, 0, 8,
/* 0xCX */ 2, 3, 2, 3, 0, 1, 1, 0, 1, 4, 0, 4, 1, 5, 0, 3,
/* 0xDX */ 5, 6, 5, 6, 3, 4, 4, 0, 4, 7, 0, 7, 4, 8, 0, 8,
/* 0xEX */ 2, 3, 2, 3, 0, 1, 1, 0, 1, 4, 0, 4, 1, 5, 0, 5,
/* 0xFX */ 4, 6, 5, 6, 3, 4, 4, 0, 4, 7, 0, 7, 4, 8, 0, 8
};
/* timings for 1-byte opcodes */
static const UINT8 cycles1[] =
{
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
/*0*/ 6, 6, 2, 6, 6, 2, 6, 6, 6, 6, 6, 2, 6, 6, 3, 6,
/*1*/ 0, 0, 2, 4, 2, 2, 5, 9, 2, 2, 3, 2, 3, 2, 8, 6,
/*2*/ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
/*3*/ 4, 4, 4, 4, 5, 5, 5, 5, 2, 5, 3, 6,20,11, 2,19,
/*4*/ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/*5*/ 2, 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/*6*/ 6, 2, 2, 6, 6, 2, 6, 6, 6, 6, 6, 2, 6, 6, 3, 6,
/*7*/ 7, 2, 2, 7, 7, 2, 7, 7, 7, 7, 7, 2, 7, 7, 4, 7,
/*8*/ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 3, 2,
/*9*/ 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 6, 7, 5, 5,
/*A*/ 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 6, 7, 5, 5,
/*B*/ 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 7, 8, 6, 6,
/*C*/ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3,
/*D*/ 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
/*E*/ 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
/*F*/ 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6
};
#if (BIG_SWITCH==0)
static void (*const m6809_main[0x100])(void) = {
neg_di, neg_di, illegal,com_di, lsr_di, illegal,ror_di, asr_di, /* 00 */
asl_di, rol_di, dec_di, illegal,inc_di, tst_di, jmp_di, clr_di,
pref10, pref11, nop, sync, illegal,illegal,lbra, lbsr, /* 10 */
illegal,daa, orcc, illegal,andcc, sex, exg, tfr,
bra, brn, bhi, bls, bcc, bcs, bne, beq, /* 20 */
bvc, bvs, bpl, bmi, bge, blt, bgt, ble,
leax, leay, leas, leau, pshs, puls, pshu, pulu, /* 30 */
illegal,rts, abx, rti, cwai, mul, illegal,swi,
nega, illegal,illegal,coma, lsra, illegal,rora, asra, /* 40 */
asla, rola, deca, illegal,inca, tsta, illegal,clra,
negb, illegal,illegal,comb, lsrb, illegal,rorb, asrb, /* 50 */
aslb, rolb, decb, illegal,incb, tstb, illegal,clrb,
neg_ix, illegal,illegal,com_ix, lsr_ix, illegal,ror_ix, asr_ix, /* 60 */
asl_ix, rol_ix, dec_ix, illegal,inc_ix, tst_ix, jmp_ix, clr_ix,
neg_ex, illegal,illegal,com_ex, lsr_ex, illegal,ror_ex, asr_ex, /* 70 */
asl_ex, rol_ex, dec_ex, illegal,inc_ex, tst_ex, jmp_ex, clr_ex,
suba_im,cmpa_im,sbca_im,subd_im,anda_im,bita_im,lda_im, sta_im, /* 80 */
eora_im,adca_im,ora_im, adda_im,cmpx_im,bsr, ldx_im, stx_im,
suba_di,cmpa_di,sbca_di,subd_di,anda_di,bita_di,lda_di, sta_di, /* 90 */
eora_di,adca_di,ora_di, adda_di,cmpx_di,jsr_di, ldx_di, stx_di,
suba_ix,cmpa_ix,sbca_ix,subd_ix,anda_ix,bita_ix,lda_ix, sta_ix, /* a0 */
eora_ix,adca_ix,ora_ix, adda_ix,cmpx_ix,jsr_ix, ldx_ix, stx_ix,
suba_ex,cmpa_ex,sbca_ex,subd_ex,anda_ex,bita_ex,lda_ex, sta_ex, /* b0 */
eora_ex,adca_ex,ora_ex, adda_ex,cmpx_ex,jsr_ex, ldx_ex, stx_ex,
subb_im,cmpb_im,sbcb_im,addd_im,andb_im,bitb_im,ldb_im, stb_im, /* c0 */
eorb_im,adcb_im,orb_im, addb_im,ldd_im, std_im, ldu_im, stu_im,
subb_di,cmpb_di,sbcb_di,addd_di,andb_di,bitb_di,ldb_di, stb_di, /* d0 */
eorb_di,adcb_di,orb_di, addb_di,ldd_di, std_di, ldu_di, stu_di,
subb_ix,cmpb_ix,sbcb_ix,addd_ix,andb_ix,bitb_ix,ldb_ix, stb_ix, /* e0 */
eorb_ix,adcb_ix,orb_ix, addb_ix,ldd_ix, std_ix, ldu_ix, stu_ix,
subb_ex,cmpb_ex,sbcb_ex,addd_ex,andb_ex,bitb_ex,ldb_ex, stb_ex, /* f0 */
eorb_ex,adcb_ex,orb_ex, addb_ex,ldd_ex, std_ex, ldu_ex, stu_ex
static void (*const m6809_main[0x100])(m68_state_t *) = {
/* 0xX0, 0xX1, 0xX2, 0xX3, 0xX4, 0xX5, 0xX6, 0xX7,
0xX8, 0xX9, 0xXA, 0xXB, 0xXC, 0xXD, 0xXE, 0xXF */
/* 0x0X */ neg_di, neg_di, illegal,com_di, lsr_di, illegal,ror_di, asr_di,
asl_di, rol_di, dec_di, illegal,inc_di, tst_di, jmp_di, clr_di,
/* 0x1X */ pref10, pref11, nop, sync, illegal,illegal,lbra, lbsr,
illegal,daa, orcc, illegal,andcc, sex, exg, tfr,
/* 0x2X */ bra, brn, bhi, bls, bcc, bcs, bne, beq,
bvc, bvs, bpl, bmi, bge, blt, bgt, ble,
/* 0x3X */ leax, leay, leas, leau, pshs, puls, pshu, pulu,
illegal,rts, abx, rti, cwai, mul, illegal,swi,
/* 0x4X */ nega, illegal,illegal,coma, lsra, illegal,rora, asra,
asla, rola, deca, illegal,inca, tsta, illegal,clra,
/* 0x5X */ negb, illegal,illegal,comb, lsrb, illegal,rorb, asrb,
aslb, rolb, decb, illegal,incb, tstb, illegal,clrb,
/* 0x6X */ neg_ix, illegal,illegal,com_ix, lsr_ix, illegal,ror_ix, asr_ix,
asl_ix, rol_ix, dec_ix, illegal,inc_ix, tst_ix, jmp_ix, clr_ix,
/* 0x7X */ neg_ex, illegal,illegal,com_ex, lsr_ex, illegal,ror_ex, asr_ex,
asl_ex, rol_ex, dec_ex, illegal,inc_ex, tst_ex, jmp_ex, clr_ex,
/* 0x8X */ suba_im,cmpa_im,sbca_im,subd_im,anda_im,bita_im,lda_im, sta_im,
eora_im,adca_im,ora_im, adda_im,cmpx_im,bsr, ldx_im, stx_im,
/* 0x9X */ suba_di,cmpa_di,sbca_di,subd_di,anda_di,bita_di,lda_di, sta_di,
eora_di,adca_di,ora_di, adda_di,cmpx_di,jsr_di, ldx_di, stx_di,
/* 0xAX */ suba_ix,cmpa_ix,sbca_ix,subd_ix,anda_ix,bita_ix,lda_ix, sta_ix,
eora_ix,adca_ix,ora_ix, adda_ix,cmpx_ix,jsr_ix, ldx_ix, stx_ix,
/* 0xBX */ suba_ex,cmpa_ex,sbca_ex,subd_ex,anda_ex,bita_ex,lda_ex, sta_ex,
eora_ex,adca_ex,ora_ex, adda_ex,cmpx_ex,jsr_ex, ldx_ex, stx_ex,
/* 0xCX */ subb_im,cmpb_im,sbcb_im,addd_im,andb_im,bitb_im,ldb_im, stb_im,
eorb_im,adcb_im,orb_im, addb_im,ldd_im, std_im, ldu_im, stu_im,
/* 0xDX */ subb_di,cmpb_di,sbcb_di,addd_di,andb_di,bitb_di,ldb_di, stb_di,
eorb_di,adcb_di,orb_di, addb_di,ldd_di, std_di, ldu_di, stu_di,
/* 0xEX */ subb_ix,cmpb_ix,sbcb_ix,addd_ix,andb_ix,bitb_ix,ldb_ix, stb_ix,
eorb_ix,adcb_ix,orb_ix, addb_ix,ldd_ix, std_ix, ldu_ix, stu_ix,
/* 0xFX */ subb_ex,cmpb_ex,sbcb_ex,addd_ex,andb_ex,bitb_ex,ldb_ex, stb_ex,
eorb_ex,adcb_ex,orb_ex, addb_ex,ldd_ex, std_ex, ldu_ex, stu_ex
};
#endif

File diff suppressed because it is too large Load Diff

View File

@ -51,4 +51,6 @@ CPU_GET_INFO( m6809e );
# define TRUE (!FALSE)
#endif
CPU_DISASSEMBLE( m6809 );
#endif /* __M6809_H__ */