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 clrd(void); /* 6309 */ INLINE void clrw_ix(void); /* 6309 ? */ INLINE void clrw_di(void); /* 6309 ? */ INLINE void clrw_ex(void); /* 6309 ? */ INLINE void negd(void); INLINE void negw_ix(void); /* 6309 ? */ INLINE void negw_di(void); /* 6309 ? */ INLINE void negw_ex(void); /* 6309 ? */ INLINE void lsrd( void ); /* 6309 */ INLINE void lsrd_di( void ); /* 6309 */ INLINE void lsrd_ix( void ); /* 6309 */ INLINE void lsrd_ex( void ); /* 6309 */ INLINE void rord( void ); /* 6309 ? */ INLINE void rord_di( void ); /* 6309 */ INLINE void rord_ix( void ); /* 6309 */ INLINE void rord_ex( void ); /* 6309 */ INLINE void asrd( void ); /* 6309 ? */ INLINE void asrd_di( void ); /* 6309 */ INLINE void asrd_ix( void ); /* 6309 */ INLINE void asrd_ex( void ); /* 6309 */ INLINE void asld( void ); /* 6309 */ INLINE void asld_di( void ); /* 6309 */ INLINE void asld_ix( void ); /* 6309 */ INLINE void asld_ex( void ); /* 6309 */ INLINE void rold( void ); /* 6309 ? */ INLINE void rold_di( void ); /* 6309 */ INLINE void rold_ix( void ); /* 6309 */ INLINE void rold_ex( void ); /* 6309 */ INLINE void tstd(void); INLINE void tstw_di( void ); INLINE void tstw_ix( void ); INLINE void tstw_ex( void ); /* Custom opcodes */ INLINE void setline_im( void ); INLINE void setline_ix( void ); INLINE void setline_di( void ); INLINE void setline_ex( void ); INLINE void bmove( void ); INLINE void move( void ); INLINE void decbjnz( void ); INLINE void decxjnz( void ); INLINE void bset( void ); INLINE void bset2( void ); INLINE void lmul(void); INLINE void divx( void ); INLINE void incd( void ); INLINE void incw_di( void ); INLINE void incw_ix( void ); INLINE void incw_ex( void ); INLINE void decd( void ); INLINE void decw_di( void ); INLINE void decw_ix( void ); INLINE void decw_ex( void ); INLINE void lsrw_di( void ); INLINE void lsrw_ix( void ); INLINE void lsrw_ex( void ); INLINE void rorw_di( void ); INLINE void rorw_ix( void ); INLINE void rorw_ex( void ); INLINE void asrw_di( void ); INLINE void asrw_ix( void ); INLINE void asrw_ex( void ); INLINE void aslw_di( void ); INLINE void aslw_ix( void ); INLINE void aslw_ex( void ); INLINE void rolw_di( void ); INLINE void rolw_ix( void ); INLINE void rolw_ex( void ); INLINE void absa( void ); INLINE void absb( void ); INLINE void absd( void ); INLINE void opcode2( void ); static void (*konami_main[0x100])(void) = { illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 00 */ opcode2,opcode2,opcode2,opcode2,pshs ,pshu ,puls ,pulu , lda_im ,ldb_im ,opcode2,opcode2,adda_im,addb_im,opcode2,opcode2, /* 10 */ adca_im,adcb_im,opcode2,opcode2,suba_im,subb_im,opcode2,opcode2, sbca_im,sbcb_im,opcode2,opcode2,anda_im,andb_im,opcode2,opcode2, /* 20 */ bita_im,bitb_im,opcode2,opcode2,eora_im,eorb_im,opcode2,opcode2, ora_im ,orb_im ,opcode2,opcode2,cmpa_im,cmpb_im,opcode2,opcode2, /* 30 */ setline_im,opcode2,opcode2,opcode2,andcc,orcc ,exg ,tfr , ldd_im ,opcode2,ldx_im ,opcode2,ldy_im ,opcode2,ldu_im ,opcode2, /* 40 */ lds_im ,opcode2,cmpd_im,opcode2,cmpx_im,opcode2,cmpy_im,opcode2, cmpu_im,opcode2,cmps_im,opcode2,addd_im,opcode2,subd_im,opcode2, /* 50 */ opcode2,opcode2,opcode2,opcode2,opcode2,illegal,illegal,illegal, bra ,bhi ,bcc ,bne ,bvc ,bpl ,bge ,bgt , /* 60 */ lbra ,lbhi ,lbcc ,lbne ,lbvc ,lbpl ,lbge ,lbgt , brn ,bls ,bcs ,beq ,bvs ,bmi ,blt ,ble , /* 70 */ lbrn ,lbls ,lbcs ,lbeq ,lbvs ,lbmi ,lblt ,lble , clra ,clrb ,opcode2,coma ,comb ,opcode2,nega ,negb , /* 80 */ opcode2,inca ,incb ,opcode2,deca ,decb ,opcode2,rts , tsta ,tstb ,opcode2,lsra ,lsrb ,opcode2,rora ,rorb , /* 90 */ opcode2,asra ,asrb ,opcode2,asla ,aslb ,opcode2,rti , rola ,rolb ,opcode2,opcode2,opcode2,opcode2,opcode2,opcode2, /* a0 */ opcode2,opcode2,bsr ,lbsr ,decbjnz,decxjnz,nop ,illegal, abx ,daa ,sex ,mul ,lmul ,divx ,bmove ,move , /* b0 */ lsrd ,opcode2,rord ,opcode2,asrd ,opcode2,asld ,opcode2, rold ,opcode2,clrd ,opcode2,negd ,opcode2,incd ,opcode2, /* c0 */ decd ,opcode2,tstd ,opcode2,absa ,absb ,absd ,bset , bset2 ,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* d0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* e0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* f0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal }; static void (*konami_indexed[0x100])(void) = { illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 00 */ leax ,leay ,leau ,leas ,illegal,illegal,illegal,illegal, illegal,illegal,lda_ix ,ldb_ix ,illegal,illegal,adda_ix,addb_ix, /* 10 */ illegal,illegal,adca_ix,adcb_ix,illegal,illegal,suba_ix,subb_ix, illegal,illegal,sbca_ix,sbcb_ix,illegal,illegal,anda_ix,andb_ix, /* 20 */ illegal,illegal,bita_ix,bitb_ix,illegal,illegal,eora_ix,eorb_ix, illegal,illegal,ora_ix ,orb_ix ,illegal,illegal,cmpa_ix,cmpb_ix, /* 30 */ illegal,setline_ix,sta_ix,stb_ix,illegal,illegal,illegal,illegal, illegal,ldd_ix ,illegal,ldx_ix ,illegal,ldy_ix ,illegal,ldu_ix , /* 40 */ illegal,lds_ix ,illegal,cmpd_ix,illegal,cmpx_ix,illegal,cmpy_ix, illegal,cmpu_ix,illegal,cmps_ix,illegal,addd_ix,illegal,subd_ix, /* 50 */ std_ix ,stx_ix ,sty_ix ,stu_ix ,sts_ix ,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 60 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 70 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,clr_ix ,illegal,illegal,com_ix ,illegal,illegal, /* 80 */ neg_ix ,illegal,illegal,inc_ix ,illegal,illegal,dec_ix ,illegal, illegal,illegal,tst_ix ,illegal,illegal,lsr_ix ,illegal,illegal, /* 90 */ ror_ix ,illegal,illegal,asr_ix ,illegal,illegal,asl_ix ,illegal, illegal,illegal,rol_ix ,lsrw_ix,rorw_ix,asrw_ix,aslw_ix,rolw_ix, /* a0 */ jmp_ix ,jsr_ix ,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* b0 */ illegal,lsrd_ix,illegal,rord_ix,illegal,asrd_ix,illegal,asld_ix, illegal,rold_ix,illegal,clrw_ix,illegal,negw_ix,illegal,incw_ix, /* c0 */ illegal,decw_ix,illegal,tstw_ix,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* d0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* e0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* f0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal }; static void (*konami_direct[0x100])(void) = { illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 00 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,lda_di ,ldb_di ,illegal,illegal,adda_di,addb_di, /* 10 */ illegal,illegal,adca_di,adcb_di,illegal,illegal,suba_di,subb_di, illegal,illegal,sbca_di,sbcb_di,illegal,illegal,anda_di,andb_di, /* 20 */ illegal,illegal,bita_di,bitb_di,illegal,illegal,eora_di,eorb_di, illegal,illegal,ora_di ,orb_di ,illegal,illegal,cmpa_di,cmpb_di, /* 30 */ illegal,setline_di,sta_di,stb_di,illegal,illegal,illegal,illegal, illegal,ldd_di ,illegal,ldx_di ,illegal,ldy_di ,illegal,ldu_di , /* 40 */ illegal,lds_di ,illegal,cmpd_di,illegal,cmpx_di,illegal,cmpy_di, illegal,cmpu_di,illegal,cmps_di,illegal,addd_di,illegal,subd_di, /* 50 */ std_di ,stx_di ,sty_di ,stu_di ,sts_di ,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 60 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 70 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,clr_di ,illegal,illegal,com_di ,illegal,illegal, /* 80 */ neg_di ,illegal,illegal,inc_di ,illegal,illegal,dec_di ,illegal, illegal,illegal,tst_di ,illegal,illegal,lsr_di ,illegal,illegal, /* 90 */ ror_di ,illegal,illegal,asr_di ,illegal,illegal,asl_di ,illegal, illegal,illegal,rol_di ,lsrw_di,rorw_di,asrw_di,aslw_di,rolw_di, /* a0 */ jmp_di ,jsr_di ,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* b0 */ illegal,lsrd_di,illegal,rord_di,illegal,asrd_di,illegal,asld_di, illegal,rold_di,illegal,clrw_di,illegal,negw_di,illegal,incw_di, /* c0 */ illegal,decw_di,illegal,tstw_di,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* d0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* e0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* f0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal }; static void (*konami_extended[0x100])(void) = { illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 00 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,lda_ex ,ldb_ex ,illegal,illegal,adda_ex,addb_ex, /* 10 */ illegal,illegal,adca_ex,adcb_ex,illegal,illegal,suba_ex,subb_ex, illegal,illegal,sbca_ex,sbcb_ex,illegal,illegal,anda_ex,andb_ex, /* 20 */ illegal,illegal,bita_ex,bitb_ex,illegal,illegal,eora_ex,eorb_ex, illegal,illegal,ora_ex ,orb_ex ,illegal,illegal,cmpa_ex,cmpb_ex, /* 30 */ illegal,setline_ex,sta_ex,stb_ex,illegal,illegal,illegal,illegal, illegal,ldd_ex ,illegal,ldx_ex ,illegal,ldy_ex ,illegal,ldu_ex , /* 40 */ illegal,lds_ex ,illegal,cmpd_ex,illegal,cmpx_ex,illegal,cmpy_ex, illegal,cmpu_ex,illegal,cmps_ex,illegal,addd_ex,illegal,subd_ex, /* 50 */ std_ex ,stx_ex ,sty_ex ,stu_ex ,sts_ex ,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 60 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* 70 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,clr_ex ,illegal,illegal,com_ex ,illegal,illegal, /* 80 */ neg_ex ,illegal,illegal,inc_ex ,illegal,illegal,dec_ex ,illegal, illegal,illegal,tst_ex ,illegal,illegal,lsr_ex ,illegal,illegal, /* 90 */ ror_ex ,illegal,illegal,asr_ex ,illegal,illegal,asl_ex ,illegal, illegal,illegal,rol_ex ,lsrw_ex,rorw_ex,asrw_ex,aslw_ex,rolw_ex, /* a0 */ jmp_ex ,jsr_ex ,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* b0 */ illegal,lsrd_ex,illegal,rord_ex,illegal,asrd_ex,illegal,asld_ex, illegal,rold_ex,illegal,clrw_ex,illegal,negw_ex,illegal,incw_ex, /* c0 */ illegal,decw_ex,illegal,tstw_ex,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* d0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* e0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal, /* f0 */ illegal,illegal,illegal,illegal,illegal,illegal,illegal,illegal };