R6500: 00 BRK 01 ORA (ind,x) 02 rfu 03 rfu 04 rfu 05 ORA zp 06 ASL zp 07 rfu 08 PHP 09 ORA imm 0a ASL acc 0b rfu 0c rfu 0d ORA abs 0e ASL abs 0f rfu 10 BPL rel 11 ORA (ind),y 12 rfu 13 rfu 14 rfu 15 ORA zp,x 16 ASL zp,x 17 rfu 18 CLC 19 ORA abs,y 1a rfu 1b rfu 1c rfu 1d ORA abs,x 1e ASL abs,x 1f rfu 20 JSR 21 AND (ind,x) 22 rfu 23 rfu 24 BIT zp 25 AND zp 26 ROL zp 27 rfu 28 PLP 29 AND imm 2a ROL acc 2b rfu 2c BIT abs 2d AND abs 2e ROL abs 2f rfu 30 BMI rel 31 AND (ind),y 32 rfu 33 rfu 34 rfu 35 AND zp,x 36 ROL zp,x 37 rfu 38 SEC 39 AND abs,y 3a rfu 3b rfu 3c rfu 3d AND abs,x 3e ROL abs,x 3f rfu 40 RTI 41 EOR (ind,x) 42 rfu 43 rfu 44 rfu 45 EOR zp 46 LSR zp 47 rfu 48 PHA 49 EOR imm 4a LSR acc 4b rfu 4c JMP abs 4d EOR abs 4e LSR abs 4f rfu 50 BVC rel 51 EOR (ind),y 52 rfu 53 rfu 54 rfu 55 EOR zp,x 56 LSR zp,x 57 rfu 58 CLI 59 EOR abs,y 5a rfu 5b rfu 5c rfu 5d EOR abs,x 5e LSR abs,x 5f rfu 60 RTS 61 ADC (ind,x) 62 rfu 63 rfu 64 rfu 65 ADC zp 66 ROR zp 67 rfu 68 PLA 69 ADC imm 6a ROR acc 6b rfu 6c JMP ind 6d ADC abs 6e ROR abs 6f rfu 70 BVS rel 71 ADC (ind),y 72 rfu 73 rfu 74 rfu 75 ADC zp,x 76 ROR zp,x 77 rfu 78 SEI 79 ADC abs,y 7a rfu 7b rfu 7c rfu 7d ADC abs,x 7e ROR abs,x 7f rfu 80 rfu 81 STA (ind,x) 82 rfu 83 rfu 84 STY zp 85 STA zp 86 STX zp 87 rfu 88 DEY 89 rfu 8a TXA 8b rfu 8c STY abs 8d STA abs 8e STX abs 8f rfu 90 BCC rel 91 STA (ind),y 92 rfu 93 rfu 94 STY zp,x 95 STA zp,x 96 STX zp,y 97 rfu 98 TYA 99 STA abs,y 9a TXS 9b rfu 9c rfu 9d STA abs,x 9e rfu 9f rfu a0 LDY imm a1 LDA (ind,x) a2 LDX imm a3 rfu a4 LDY zp a5 LDA zp a6 LDX zp a7 rfu a8 TAY a9 LDA imm aa TAX ab rfu ac LDY abs ad LDA abs ae LDX abs af rfu b0 BCS rel b1 LDA (ind),y b2 rfu b3 rfu b4 LDY zp,x b5 LDA zp,x b6 LDX zp,y b7 rfu b8 CLV b9 LDA abs,y ba TSX bb rfu bc LDY abs,x bd LDA abs,x be LDX abs,y bf rfu c0 CPY imm c1 CMP (ind,x) c2 rfu c3 rfu c4 CPY zp c5 CMP zp c6 DEC zp c7 rfu c8 INY c9 CMP imm ca DEX cb rfu cc CPY abs cd CMP abs ce DEC abs cf rfu d0 BNE rel d1 CMP (ind),y d2 rfu d3 rfu d4 rfu d5 CMP zp,x d6 DEC zp,x d7 rfu d8 CLD d9 CMP abs,y da rfu db rfu dc rfu dd CMP abs,x de DEC abs,x df rfu e0 CPX imm e1 SBC (ind,x) e2 rfu e3 rfu e4 CPX zp e5 SBC zp e6 INC zp e7 rfu e8 INX e9 SBC imm ea NOP eb rfu ec CPX abs ed SBC abs ee INC abs ef rfu f0 BEQ rel f1 SBC (ind),y f2 rfu f3 rfu f4 rfu f5 SBC zp,x f6 INC zp,x f7 rfu f8 SED f9 SBC abs,y fa rfu fb rfu fc rfu fd SBC abs,x fe INC abs,x ff rfu acc uses accumulator, nothing in memory imm uses byte at *pc++ as data abs *(pc[0]|(pc[1]<<8)) is data, pc+=2 (exception: JMP abs) abs,x *((pc[0]|(pc[1]<<8))+x) is data, pc+=2 abs,y *((pc[0]|(pc[1]<<8))+y) is data, pc+=2 zp *(*pc++|(0<<8)) is data zp,x *(((x+*pc++)&0xff)|(0<<8)) is data zp,y *(((y+*pc++)&0xff)|(0<<8)) is data ind (JMP only) addr=pc[0]|(pc[1]<<8), pc=addr[0]|(addr[1]<<8) (or is it pc=addr[0]|(*((addr&0xff00)|((addr+1)&0x00ff))<<8)?) (ind),y zpa=*pc++; *((zpa[0]|*((zpa+1)&0xff))+y) is data (ind,x) zpa=((*pc++)+x)&0xff; *(zpa[0]|*((zpa+1)&0xff)<<8) is data rel if branch taken, pc += (signed char)*pc++, else nop MSD LSD MSD --+-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------+-- | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 0 | BRK s |ORA(d,x)| COP s | ORA d,s | TSB d | ORA d | ASL d | ORA [d] | PHP s | ORA # | ASL A | PHD s | TSB a | ORA a | ASL a | ORA al | 0 | 2 8 | 2 6 | 2 8 | 2 4 | 2 5 | 2 3 | 2 5 | 2 6 | 1 3 | 2 2 | 1 2 | 1 4 | 3 6 | 3 4 | 3 6 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 1 | BPL r |ORA(d),y| ORA(d) |ORA(d,s),y| TRB d | ORA d,x| ASL d,x|ORA [d],y| CLC i | ORA a,y| INC A | TCS i | TRB a | ORA a,x| ASL a,x| ORA al,x| 1 | 2 2 | 2 5 | 2 5 | 2 7 | 2 5 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 2 | JSR a |AND(d,x)| JSL al | AND d,s | BIT d | AND d | ROL d | AND [d] | PLP s | AND # | ROL A | PLD s | BIT a | AND a | ROL a | AND al | 2 | 3 6 | 2 6 | 4 8 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 4 | 2 2 | 1 2 | 1 5 | 3 4 | 3 4 | 3 6 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 3 | BMI r |AND(d),y| AND (d)|AND(d,s),y| BIT d,x| AND d,x| ROL d,x|AND [d],y| SEC i | AND a,y| DEC A | TSC i | BIT a,x| AND a,x| ROL a,x| AND al,x| 3 | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 4 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 4 | RTI s |EOR(d,x)| reserve| EOR d,s | MVP xya| EOR d | LSR d | EOR [d] | PHA s | EOR # | LSR A | PHK s | JMP a | EOR a | LSR a | EOR al | 4 | 1 7 | 2 6 | 2 2 | 2 4 | 3 7 | 2 3 | 2 5 | 2 6 | 1 3 | 2 2 | 1 2 | 1 3 | 3 3 | 3 4 | 3 6 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 5 | BVC r |EOR(d),y| EOR (d)|EOR(d,s),y| MVN xya| EOR d,x| LSR d,x|EOR [d],y| CLI i | EOR a,y| PHY s | TCD i | JMP al | EORa,x | LSRa,x | EOR al,x| 5 | 2 2 | 2 5 | 2 5 | 2 7 | 3 7 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 3 | 1 2 | 4 4 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 6 | RTS s |ADC(d,x)| PER s | ADC d,s | STZ d | ADC d | ROR d | ADC [d] | PLA s | ADC # | ROR A | RTL s | JMP (a)| ADC a | ROR a | ADC al | 6 | 1 6 | 2 6 | 3 6 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 4 | 2 2 | 1 2 | 1 6 | 3 5 | 3 4 | 3 6 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 7 | BVS r |ADC(d),y| ADC (d)|ADC(d,s),y| STZ d,x| ADC d,x| ROR d,x|ADC [d],y| SEI i | ADC a,y| PLY s | TDC i |JMP(a,x)| ADC a,x| ROR a,x| ADC al,x| 7 | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 4 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 8 | BRA r |STA(d,x)| BRL rl | STA d,s | STY d | STA d | STX d | STA [d] | DEY i | BIT # | TXA i | PHB s | STY a | STA a | STX a | STA al | 8 | 2 2 | 2 6 | 3 3 | 2 4 | 2 3 | 2 3 | 2 3 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 4 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| 9 | BCC r |STA(d),y| STA (d)|STA(d,s),y| STYd,x | STA d,x| STX d,y|STA [d],y| TYA i | STA a,y| TXS i | TXY i | STZ a | STA a,x| STZ a,x| STA al,x| 9 | 2 2 | 2 6 | 2 5 | 2 7 | 2 4 | 2 4 | 2 4 | 2 6 | 1 2 | 3 5 | 1 2 | 1 2 | 3 4 | 3 5 | 3 5 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| A | LDY # |LDA(d,x)| LDX # | LDA d,s | LDY d | LDA d | LDX d | LDA [d] | TAY i | LDA # | TAX i | PLB s | LDY a | LDA a | LDX a | LDA al | A | 2 2 | 2 6 | 2 2 | 2 4 | 2 3 | 2 3 | 2 3 | 2 6 | 1 2 | 2 2 | 1 2 | 1 4 | 3 4 | 3 4 | 3 4 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| B | BCS r |LDA(d),y| LDA (d)|LDA(d,s),y| LDY d,x| LDA d,x| LDX d,y|LDA [d],y| CLV i | LDA a,y| TSX i | TYX i | LDY a,x| LDA a,x| LDX a,y| LDA al,x| B | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 4 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 4 | 3 4 | 3 4 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| C | CPY # |CMP(d,x)| REP # | CMP d,s | CPY d | CMP d | DEC d | CMP [d] | INY i | CMP # | DEX i | WAI i | CPY a | CMP a | DEC a | CMP al | C | 2 2 | 2 6 | 2 3 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 4 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| D | BNE r |CMP(d),y| CMP (d)|CMP(d,s),y| PEI s | CMP d,x| DEC d,x|CMP [d],y| CLD i | CMP a,y| PHX s | STP i | JML (a)| CMP a,x| DEC a,x| CMP al,x| D | 2 2 | 2 5 | 2 5 | 2 7 | 2 6 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 3 | 1 3 | 3 6 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| E | CPX # |SBC(d,x)| SEP # | SBC d,s | CPX d | SBC d | INC d | SBC [d] | INX i | SBC # | NOP i | XBA i | CPX a | SBC a | INC a | SBC al | E | 2 2 | 2 6 | 2 3 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 6 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| F | BEQ r |SBC(d),y| SBC (d)|SBC(d,s),y| PEA s | SBC d,x| INC d,x|SBC [d],y| SED i | SBC a,y| PLX s | XCE i |JSR(a,x)| SBC a,x| INC a,x| SBC al,x| F | 2 2 | 2 5 | 2 5 | 2 7 | 3 5 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 4 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 | |-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | --+-------+--------+--------+----------+--------+--------+--------+---------+-------+--------+-------+-------+--------+--------+--------+---------+-- Symbol Addressing mode # immediate AM_IMM A accumulator AM_ACC r program counter relative AM_RELATIVE rl program counter relative long AM_RELATIVE_LONG i implied AM_IMPLIED s stack AM_STACK d direct AM_DIRECT d,x direct indexed (with x) AM_DIR_INX_X d,y direct indexed (with y) AM_DIR_INX_Y (d) direct Indirect AM_DIR_IND (d,x) direct indexed Indirect AM_DIR_INX_IND (d),y direct Indirect indexed AM_DIR_IND_INX [d] direct indirect long AM_DIR_IND_LONG [d],y direct indirect indexed long AM_DIR_IND_INX_LONG a absolute AM_ABS a,x absolute indexed (with x) AM_ABS_INX_X a,y absolute indexed (with y) AM_ABS_INX_Y al absolute long AM_ABSLONG al,x absolute indexed long AM_ABSLONG_INX_X d,s stack relative AM_STK_REL (d,s),y stack relative indirect Indexed AM_STK_REL_IND_INX (a) absolute indirect AM_ABS_IND (a,x) absoite Indxed Indirect AM_ABS_INX_IND xya block move AM_BLOCK