icount -= index_cycle_em[postbyte];
}
-volatile void MC6809::illegal()
+void MC6809::illegal()
{
//logerror("MC6809: illegal opcode at %04x\n", PC);
}
/* $00 NEG direct ?**** */
-volatile void MC6809::neg_di()
+void MC6809::neg_di()
{
uint16 r, t;
DIRBYTE(t);
/* $02 ILLEGAL, same as $03 */
/* $03 COM direct -**01 */
-volatile void MC6809::com_di()
+void MC6809::com_di()
{
uint8 t;
DIRBYTE(t);
WM(EAD, t);
}
/* $02 NGC Direct (Undefined) */
-volatile void MC6809::ngc_di(void)
+void MC6809::ngc_di(void)
{
if ((CC & CC_C) == 0) {
neg_di();
}
/* $04 LSR direct -0*-* */
-volatile void MC6809::lsr_di()
+void MC6809::lsr_di()
{
uint8 t;
DIRBYTE(t);
/* $05 ILLEGAL, same as $04 */
/* $06 ROR direct -**-* */
-volatile void MC6809::ror_di()
+void MC6809::ror_di()
{
uint8 t, r;
DIRBYTE(t);
}
/* $07 ASR direct ?**-* */
-volatile void MC6809::asr_di()
+void MC6809::asr_di()
{
uint8 t;
DIRBYTE(t);
}
/* $08 ASL direct ?**** */
-volatile void MC6809::asl_di()
+void MC6809::asl_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $09 ROL direct -**** */
-volatile void MC6809::rol_di()
+void MC6809::rol_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $0A DEC direct -***- */
-volatile void MC6809::dec_di()
+void MC6809::dec_di()
{
uint8 t;
DIRBYTE(t);
}
/* $0B DCC direct */
-volatile void MC6809::dcc_di(void)
+void MC6809::dcc_di(void)
{
BYTE t, s;
DIRBYTE(t);
/* $OC INC direct -***- */
-volatile void MC6809::inc_di()
+void MC6809::inc_di()
{
uint8 t;
DIRBYTE(t);
}
/* $OD TST direct -**0- */
-volatile void MC6809::tst_di()
+void MC6809::tst_di()
{
uint8 t;
DIRBYTE(t);
}
/* $0E JMP direct ----- */
-volatile void MC6809::jmp_di()
+void MC6809::jmp_di()
{
DIRECT;
PCD = EAD;
}
/* $0F CLR direct -0100 */
-volatile void MC6809::clr_di()
+void MC6809::clr_di()
{
DIRECT;
(void)RM(EAD);
/* $11 FLAG */
/* $12 NOP inherent ----- */
-volatile void MC6809::nop()
+void MC6809::nop()
{
;
}
/* $13 SYNC inherent ----- */
-volatile void MC6809::sync()
+void MC6809::sync()
{
/* SYNC stops processing instructions until an interrupt request happens. */
/* This doesn't require the corresponding interrupt to be enabled: if it */
}
/* $14 trap(HALT) */
-volatile void MC6809::trap()
+void MC6809::trap()
{
int_state |= MC6809_HALT; // HALTフラグ
// Debug: トラップ要因
/* $15 trap */
/* $16 LBRA relative ----- */
-volatile void MC6809::lbra()
+void MC6809::lbra()
{
IMMWORD(EAP);
PC += EA;
}
/* $17 LBSR relative ----- */
-volatile void MC6809::lbsr()
+void MC6809::lbsr()
{
IMMWORD(EAP);
PUSHWORD(pPC);
/* $18 ASLCC */
-volatile void MC6809::aslcc_in()
+void MC6809::aslcc_in()
{
BYTE cc = CC;
if ((cc & CC_Z) != 0x00) //20100824 Fix
}
/* $19 DAA inherent (A) -**0* */
-volatile void MC6809::daa()
+void MC6809::daa()
{
uint8 msn, lsn;
uint16 t, cf = 0;
}
/* $1A ORCC immediate ##### */
-volatile void MC6809::orcc()
+void MC6809::orcc()
{
uint8 t;
IMMBYTE(t);
/* $1B ILLEGAL */
/* $1C ANDCC immediate ##### */
-volatile void MC6809::andcc()
+void MC6809::andcc()
{
uint8 t;
IMMBYTE(t);
}
/* $1D SEX inherent -**-- */
-volatile void MC6809::sex()
+void MC6809::sex()
{
uint16 t;
t = SIGNED(B);
}
/* $1E EXG inherent ----- */
-volatile void MC6809::exg()
+void MC6809::exg()
{
uint16 t1, t2;
uint8 tb;
}
/* $1F TFR inherent ----- */
-volatile void MC6809::tfr()
+void MC6809::tfr()
{
uint8 tb;
uint16 t;
}
/* $20 BRA relative ----- */
-volatile void MC6809::bra()
+void MC6809::bra()
{
uint8 t;
IMMBYTE(t);
}
/* $21 BRN relative ----- */
-volatile void MC6809::brn()
+void MC6809::brn()
{
uint8 t;
IMMBYTE(t);
}
/* $1021 LBRN relative ----- */
-volatile void MC6809::lbrn()
+void MC6809::lbrn()
{
IMMWORD(EAP);
}
/* $22 BHI relative ----- */
-volatile void MC6809::bhi()
+void MC6809::bhi()
{
BRANCH(!(CC & (CC_Z | CC_C)));
}
/* $1022 LBHI relative ----- */
-volatile void MC6809::lbhi()
+void MC6809::lbhi()
{
LBRANCH(!(CC & (CC_Z | CC_C)));
}
/* $23 BLS relative ----- */
-volatile void MC6809::bls()
+void MC6809::bls()
{
BRANCH((CC & (CC_Z | CC_C)));
}
/* $1023 LBLS relative ----- */
-volatile void MC6809::lbls()
+void MC6809::lbls()
{
LBRANCH((CC & (CC_Z | CC_C)));
}
/* $24 BCC relative ----- */
-volatile void MC6809::bcc()
+void MC6809::bcc()
{
BRANCH(!(CC & CC_C));
}
/* $1024 LBCC relative ----- */
-volatile void MC6809::lbcc()
+void MC6809::lbcc()
{
LBRANCH(!(CC & CC_C));
}
/* $25 BCS relative ----- */
-volatile void MC6809::bcs()
+void MC6809::bcs()
{
BRANCH((CC & CC_C));
}
/* $1025 LBCS relative ----- */
-volatile void MC6809::lbcs()
+void MC6809::lbcs()
{
LBRANCH((CC & CC_C));
}
/* $26 BNE relative ----- */
-volatile void MC6809::bne()
+void MC6809::bne()
{
BRANCH(!(CC & CC_Z));
}
/* $1026 LBNE relative ----- */
-volatile void MC6809::lbne()
+void MC6809::lbne()
{
LBRANCH(!(CC & CC_Z));
}
/* $27 BEQ relative ----- */
-volatile void MC6809::beq()
+void MC6809::beq()
{
BRANCH((CC & CC_Z));
}
/* $1027 LBEQ relative ----- */
-volatile void MC6809::lbeq()
+void MC6809::lbeq()
{
LBRANCH((CC & CC_Z));
}
/* $28 BVC relative ----- */
-volatile void MC6809::bvc()
+void MC6809::bvc()
{
BRANCH(!(CC & CC_V));
}
/* $1028 LBVC relative ----- */
-volatile void MC6809::lbvc()
+void MC6809::lbvc()
{
LBRANCH(!(CC & CC_V));
}
/* $29 BVS relative ----- */
-volatile void MC6809::bvs()
+void MC6809::bvs()
{
BRANCH((CC & CC_V));
}
/* $1029 LBVS relative ----- */
-volatile void MC6809::lbvs()
+void MC6809::lbvs()
{
LBRANCH((CC & CC_V));
}
/* $2A BPL relative ----- */
-volatile void MC6809::bpl()
+void MC6809::bpl()
{
BRANCH(!(CC & CC_N));
}
/* $102A LBPL relative ----- */
-volatile void MC6809::lbpl()
+void MC6809::lbpl()
{
LBRANCH(!(CC & CC_N));
}
/* $2B BMI relative ----- */
-volatile void MC6809::bmi()
+void MC6809::bmi()
{
BRANCH((CC & CC_N));
}
/* $102B LBMI relative ----- */
-volatile void MC6809::lbmi()
+void MC6809::lbmi()
{
LBRANCH((CC & CC_N));
}
/* $2C BGE relative ----- */
-volatile void MC6809::bge()
+void MC6809::bge()
{
BRANCH(!NXORV);
}
/* $102C LBGE relative ----- */
-volatile void MC6809::lbge()
+void MC6809::lbge()
{
LBRANCH(!NXORV);
}
/* $2D BLT relative ----- */
-volatile void MC6809::blt()
+void MC6809::blt()
{
BRANCH(NXORV);
}
/* $102D LBLT relative ----- */
-volatile void MC6809::lblt()
+void MC6809::lblt()
{
LBRANCH(NXORV);
}
/* $2E BGT relative ----- */
-volatile void MC6809::bgt()
+void MC6809::bgt()
{
BRANCH(!(NXORV || (CC & CC_Z)));
}
/* $102E LBGT relative ----- */
-volatile void MC6809::lbgt()
+void MC6809::lbgt()
{
LBRANCH(!(NXORV || (CC & CC_Z)));
}
/* $2F BLE relative ----- */
-volatile void MC6809::ble()
+void MC6809::ble()
{
BRANCH((NXORV || (CC & CC_Z)));
}
/* $102F LBLE relative ----- */
-volatile void MC6809::lble()
+void MC6809::lble()
{
LBRANCH((NXORV || (CC & CC_Z)));
}
/* $30 LEAX indexed --*-- */
-volatile void MC6809::leax()
+void MC6809::leax()
{
fetch_effective_address();
X = EA;
}
/* $31 LEAY indexed --*-- */
-volatile void MC6809::leay()
+void MC6809::leay()
{
fetch_effective_address();
Y = EA;
}
/* $32 LEAS indexed ----- */
-volatile void MC6809::leas()
+void MC6809::leas()
{
fetch_effective_address();
S = EA;
}
/* $33 LEAU indexed ----- */
-volatile void MC6809::leau()
+void MC6809::leau()
{
fetch_effective_address();
U = EA;
}
/* $34 PSHS inherent ----- */
-volatile void MC6809::pshs()
+void MC6809::pshs()
{
uint8 t;
IMMBYTE(t);
}
/* 35 PULS inherent ----- */
-volatile void MC6809::puls()
+void MC6809::puls()
{
uint8 t;
IMMBYTE(t);
}
/* $36 PSHU inherent ----- */
-volatile void MC6809::pshu()
+void MC6809::pshu()
{
uint8 t;
IMMBYTE(t);
}
/* 37 PULU inherent ----- */
-volatile void MC6809::pulu()
+void MC6809::pulu()
{
uint8 t;
IMMBYTE(t);
/* $38 ILLEGAL */
/* $39 RTS inherent ----- */
-volatile void MC6809::rts()
+void MC6809::rts()
{
PULLWORD(PCD);
}
/* $3A ABX inherent ----- */
-volatile void MC6809::abx()
+void MC6809::abx()
{
X += B;
}
/* $3B RTI inherent ##### */
-volatile void MC6809::rti()
+void MC6809::rti()
{
uint8 t;
PULLBYTE(CC);
}
/* $3C CWAI inherent ----1 */
-volatile void MC6809::cwai()
+void MC6809::cwai()
{
uint8 t;
if ((int_state & MC6809_CWAI_IN) != 0) { // FIX 20130417
}
/* $3D MUL inherent --*-@ */
-volatile void MC6809::mul()
+void MC6809::mul()
{
uint16 t;
t = A * B;
}
/* $3E RST */
-volatile void MC6809::rst()
+void MC6809::rst()
{
reset();
}
/* $3F SWI (SWI2 SWI3) absolute indirect ----- */
-volatile void MC6809::swi()
+void MC6809::swi()
{
CC |= CC_E; /* HJB 980225: save entire state */
PUSHWORD(pPC);
}
/* $103F SWI2 absolute indirect ----- */
-volatile void MC6809::swi2()
+void MC6809::swi2()
{
CC |= CC_E; /* HJB 980225: save entire state */
PUSHWORD(pPC);
}
/* $113F SWI3 absolute indirect ----- */
-volatile void MC6809::swi3()
+void MC6809::swi3()
{
CC |= CC_E; /* HJB 980225: save entire state */
PUSHWORD(pPC);
}
/* $40 NEGA inherent ?**** */
-volatile void MC6809::nega()
+void MC6809::nega()
{
uint16 r;
r = -A;
/* $41 ILLEGAL, same as $40 */
/* $42 NGCA */
-volatile void MC6809::ngca()
+void MC6809::ngca()
{
if ((CC & CC_C) == 0) {
nega();
}
/* $43 COMA inherent -**01 */
-volatile void MC6809::coma()
+void MC6809::coma()
{
A = ~A;
CLR_NZV;
}
/* $44 LSRA inherent -0*-* */
-volatile void MC6809::lsra()
+void MC6809::lsra()
{
CLR_NZC;
CC |= (A & CC_C);
/* $45 ILLEGAL, same as $44 */
/* $46 RORA inherent -**-* */
-volatile void MC6809::rora()
+void MC6809::rora()
{
uint8 r;
uint8 t;
}
/* $47 ASRA inherent ?**-* */
-volatile void MC6809::asra()
+void MC6809::asra()
{
CLR_NZC;
CC |= (A & CC_C);
}
/* $48 ASLA inherent ?**** */
-volatile void MC6809::asla()
+void MC6809::asla()
{
uint16 r;
r = A << 1;
}
/* $49 ROLA inherent -**** */
-volatile void MC6809::rola()
+void MC6809::rola()
{
uint16 t, r;
t = A & 0x00ff;
}
/* $4A DECA inherent -***- */
-volatile void MC6809::deca()
+void MC6809::deca()
{
--A;
CLR_NZV;
}
/* $4B DCCA */
-volatile void MC6809::dcca()
+void MC6809::dcca()
{
uint8 s;
// BYTE t = A;
}
/* $4C INCA inherent -***- */
-volatile void MC6809::inca()
+void MC6809::inca()
{
++A;
CLR_NZV;
}
/* $4D TSTA inherent -**0- */
-volatile void MC6809::tsta()
+void MC6809::tsta()
{
CLR_NZV;
SET_NZ8(A);
}
/* $4E CLCA */
-volatile void MC6809::clca()
+void MC6809::clca()
{
A = 0;
CLR_NZV;
}
/* $4F CLRA inherent -0100 */
-volatile void MC6809::clra()
+void MC6809::clra()
{
A = 0;
CLR_NZVC; SEZ;
}
/* $50 NEGB inherent ?**** */
-volatile void MC6809::negb()
+void MC6809::negb()
{
uint16 r;
r = -B;
/* $51 ILLEGAL, same as $50 */
/* $52 NGCB */
-volatile void MC6809::ngcb()
+void MC6809::ngcb()
{
if ((CC & CC_C) == 0) {
negb();
}
/* $53 COMB inherent -**01 */
-volatile void MC6809::comb()
+void MC6809::comb()
{
B = ~B;
CLR_NZV;
}
/* $54 LSRB inherent -0*-* */
-volatile void MC6809::lsrb()
+void MC6809::lsrb()
{
CLR_NZC;
CC |= (B & CC_C);
/* $55 ILLEGAL, same as $54 */
/* $56 RORB inherent -**-* */
-volatile void MC6809::rorb()
+void MC6809::rorb()
{
uint8 r;
r = (CC & CC_C) << 7;
}
/* $57 ASRB inherent ?**-* */
-volatile void MC6809::asrb()
+void MC6809::asrb()
{
CLR_NZC;
CC |= (B & CC_C);
}
/* $58 ASLB inherent ?**** */
-volatile void MC6809::aslb()
+void MC6809::aslb()
{
uint16 r;
r = B << 1;
}
/* $59 ROLB inherent -**** */
-volatile void MC6809::rolb()
+void MC6809::rolb()
{
uint16 t, r;
t = B;
}
/* $5A DECB inherent -***- */
-volatile void MC6809::decb()
+void MC6809::decb()
{
--B;
CLR_NZV;
}
/* $5B DCCB */
-volatile void MC6809::dccb()
+void MC6809::dccb()
{
BYTE s;
--B;
}
/* $5C INCB inherent -***- */
-volatile void MC6809::incb()
+void MC6809::incb()
{
++B;
CLR_NZV;
}
/* $5D TSTB inherent -**0- */
-volatile void MC6809::tstb()
+void MC6809::tstb()
{
CLR_NZV;
SET_NZ8(B);
}
/* $5E CLCB */
-volatile void MC6809::clcb()
+void MC6809::clcb()
{
B = 0;
CLR_NZV;
}
/* $5F CLRB inherent -0100 */
-volatile void MC6809::clrb()
+void MC6809::clrb()
{
B = 0;
CLR_NZVC; SEZ;
}
/* $60 NEG indexed ?**** */
-volatile void MC6809::neg_ix()
+void MC6809::neg_ix()
{
uint16 r, t;
fetch_effective_address();
/* $61 ILLEGAL, same as $60 */
/* $62 NGC_IX */
-volatile void MC6809::ngc_ix()
+void MC6809::ngc_ix()
{
if ((CC & CC_C) == 0) {
neg_ix();
}
/* $63 COM indexed -**01 */
-volatile void MC6809::com_ix()
+void MC6809::com_ix()
{
uint8 t;
fetch_effective_address();
}
/* $64 LSR indexed -0*-* */
-volatile void MC6809::lsr_ix()
+void MC6809::lsr_ix()
{
uint8 t;
fetch_effective_address();
/* $65 ILLEGAL, same as $64 */
/* $66 ROR indexed -**-* */
-volatile void MC6809::ror_ix()
+void MC6809::ror_ix()
{
uint8 t, r;
fetch_effective_address();
}
/* $67 ASR indexed ?**-* */
-volatile void MC6809::asr_ix()
+void MC6809::asr_ix()
{
uint8 t;
fetch_effective_address();
}
/* $68 ASL indexed ?**** */
-volatile void MC6809::asl_ix()
+void MC6809::asl_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $69 ROL indexed -**** */
-volatile void MC6809::rol_ix()
+void MC6809::rol_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $6A DEC indexed -***- */
-volatile void MC6809::dec_ix()
+void MC6809::dec_ix()
{
uint8 t;
fetch_effective_address();
}
/* $6B ILLEGAL, same as $6A */
-volatile void MC6809::dcc_ix()
+void MC6809::dcc_ix()
{
BYTE t, s;
fetch_effective_address();
}
/* $6C INC indexed -***- */
-volatile void MC6809::inc_ix()
+void MC6809::inc_ix()
{
uint8 t;
fetch_effective_address();
}
/* $6D TST indexed -**0- */
-volatile void MC6809::tst_ix()
+void MC6809::tst_ix()
{
uint8 t;
fetch_effective_address();
}
/* $6E JMP indexed ----- */
-volatile void MC6809::jmp_ix()
+void MC6809::jmp_ix()
{
fetch_effective_address();
PCD = EAD;
}
/* $6F CLR indexed -0100 */
-volatile void MC6809::clr_ix()
+void MC6809::clr_ix()
{
fetch_effective_address();
(void)RM(EAD);
}
/* $70 NEG extended ?**** */
-volatile void MC6809::neg_ex()
+void MC6809::neg_ex()
{
uint16 r, t;
EXTBYTE(t); r = -t;
/* $71 ILLEGAL, same as $70 */
/* $72 NGC extended */
-volatile void MC6809::ngc_ex()
+void MC6809::ngc_ex()
{
if ((CC & CC_C) == 0) {
neg_ex();
/* $73 COM extended -**01 */
-volatile void MC6809::com_ex()
+void MC6809::com_ex()
{
uint8 t;
EXTBYTE(t); t = ~t;
}
/* $74 LSR extended -0*-* */
-volatile void MC6809::lsr_ex()
+void MC6809::lsr_ex()
{
uint8 t;
EXTBYTE(t); CLR_NZC; CC |= (t & CC_C);
/* $75 ILLEGAL, same as $74 */
/* $76 ROR extended -**-* */
-volatile void MC6809::ror_ex()
+void MC6809::ror_ex()
{
uint8 t, r;
EXTBYTE(t); r = (CC & CC_C) << 7;
}
/* $77 ASR extended ?**-* */
-volatile void MC6809::asr_ex()
+void MC6809::asr_ex()
{
uint8 t;
EXTBYTE(t); CLR_NZC; CC |= (t & CC_C);
}
/* $78 ASL extended ?**** */
-volatile void MC6809::asl_ex()
+void MC6809::asl_ex()
{
uint16 t, r;
EXTBYTE(t); r = t << 1;
}
/* $79 ROL extended -**** */
-volatile void MC6809::rol_ex()
+void MC6809::rol_ex()
{
uint16 t, r;
EXTBYTE(t); r = (CC & CC_C) | (t << 1);
}
/* $7A DEC extended -***- */
-volatile void MC6809::dec_ex()
+void MC6809::dec_ex()
{
uint8 t;
EXTBYTE(t); --t;
}
/* $7B DCC extended */
-volatile void MC6809::dcc_ex()
+void MC6809::dcc_ex()
{
BYTE t, s;
EXTBYTE(t);
}
/* $7C INC extended -***- */
-volatile void MC6809::inc_ex()
+void MC6809::inc_ex()
{
uint8 t;
EXTBYTE(t); ++t;
}
/* $7D TST extended -**0- */
-volatile void MC6809::tst_ex()
+void MC6809::tst_ex()
{
uint8 t;
EXTBYTE(t); CLR_NZV; SET_NZ8(t);
}
/* $7E JMP extended ----- */
-volatile void MC6809::jmp_ex()
+void MC6809::jmp_ex()
{
EXTENDED;
PCD = EAD;
}
/* $7F CLR extended -0100 */
-volatile void MC6809::clr_ex()
+void MC6809::clr_ex()
{
EXTENDED;
(void)RM(EAD);
}
/* $80 SUBA immediate ?**** */
-volatile void MC6809::suba_im()
+void MC6809::suba_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $81 CMPA immediate ?**** */
-volatile void MC6809::cmpa_im()
+void MC6809::cmpa_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $82 SBCA immediate ?**** */
-volatile void MC6809::sbca_im()
+void MC6809::sbca_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $83 SUBD (CMPD CMPU) immediate -**** */
-volatile void MC6809::subd_im()
+void MC6809::subd_im()
{
uint32 r, d;
pair b;
}
/* $1083 CMPD immediate -**** */
-volatile void MC6809::cmpd_im()
+void MC6809::cmpd_im()
{
uint32 r, d;
pair b;
}
/* $1183 CMPU immediate -**** */
-volatile void MC6809::cmpu_im()
+void MC6809::cmpu_im()
{
uint32 r, d;
pair b;
}
/* $84 ANDA immediate -**0- */
-volatile void MC6809::anda_im()
+void MC6809::anda_im()
{
uint8 t;
IMMBYTE(t);
}
/* $85 BITA immediate -**0- */
-volatile void MC6809::bita_im()
+void MC6809::bita_im()
{
uint8 t, r;
IMMBYTE(t);
}
/* $86 LDA immediate -**0- */
-volatile void MC6809::lda_im()
+void MC6809::lda_im()
{
IMMBYTE(A);
CLR_NZV;
/* is this a legal instruction? */
#if 0
/* $87 STA immediate -**0- in not used*/
-volatile void MC6809::sta_im()
+void MC6809::sta_im()
{
CLR_NZV;
SET_NZ8(A);
/*
* $87 , $C7: FLAG8
*/
-volatile void MC6809::flag8_im()
+void MC6809::flag8_im()
{
// 20111117
BYTE t;
#endif
/* $88 EORA immediate -**0- */
-volatile void MC6809::eora_im()
+void MC6809::eora_im()
{
uint8 t;
IMMBYTE(t);
}
/* $89 ADCA immediate ***** */
-volatile void MC6809::adca_im()
+void MC6809::adca_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $8A ORA immediate -**0- */
-volatile void MC6809::ora_im()
+void MC6809::ora_im()
{
uint8 t;
IMMBYTE(t);
}
/* $8B ADDA immediate ***** */
-volatile void MC6809::adda_im()
+void MC6809::adda_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $8C CMPX (CMPY CMPS) immediate -**** */
-volatile void MC6809::cmpx_im()
+void MC6809::cmpx_im()
{
uint32 r, d;
pair b;
}
/* $108C CMPY immediate -**** */
-volatile void MC6809::cmpy_im()
+void MC6809::cmpy_im()
{
uint32 r, d;
pair b;
}
/* $118C CMPS immediate -**** */
-volatile void MC6809::cmps_im()
+void MC6809::cmps_im()
{
uint32 r, d;
pair b;
}
/* $8D BSR ----- */
-volatile void MC6809::bsr()
+void MC6809::bsr()
{
uint8 t;
IMMBYTE(t);
}
/* $8E LDX (LDY) immediate -**0- */
-volatile void MC6809::ldx_im()
+void MC6809::ldx_im()
{
IMMWORD(pX);
CLR_NZV;
}
/* $108E LDY immediate -**0- */
-volatile void MC6809::ldy_im()
+void MC6809::ldy_im()
{
IMMWORD(pY);
CLR_NZV;
/* is this a legal instruction? */
#if 0
/* $8F STX (STY) immediate -**0- */
-volatile void MC6809::stx_im()
+void MC6809::stx_im()
{
CLR_NZV;
SET_NZ16(X);
/*
* $8F , $CF: FLAG16
*/
-volatile void MC6809::flag16_im()
+void MC6809::flag16_im()
{
pair t;
IMMWORD(t);
#endif
/* is this a legal instruction? */
/* $108F STY immediate -**0- */
-volatile void MC6809::sty_im()
+void MC6809::sty_im()
{
CLR_NZV;
SET_NZ16(Y);
}
/* $90 SUBA direct ?**** */
-volatile void MC6809::suba_di()
+void MC6809::suba_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $91 CMPA direct ?**** */
-volatile void MC6809::cmpa_di()
+void MC6809::cmpa_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $92 SBCA direct ?**** */
-volatile void MC6809::sbca_di()
+void MC6809::sbca_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $93 SUBD (CMPD CMPU) direct -**** */
-volatile void MC6809::subd_di()
+void MC6809::subd_di()
{
uint32 r, d;
pair b;
}
/* $1093 CMPD direct -**** */
-volatile void MC6809::cmpd_di()
+void MC6809::cmpd_di()
{
uint32 r, d;
pair b;
}
/* $1193 CMPU direct -**** */
-volatile void MC6809::cmpu_di()
+void MC6809::cmpu_di()
{
uint32 r, d;
pair b;
}
/* $94 ANDA direct -**0- */
-volatile void MC6809::anda_di()
+void MC6809::anda_di()
{
uint8 t;
DIRBYTE(t);
}
/* $95 BITA direct -**0- */
-volatile void MC6809::bita_di()
+void MC6809::bita_di()
{
uint8 t, r;
DIRBYTE(t);
}
/* $96 LDA direct -**0- */
-volatile void MC6809::lda_di()
+void MC6809::lda_di()
{
DIRBYTE(A);
CLR_NZV;
}
/* $97 STA direct -**0- */
-volatile void MC6809::sta_di()
+void MC6809::sta_di()
{
CLR_NZV;
SET_NZ8(A);
}
/* $98 EORA direct -**0- */
-volatile void MC6809::eora_di()
+void MC6809::eora_di()
{
uint8 t;
DIRBYTE(t);
}
/* $99 ADCA direct ***** */
-volatile void MC6809::adca_di()
+void MC6809::adca_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $9A ORA direct -**0- */
-volatile void MC6809::ora_di()
+void MC6809::ora_di()
{
uint8 t;
DIRBYTE(t);
}
/* $9B ADDA direct ***** */
-volatile void MC6809::adda_di()
+void MC6809::adda_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $9C CMPX (CMPY CMPS) direct -**** */
-volatile void MC6809::cmpx_di()
+void MC6809::cmpx_di()
{
uint32 r, d;
pair b;
}
/* $109C CMPY direct -**** */
-volatile void MC6809::cmpy_di()
+void MC6809::cmpy_di()
{
uint32 r, d;
pair b;
}
/* $119C CMPS direct -**** */
-volatile void MC6809::cmps_di()
+void MC6809::cmps_di()
{
uint32 r, d;
pair b;
}
/* $9D JSR direct ----- */
-volatile void MC6809::jsr_di()
+void MC6809::jsr_di()
{
DIRECT;
PUSHWORD(pPC);
}
/* $9E LDX (LDY) direct -**0- */
-volatile void MC6809::ldx_di()
+void MC6809::ldx_di()
{
DIRWORD(pX);
CLR_NZV;
}
/* $109E LDY direct -**0- */
-volatile void MC6809::ldy_di()
+void MC6809::ldy_di()
{
DIRWORD(pY);
CLR_NZV;
}
/* $9F STX (STY) direct -**0- */
-volatile void MC6809::stx_di()
+void MC6809::stx_di()
{
CLR_NZV;
SET_NZ16(X);
}
/* $109F STY direct -**0- */
-volatile void MC6809::sty_di()
+void MC6809::sty_di()
{
CLR_NZV;
SET_NZ16(Y);
}
/* $a0 SUBA indexed ?**** */
-volatile void MC6809::suba_ix()
+void MC6809::suba_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $a1 CMPA indexed ?**** */
-volatile void MC6809::cmpa_ix()
+void MC6809::cmpa_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $a2 SBCA indexed ?**** */
-volatile void MC6809::sbca_ix()
+void MC6809::sbca_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $a3 SUBD (CMPD CMPU) indexed -**** */
-volatile void MC6809::subd_ix()
+void MC6809::subd_ix()
{
uint32 r, d;
pair b;
}
/* $10a3 CMPD indexed -**** */
-volatile void MC6809::cmpd_ix()
+void MC6809::cmpd_ix()
{
uint32 r, d;
pair b;
}
/* $11a3 CMPU indexed -**** */
-volatile void MC6809::cmpu_ix()
+void MC6809::cmpu_ix()
{
uint32 r;
pair b;
}
/* $a4 ANDA indexed -**0- */
-volatile void MC6809::anda_ix()
+void MC6809::anda_ix()
{
fetch_effective_address();
A &= RM(EAD);
}
/* $a5 BITA indexed -**0- */
-volatile void MC6809::bita_ix()
+void MC6809::bita_ix()
{
uint8 r;
fetch_effective_address();
}
/* $a6 LDA indexed -**0- */
-volatile void MC6809::lda_ix()
+void MC6809::lda_ix()
{
fetch_effective_address();
A = RM(EAD);
}
/* $a7 STA indexed -**0- */
-volatile void MC6809::sta_ix()
+void MC6809::sta_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $a8 EORA indexed -**0- */
-volatile void MC6809::eora_ix()
+void MC6809::eora_ix()
{
fetch_effective_address();
A ^= RM(EAD);
}
/* $a9 ADCA indexed ***** */
-volatile void MC6809::adca_ix()
+void MC6809::adca_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $aA ORA indexed -**0- */
-volatile void MC6809::ora_ix()
+void MC6809::ora_ix()
{
fetch_effective_address();
A |= RM(EAD);
}
/* $aB ADDA indexed ***** */
-volatile void MC6809::adda_ix()
+void MC6809::adda_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $aC CMPX (CMPY CMPS) indexed -**** */
-volatile void MC6809::cmpx_ix()
+void MC6809::cmpx_ix()
{
uint32 r, d;
pair b;
}
/* $10aC CMPY indexed -**** */
-volatile void MC6809::cmpy_ix()
+void MC6809::cmpy_ix()
{
uint32 r, d;
pair b;
}
/* $11aC CMPS indexed -**** */
-volatile void MC6809::cmps_ix()
+void MC6809::cmps_ix()
{
uint32 r, d;
pair b;
}
/* $aD JSR indexed ----- */
-volatile void MC6809::jsr_ix()
+void MC6809::jsr_ix()
{
fetch_effective_address();
PUSHWORD(pPC);
}
/* $aE LDX (LDY) indexed -**0- */
-volatile void MC6809::ldx_ix()
+void MC6809::ldx_ix()
{
fetch_effective_address();
X = RM16(EAD);
}
/* $10aE LDY indexed -**0- */
-volatile void MC6809::ldy_ix()
+void MC6809::ldy_ix()
{
fetch_effective_address();
Y = RM16(EAD);
}
/* $aF STX (STY) indexed -**0- */
-volatile void MC6809::stx_ix()
+void MC6809::stx_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $10aF STY indexed -**0- */
-volatile void MC6809::sty_ix()
+void MC6809::sty_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $b0 SUBA extended ?**** */
-volatile void MC6809::suba_ex()
+void MC6809::suba_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $b1 CMPA extended ?**** */
-volatile void MC6809::cmpa_ex()
+void MC6809::cmpa_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $b2 SBCA extended ?**** */
-volatile void MC6809::sbca_ex()
+void MC6809::sbca_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $b3 SUBD (CMPD CMPU) extended -**** */
-volatile void MC6809::subd_ex()
+void MC6809::subd_ex()
{
uint32 r, d;
pair b;
}
/* $10b3 CMPD extended -**** */
-volatile void MC6809::cmpd_ex()
+void MC6809::cmpd_ex()
{
uint32 r, d;
pair b;
}
/* $11b3 CMPU extended -**** */
-volatile void MC6809::cmpu_ex()
+void MC6809::cmpu_ex()
{
uint32 r, d;
pair b;
}
/* $b4 ANDA extended -**0- */
-volatile void MC6809::anda_ex()
+void MC6809::anda_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $b5 BITA extended -**0- */
-volatile void MC6809::bita_ex()
+void MC6809::bita_ex()
{
uint8 t, r;
EXTBYTE(t);
}
/* $b6 LDA extended -**0- */
-volatile void MC6809::lda_ex()
+void MC6809::lda_ex()
{
EXTBYTE(A);
CLR_NZV;
}
/* $b7 STA extended -**0- */
-volatile void MC6809::sta_ex()
+void MC6809::sta_ex()
{
CLR_NZV;
SET_NZ8(A);
}
/* $b8 EORA extended -**0- */
-volatile void MC6809::eora_ex()
+void MC6809::eora_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $b9 ADCA extended ***** */
-volatile void MC6809::adca_ex()
+void MC6809::adca_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $bA ORA extended -**0- */
-volatile void MC6809::ora_ex()
+void MC6809::ora_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $bB ADDA extended ***** */
-volatile void MC6809::adda_ex()
+void MC6809::adda_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $bC CMPX (CMPY CMPS) extended -**** */
-volatile void MC6809::cmpx_ex()
+void MC6809::cmpx_ex()
{
uint32 r, d;
pair b;
}
/* $10bC CMPY extended -**** */
-volatile void MC6809::cmpy_ex()
+void MC6809::cmpy_ex()
{
uint32 r, d;
pair b;
}
/* $11bC CMPS extended -**** */
-volatile void MC6809::cmps_ex()
+void MC6809::cmps_ex()
{
uint32 r, d;
pair b;
}
/* $bD JSR extended ----- */
-volatile void MC6809::jsr_ex()
+void MC6809::jsr_ex()
{
EXTENDED;
PUSHWORD(pPC);
}
/* $bE LDX (LDY) extended -**0- */
-volatile void MC6809::ldx_ex()
+void MC6809::ldx_ex()
{
EXTWORD(pX);
CLR_NZV;
}
/* $10bE LDY extended -**0- */
-volatile void MC6809::ldy_ex()
+void MC6809::ldy_ex()
{
EXTWORD(pY);
CLR_NZV;
}
/* $bF STX (STY) extended -**0- */
-volatile void MC6809::stx_ex()
+void MC6809::stx_ex()
{
CLR_NZV;
SET_NZ16(X);
}
/* $10bF STY extended -**0- */
-volatile void MC6809::sty_ex()
+void MC6809::sty_ex()
{
CLR_NZV;
SET_NZ16(Y);
}
/* $c0 SUBB immediate ?**** */
-volatile void MC6809::subb_im()
+void MC6809::subb_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $c1 CMPB immediate ?**** */
-volatile void MC6809::cmpb_im()
+void MC6809::cmpb_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $c2 SBCB immediate ?**** */
-volatile void MC6809::sbcb_im()
+void MC6809::sbcb_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $c3 ADDD immediate -**** */
-volatile void MC6809::addd_im()
+void MC6809::addd_im()
{
uint32 r, d;
pair b;
}
/* $c4 ANDB immediate -**0- */
-volatile void MC6809::andb_im()
+void MC6809::andb_im()
{
uint8 t;
IMMBYTE(t);
}
/* $c5 BITB immediate -**0- */
-volatile void MC6809::bitb_im()
+void MC6809::bitb_im()
{
uint8 t, r;
IMMBYTE(t);
}
/* $c6 LDB immediate -**0- */
-volatile void MC6809::ldb_im()
+void MC6809::ldb_im()
{
IMMBYTE(B);
CLR_NZV;
/* is this a legal instruction? */
/* $c7 STB immediate -**0- */
-volatile void MC6809::stb_im()
+void MC6809::stb_im()
{
CLR_NZV;
SET_NZ8(B);
}
/* $c8 EORB immediate -**0- */
-volatile void MC6809::eorb_im()
+void MC6809::eorb_im()
{
uint8 t;
IMMBYTE(t);
}
/* $c9 ADCB immediate ***** */
-volatile void MC6809::adcb_im()
+void MC6809::adcb_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $cA ORB immediate -**0- */
-volatile void MC6809::orb_im()
+void MC6809::orb_im()
{
uint8 t;
IMMBYTE(t);
}
/* $cB ADDB immediate ***** */
-volatile void MC6809::addb_im()
+void MC6809::addb_im()
{
uint16 t, r;
IMMBYTE(t);
}
/* $cC LDD immediate -**0- */
-volatile void MC6809::ldd_im()
+void MC6809::ldd_im()
{
IMMWORD(pD);
CLR_NZV;
/* is this a legal instruction? */
/* $cD STD immediate -**0- */
-volatile void MC6809::std_im()
+void MC6809::std_im()
{
CLR_NZV;
SET_NZ16(D);
}
/* $cE LDU (LDS) immediate -**0- */
-volatile void MC6809::ldu_im()
+void MC6809::ldu_im()
{
IMMWORD(pU);
CLR_NZV;
}
/* $10cE LDS immediate -**0- */
-volatile void MC6809::lds_im()
+void MC6809::lds_im()
{
IMMWORD(pS);
CLR_NZV;
/* is this a legal instruction? */
/* $cF STU (STS) immediate -**0- */
-volatile void MC6809::stu_im()
+void MC6809::stu_im()
{
CLR_NZV;
SET_NZ16(U);
/* is this a legal instruction? */
/* $10cF STS immediate -**0- */
-volatile void MC6809::sts_im()
+void MC6809::sts_im()
{
CLR_NZV;
SET_NZ16(S);
}
/* $d0 SUBB direct ?**** */
-volatile void MC6809::subb_di()
+void MC6809::subb_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $d1 CMPB direct ?**** */
-volatile void MC6809::cmpb_di()
+void MC6809::cmpb_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $d2 SBCB direct ?**** */
-volatile void MC6809::sbcb_di()
+void MC6809::sbcb_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $d3 ADDD direct -**** */
-volatile void MC6809::addd_di()
+void MC6809::addd_di()
{
uint32 r, d;
pair b;
}
/* $d4 ANDB direct -**0- */
-volatile void MC6809::andb_di()
+void MC6809::andb_di()
{
uint8 t;
DIRBYTE(t);
}
/* $d5 BITB direct -**0- */
-volatile void MC6809::bitb_di()
+void MC6809::bitb_di()
{
uint8 t, r;
DIRBYTE(t);
}
/* $d6 LDB direct -**0- */
-volatile void MC6809::ldb_di()
+void MC6809::ldb_di()
{
DIRBYTE(B);
CLR_NZV;
}
/* $d7 STB direct -**0- */
-volatile void MC6809::stb_di()
+void MC6809::stb_di()
{
CLR_NZV;
SET_NZ8(B);
}
/* $d8 EORB direct -**0- */
-volatile void MC6809::eorb_di()
+void MC6809::eorb_di()
{
uint8 t;
DIRBYTE(t);
}
/* $d9 ADCB direct ***** */
-volatile void MC6809::adcb_di()
+void MC6809::adcb_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $dA ORB direct -**0- */
-volatile void MC6809::orb_di()
+void MC6809::orb_di()
{
uint8 t;
DIRBYTE(t);
}
/* $dB ADDB direct ***** */
-volatile void MC6809::addb_di()
+void MC6809::addb_di()
{
uint16 t, r;
DIRBYTE(t);
}
/* $dC LDD direct -**0- */
-volatile void MC6809::ldd_di()
+void MC6809::ldd_di()
{
DIRWORD(pD);
CLR_NZV;
}
/* $dD STD direct -**0- */
-volatile void MC6809::std_di()
+void MC6809::std_di()
{
CLR_NZV;
SET_NZ16(D);
}
/* $dE LDU (LDS) direct -**0- */
-volatile void MC6809::ldu_di()
+void MC6809::ldu_di()
{
DIRWORD(pU);
CLR_NZV;
}
/* $10dE LDS direct -**0- */
-volatile void MC6809::lds_di()
+void MC6809::lds_di()
{
DIRWORD(pS);
CLR_NZV;
}
/* $dF STU (STS) direct -**0- */
-volatile void MC6809::stu_di()
+void MC6809::stu_di()
{
CLR_NZV;
SET_NZ16(U);
}
/* $10dF STS direct -**0- */
-volatile void MC6809::sts_di()
+void MC6809::sts_di()
{
CLR_NZV;
SET_NZ16(S);
}
/* $e0 SUBB indexed ?**** */
-volatile void MC6809::subb_ix()
+void MC6809::subb_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $e1 CMPB indexed ?**** */
-volatile void MC6809::cmpb_ix()
+void MC6809::cmpb_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $e2 SBCB indexed ?**** */
-volatile void MC6809::sbcb_ix()
+void MC6809::sbcb_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $e3 ADDD indexed -**** */
-volatile void MC6809::addd_ix()
+void MC6809::addd_ix()
{
uint32 r, d;
pair b;
}
/* $e4 ANDB indexed -**0- */
-volatile void MC6809::andb_ix()
+void MC6809::andb_ix()
{
fetch_effective_address();
B &= RM(EAD);
}
/* $e5 BITB indexed -**0- */
-volatile void MC6809::bitb_ix()
+void MC6809::bitb_ix()
{
uint8 r;
fetch_effective_address();
}
/* $e6 LDB indexed -**0- */
-volatile void MC6809::ldb_ix()
+void MC6809::ldb_ix()
{
fetch_effective_address();
B = RM(EAD);
}
/* $e7 STB indexed -**0- */
-volatile void MC6809::stb_ix()
+void MC6809::stb_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $e8 EORB indexed -**0- */
-volatile void MC6809::eorb_ix()
+void MC6809::eorb_ix()
{
fetch_effective_address();
B ^= RM(EAD);
}
/* $e9 ADCB indexed ***** */
-volatile void MC6809::adcb_ix()
+void MC6809::adcb_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $eA ORB indexed -**0- */
-volatile void MC6809::orb_ix()
+void MC6809::orb_ix()
{
fetch_effective_address();
B |= RM(EAD);
}
/* $eB ADDB indexed ***** */
-volatile void MC6809::addb_ix()
+void MC6809::addb_ix()
{
uint16 t, r;
fetch_effective_address();
}
/* $eC LDD indexed -**0- */
-volatile void MC6809::ldd_ix()
+void MC6809::ldd_ix()
{
fetch_effective_address();
D = RM16(EAD);
}
/* $eD STD indexed -**0- */
-volatile void MC6809::std_ix()
+void MC6809::std_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $eE LDU (LDS) indexed -**0- */
-volatile void MC6809::ldu_ix()
+void MC6809::ldu_ix()
{
fetch_effective_address();
U = RM16(EAD);
}
/* $10eE LDS indexed -**0- */
-volatile void MC6809::lds_ix()
+void MC6809::lds_ix()
{
fetch_effective_address();
S = RM16(EAD);
}
/* $eF STU (STS) indexed -**0- */
-volatile void MC6809::stu_ix()
+void MC6809::stu_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $10eF STS indexed -**0- */
-volatile void MC6809::sts_ix()
+void MC6809::sts_ix()
{
fetch_effective_address();
CLR_NZV;
}
/* $f0 SUBB extended ?**** */
-volatile void MC6809::subb_ex()
+void MC6809::subb_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $f1 CMPB extended ?**** */
-volatile void MC6809::cmpb_ex()
+void MC6809::cmpb_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $f2 SBCB extended ?**** */
-volatile void MC6809::sbcb_ex()
+void MC6809::sbcb_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $f3 ADDD extended -**** */
-volatile void MC6809::addd_ex()
+void MC6809::addd_ex()
{
uint32 r, d;
pair b;
}
/* $f4 ANDB extended -**0- */
-volatile void MC6809::andb_ex()
+void MC6809::andb_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $f5 BITB extended -**0- */
-volatile void MC6809::bitb_ex()
+void MC6809::bitb_ex()
{
uint8 t, r;
EXTBYTE(t);
}
/* $f6 LDB extended -**0- */
-volatile void MC6809::ldb_ex()
+void MC6809::ldb_ex()
{
EXTBYTE(B);
CLR_NZV;
}
/* $f7 STB extended -**0- */
-volatile void MC6809::stb_ex()
+void MC6809::stb_ex()
{
CLR_NZV;
SET_NZ8(B);
}
/* $f8 EORB extended -**0- */
-volatile void MC6809::eorb_ex()
+void MC6809::eorb_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $f9 ADCB extended ***** */
-volatile void MC6809::adcb_ex()
+void MC6809::adcb_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $fA ORB extended -**0- */
-volatile void MC6809::orb_ex()
+void MC6809::orb_ex()
{
uint8 t;
EXTBYTE(t);
}
/* $fB ADDB extended ***** */
-volatile void MC6809::addb_ex()
+void MC6809::addb_ex()
{
uint16 t, r;
EXTBYTE(t);
}
/* $fC LDD extended -**0- */
-volatile void MC6809::ldd_ex()
+void MC6809::ldd_ex()
{
EXTWORD(pD);
CLR_NZV;
}
/* $fD STD extended -**0- */
-volatile void MC6809::std_ex()
+void MC6809::std_ex()
{
CLR_NZV;
SET_NZ16(D);
}
/* $fE LDU (LDS) extended -**0- */
-volatile void MC6809::ldu_ex()
+void MC6809::ldu_ex()
{
EXTWORD(pU);
CLR_NZV;
}
/* $10fE LDS extended -**0- */
-volatile void MC6809::lds_ex()
+void MC6809::lds_ex()
{
EXTWORD(pS);
CLR_NZV;
}
/* $fF STU (STS) extended -**0- */
-volatile void MC6809::stu_ex()
+void MC6809::stu_ex()
{
CLR_NZV;
SET_NZ16(U);
}
/* $10fF STS extended -**0- */
-volatile void MC6809::sts_ex()
+void MC6809::sts_ex()
{
CLR_NZV;
SET_NZ16(S);
/* $10xx opcodes */
-volatile void MC6809::pref10()
+void MC6809::pref10()
{
uint8 ireg2 = ROP_ARG(PCD);
PC++;
}
/* $11xx opcodes */
-volatile void MC6809::pref11()
+void MC6809::pref11()
{
uint8 ireg2 = ROP(PCD);
PC++;
pair dp; /* Direct Page register (page in MSB) */
pair u, s; /* Stack pointers */
pair x, y; /* Index registers */
- volatile uint8 cc;
+ uint8 cc;
pair ea; /* effective address */
uint32 int_state;
void op(uint8 ireg);
void fetch_effective_address();
public:
- volatile void abx();
- volatile void adca_di();
- volatile void adca_ex();
- volatile void adca_im();
- volatile void adca_ix();
- volatile void adcb_di();
- volatile void adcb_ex();
- volatile void adcb_im();
- volatile void adcb_ix();
- volatile void adda_di();
- volatile void adda_ex();
- volatile void adda_im();
- volatile void adda_ix();
- volatile void addb_di();
- volatile void addb_ex();
- volatile void addb_im();
- volatile void addb_ix();
- volatile void addd_di();
- volatile void addd_ex();
- volatile void addd_im();
- volatile void addd_ix();
- volatile void anda_di();
- volatile void anda_ex();
- volatile void anda_im();
- volatile void anda_ix();
- volatile void andb_di();
- volatile void andb_ex();
- volatile void andb_im();
- volatile void andb_ix();
- volatile void andcc();
- volatile void asla();
- volatile void aslb();
- volatile void aslcc_in();
- volatile void asl_di();
- volatile void asl_ex();
- volatile void asl_ix();
- volatile void asra();
- volatile void asrb();
- volatile void asr_di();
- volatile void asr_ex();
- volatile void asr_ix();
- volatile void bcc();
- volatile void bcs();
- volatile void beq();
- volatile void bge();
- volatile void bgt();
- volatile void bhi();
- volatile void bita_di();
- volatile void bita_ex();
- volatile void bita_im();
- volatile void bita_ix();
- volatile void bitb_di();
- volatile void bitb_ex();
- volatile void bitb_im();
- volatile void bitb_ix();
- volatile void ble();
- volatile void bls();
- volatile void blt();
- volatile void bmi();
- volatile void bne();
- volatile void bpl();
- volatile void bra();
- volatile void brn();
- volatile void bsr();
- volatile void bvc();
- volatile void bvs();
- volatile void clca();
- volatile void clcb();
- volatile void clra();
- volatile void clrb();
- volatile void clr_di();
- volatile void clr_ex();
- volatile void clr_ix();
- volatile void cmpa_di();
- volatile void cmpa_ex();
- volatile void cmpa_im();
- volatile void cmpa_ix();
- volatile void cmpb_di();
- volatile void cmpb_ex();
- volatile void cmpb_im();
- volatile void cmpb_ix();
- volatile void cmpd_di();
- volatile void cmpd_ex();
- volatile void cmpd_im();
- volatile void cmpd_ix();
- volatile void cmps_di();
- volatile void cmps_ex();
- volatile void cmps_im();
- volatile void cmps_ix();
- volatile void cmpu_di();
- volatile void cmpu_ex();
- volatile void cmpu_im();
- volatile void cmpu_ix();
- volatile void cmpx_di();
- volatile void cmpx_ex();
- volatile void cmpx_im();
- volatile void cmpx_ix();
- volatile void cmpy_di();
- volatile void cmpy_ex();
- volatile void cmpy_im();
- volatile void cmpy_ix();
- volatile void coma();
- volatile void comb();
- volatile void com_di();
- volatile void com_ex();
- volatile void com_ix();
- volatile void cwai();
- volatile void daa();
- volatile void dcca();
- volatile void dccb();
- volatile void dcc_di();
- volatile void dcc_ex();
- volatile void dcc_ix();
- volatile void deca();
- volatile void decb();
- volatile void dec_di();
- volatile void dec_ex();
- volatile void dec_ix();
- volatile void eora_di();
- volatile void eora_ex();
- volatile void eora_im();
- volatile void eora_ix();
- volatile void eorb_di();
- volatile void eorb_ex();
- volatile void eorb_im();
- volatile void eorb_ix();
- volatile void exg();
- volatile void flag8_im();
- volatile void flag16_im();
- volatile void illegal();
- volatile void inca();
- volatile void incb();
- volatile void inc_di();
- volatile void inc_ex();
- volatile void inc_ix();
- volatile void jmp_di();
- volatile void jmp_ex();
- volatile void jmp_ix();
- volatile void jsr_di();
- volatile void jsr_ex();
- volatile void jsr_ix();
- volatile void lbcc();
- volatile void lbcs();
- volatile void lbeq();
- volatile void lbge();
- volatile void lbgt();
- volatile void lbhi();
- volatile void lble();
- volatile void lbls();
- volatile void lblt();
- volatile void lbmi();
- volatile void lbne();
- volatile void lbpl();
- volatile void lbra();
- volatile void lbrn();
- volatile void lbsr();
- volatile void lbvc();
- volatile void lbvs();
- volatile void lda_di();
- volatile void lda_ex();
- volatile void lda_im();
- volatile void lda_ix();
- volatile void ldb_di();
- volatile void ldb_ex();
- volatile void ldb_im();
- volatile void ldb_ix();
- volatile void ldd_di();
- volatile void ldd_ex();
- volatile void ldd_im();
- volatile void ldd_ix();
- volatile void lds_di();
- volatile void lds_ex();
- volatile void lds_im();
- volatile void lds_ix();
- volatile void ldu_di();
- volatile void ldu_ex();
- volatile void ldu_im();
- volatile void ldu_ix();
- volatile void ldx_di();
- volatile void ldx_ex();
- volatile void ldx_im();
- volatile void ldx_ix();
- volatile void ldy_di();
- volatile void ldy_ex();
- volatile void ldy_im();
- volatile void ldy_ix();
- volatile void leas();
- volatile void leau();
- volatile void leax();
- volatile void leay();
- volatile void lsra();
- volatile void lsrb();
- volatile void lsr_di();
- volatile void lsr_ex();
- volatile void lsr_ix();
- volatile void mul();
- volatile void nega();
- volatile void negb();
- volatile void neg_di();
- volatile void neg_ex();
- volatile void neg_ix();
- volatile void ngca();
- volatile void ngcb();
- volatile void ngc_di();
- volatile void ngc_ex();
- volatile void ngc_ix();
- volatile void nop();
- volatile void ora_di();
- volatile void ora_ex();
- volatile void ora_im();
- volatile void ora_ix();
- volatile void orb_di();
- volatile void orb_ex();
- volatile void orb_im();
- volatile void orb_ix();
- volatile void orcc();
- volatile void pref10();
- volatile void pref11();
- volatile void pshs();
- volatile void pshu();
- volatile void puls();
- volatile void pulu();
- volatile void rola();
- volatile void rolb();
- volatile void rol_di();
- volatile void rol_ex();
- volatile void rol_ix();
- volatile void rora();
- volatile void rorb();
- volatile void ror_di();
- volatile void ror_ex();
- volatile void ror_ix();
- volatile void rst();
- volatile void rti();
- volatile void rts();
- volatile void sbca_di();
- volatile void sbca_ex();
- volatile void sbca_im();
- volatile void sbca_ix();
- volatile void sbcb_di();
- volatile void sbcb_ex();
- volatile void sbcb_im();
- volatile void sbcb_ix();
- volatile void sex();
- volatile void sta_di();
- volatile void sta_ex();
- volatile void sta_im();
- volatile void sta_ix();
- volatile void stb_di();
- volatile void stb_ex();
- volatile void stb_im();
- volatile void stb_ix();
- volatile void std_di();
- volatile void std_ex();
- volatile void std_im();
- volatile void std_ix();
- volatile void sts_di();
- volatile void sts_ex();
- volatile void sts_im();
- volatile void sts_ix();
- volatile void stu_di();
- volatile void stu_ex();
- volatile void stu_im();
- volatile void stu_ix();
- volatile void stx_di();
- volatile void stx_ex();
- volatile void stx_im();
- volatile void stx_ix();
- volatile void sty_di();
- volatile void sty_ex();
- volatile void sty_im();
- volatile void sty_ix();
- volatile void suba_di();
- volatile void suba_ex();
- volatile void suba_im();
- volatile void suba_ix();
- volatile void subb_di();
- volatile void subb_ex();
- volatile void subb_im();
- volatile void subb_ix();
- volatile void subd_di();
- volatile void subd_ex();
- volatile void subd_im();
- volatile void subd_ix();
- volatile void swi2();
- volatile void swi3();
- volatile void swi();
- volatile void sync();
- volatile void tfr();
- volatile void trap();
- volatile void tsta();
- volatile void tstb();
- volatile void tst_di();
- volatile void tst_ex();
- volatile void tst_ix();
+ void abx();
+ void adca_di();
+ void adca_ex();
+ void adca_im();
+ void adca_ix();
+ void adcb_di();
+ void adcb_ex();
+ void adcb_im();
+ void adcb_ix();
+ void adda_di();
+ void adda_ex();
+ void adda_im();
+ void adda_ix();
+ void addb_di();
+ void addb_ex();
+ void addb_im();
+ void addb_ix();
+ void addd_di();
+ void addd_ex();
+ void addd_im();
+ void addd_ix();
+ void anda_di();
+ void anda_ex();
+ void anda_im();
+ void anda_ix();
+ void andb_di();
+ void andb_ex();
+ void andb_im();
+ void andb_ix();
+ void andcc();
+ void asla();
+ void aslb();
+ void aslcc_in();
+ void asl_di();
+ void asl_ex();
+ void asl_ix();
+ void asra();
+ void asrb();
+ void asr_di();
+ void asr_ex();
+ void asr_ix();
+ void bcc();
+ void bcs();
+ void beq();
+ void bge();
+ void bgt();
+ void bhi();
+ void bita_di();
+ void bita_ex();
+ void bita_im();
+ void bita_ix();
+ void bitb_di();
+ void bitb_ex();
+ void bitb_im();
+ void bitb_ix();
+ void ble();
+ void bls();
+ void blt();
+ void bmi();
+ void bne();
+ void bpl();
+ void bra();
+ void brn();
+ void bsr();
+ void bvc();
+ void bvs();
+ void clca();
+ void clcb();
+ void clra();
+ void clrb();
+ void clr_di();
+ void clr_ex();
+ void clr_ix();
+ void cmpa_di();
+ void cmpa_ex();
+ void cmpa_im();
+ void cmpa_ix();
+ void cmpb_di();
+ void cmpb_ex();
+ void cmpb_im();
+ void cmpb_ix();
+ void cmpd_di();
+ void cmpd_ex();
+ void cmpd_im();
+ void cmpd_ix();
+ void cmps_di();
+ void cmps_ex();
+ void cmps_im();
+ void cmps_ix();
+ void cmpu_di();
+ void cmpu_ex();
+ void cmpu_im();
+ void cmpu_ix();
+ void cmpx_di();
+ void cmpx_ex();
+ void cmpx_im();
+ void cmpx_ix();
+ void cmpy_di();
+ void cmpy_ex();
+ void cmpy_im();
+ void cmpy_ix();
+ void coma();
+ void comb();
+ void com_di();
+ void com_ex();
+ void com_ix();
+ void cwai();
+ void daa();
+ void dcca();
+ void dccb();
+ void dcc_di();
+ void dcc_ex();
+ void dcc_ix();
+ void deca();
+ void decb();
+ void dec_di();
+ void dec_ex();
+ void dec_ix();
+ void eora_di();
+ void eora_ex();
+ void eora_im();
+ void eora_ix();
+ void eorb_di();
+ void eorb_ex();
+ void eorb_im();
+ void eorb_ix();
+ void exg();
+ void flag8_im();
+ void flag16_im();
+ void illegal();
+ void inca();
+ void incb();
+ void inc_di();
+ void inc_ex();
+ void inc_ix();
+ void jmp_di();
+ void jmp_ex();
+ void jmp_ix();
+ void jsr_di();
+ void jsr_ex();
+ void jsr_ix();
+ void lbcc();
+ void lbcs();
+ void lbeq();
+ void lbge();
+ void lbgt();
+ void lbhi();
+ void lble();
+ void lbls();
+ void lblt();
+ void lbmi();
+ void lbne();
+ void lbpl();
+ void lbra();
+ void lbrn();
+ void lbsr();
+ void lbvc();
+ void lbvs();
+ void lda_di();
+ void lda_ex();
+ void lda_im();
+ void lda_ix();
+ void ldb_di();
+ void ldb_ex();
+ void ldb_im();
+ void ldb_ix();
+ void ldd_di();
+ void ldd_ex();
+ void ldd_im();
+ void ldd_ix();
+ void lds_di();
+ void lds_ex();
+ void lds_im();
+ void lds_ix();
+ void ldu_di();
+ void ldu_ex();
+ void ldu_im();
+ void ldu_ix();
+ void ldx_di();
+ void ldx_ex();
+ void ldx_im();
+ void ldx_ix();
+ void ldy_di();
+ void ldy_ex();
+ void ldy_im();
+ void ldy_ix();
+ void leas();
+ void leau();
+ void leax();
+ void leay();
+ void lsra();
+ void lsrb();
+ void lsr_di();
+ void lsr_ex();
+ void lsr_ix();
+ void mul();
+ void nega();
+ void negb();
+ void neg_di();
+ void neg_ex();
+ void neg_ix();
+ void ngca();
+ void ngcb();
+ void ngc_di();
+ void ngc_ex();
+ void ngc_ix();
+ void nop();
+ void ora_di();
+ void ora_ex();
+ void ora_im();
+ void ora_ix();
+ void orb_di();
+ void orb_ex();
+ void orb_im();
+ void orb_ix();
+ void orcc();
+ void pref10();
+ void pref11();
+ void pshs();
+ void pshu();
+ void puls();
+ void pulu();
+ void rola();
+ void rolb();
+ void rol_di();
+ void rol_ex();
+ void rol_ix();
+ void rora();
+ void rorb();
+ void ror_di();
+ void ror_ex();
+ void ror_ix();
+ void rst();
+ void rti();
+ void rts();
+ void sbca_di();
+ void sbca_ex();
+ void sbca_im();
+ void sbca_ix();
+ void sbcb_di();
+ void sbcb_ex();
+ void sbcb_im();
+ void sbcb_ix();
+ void sex();
+ void sta_di();
+ void sta_ex();
+ void sta_im();
+ void sta_ix();
+ void stb_di();
+ void stb_ex();
+ void stb_im();
+ void stb_ix();
+ void std_di();
+ void std_ex();
+ void std_im();
+ void std_ix();
+ void sts_di();
+ void sts_ex();
+ void sts_im();
+ void sts_ix();
+ void stu_di();
+ void stu_ex();
+ void stu_im();
+ void stu_ix();
+ void stx_di();
+ void stx_ex();
+ void stx_im();
+ void stx_ix();
+ void sty_di();
+ void sty_ex();
+ void sty_im();
+ void sty_ix();
+ void suba_di();
+ void suba_ex();
+ void suba_im();
+ void suba_ix();
+ void subb_di();
+ void subb_ex();
+ void subb_im();
+ void subb_ix();
+ void subd_di();
+ void subd_ex();
+ void subd_im();
+ void subd_ix();
+ void swi2();
+ void swi3();
+ void swi();
+ void sync();
+ void tfr();
+ void trap();
+ void tsta();
+ void tstb();
+ void tst_di();
+ void tst_ex();
+ void tst_ix();
public:
MC6809(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}