MSN LSN |
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF |
0x | BRK IMP |
ORA IDX |
SXY IMP |
ST0 IMM |
TSB ZPG |
ORA ZPG |
ASL ZPG |
RMB0 ZPG |
PHP IMP |
ORA IMM |
ASL ACC |
ILL | TSB ABS |
ORA ABS |
ASL ABS |
BBR0 ZRL |
1x | BPL REL |
ORA IDY |
ORA ZPI |
ST1 IMM |
TRB ZPG |
ORA ZPX |
ASL ZPX |
RMB1 ZPG |
CLC IMP |
ORA ABY |
INA ACC |
ILL | TRB ABS |
ORA ABX |
ASL ABX |
BBR1 ZRL |
2x | JSR ABS |
AND IDX |
SAX IMP |
ST2 IMM |
BIT ZPG |
AND ZPG |
ROL ZPG |
RMB2 ZPG |
PLP IMP |
AND IMM |
ROL ACC |
ILL | BIT ABS |
AND ABS |
ROL ABS |
BBR2 ZRL |
3x | BMI REL |
AND IDY |
AND ZPI |
ILL | BIT ZPX |
AND ZPX |
ROL ZPX |
RMB3 ZPG |
SEC IMP |
AND ABY |
DEA ACC |
ILL | BIT ABX |
AND ABX |
ROL ABX |
BBR3 ZRL |
4x | RTI IMP |
EOR IDX |
SAY IMP |
TMA IMM |
BSR REL |
EOR ZPG |
LSR ZPG |
RMB4 ZPG |
PHA IMP |
EOR IMM |
LSR ACC |
ILL | JMP ABS |
EOR ABS |
LSR ABS |
BBR4 ZRL |
5x | BVC REL |
EOR IDY |
EOR ZPI |
TAM IMM |
CSL IMP |
EOR ZPX |
LSR ZPX |
RMB5 ZPG |
CLI IMP |
EOR ABY |
PHY IMP |
ILL | ILL | EOR ABX |
LSR ABX |
BBR5 ZRL |
6x | RTS IMP |
ADC IDX |
CLA IMP |
ILL | STZ ZPG |
ADC ZPG |
ROR ZPG |
RMB6 ZPG |
PLA IMP |
ADC IMM |
ROR ACC |
ILL | JMP IND |
ADC ABS |
ROR ABS |
BBR6 ZRL |
7x | BVS REL |
ADC IDY |
ADC ZPI |
TII BLK |
STZ ZPX |
ADC ZPX |
ROR ZPX |
RMB7 ZPG |
SEI IMP |
ADC ABY |
PLY IMP |
ILL | JMP IAX |
ADC ABX |
ROR ABX |
BBR7 ZRL |
8x | BRA REL |
STA IDX |
CLX IMP |
TST IMZ |
STY ZPG |
STA ZPG |
STX ZPG |
SMB0 ZPG |
DEY IMP |
BIT IMM |
TXA IMP |
ILL | STY ABS |
STA ABS |
STX ABS |
BBS0 ZRL |
9x | BCC REL |
STA IDY |
STA ZPI |
TST IZX |
STY ZPX |
STA ZPX |
STX ZPY |
SMB1 ZPG |
TYA IMP |
STA ABY |
TXS IMP |
ILL | STZ ABS |
STA ABX |
STZ ABX |
BBS1 ZRL |
Ax | LDY IMM |
LDA IDX |
LDX IMM |
TST IMA |
LDY ZPG |
LDA ZPG |
LDX ZPG |
SMB2 ZPG |
TAY IMP |
LDA IMM |
TAX IMP |
ILL | LDY ABS |
LDA ABS |
LDX ABS |
BBS2 ZRL |
Bx | BCS REL |
LDA IDY |
LDA ZPI |
TST IMX |
LDY ZPX |
LDA ZPX |
LDX ZPY |
SMB3 ZPG |
CLV IMP |
LDA ABY |
TSX IMP |
ILL | LDY ABX |
LDA ABX |
LDX ABY |
BBS3 ZRL |
Cx | CPY IMM |
CMP IDX |
CLY IMP |
TDD BLK |
CPY ZPG |
CMP ZPG |
DEC ZPG |
SMB4 ZPG |
INY IMP |
CMP IMM |
DEX IMP |
ILL | CPY ABS |
CMP ABS |
DEC ABS |
BBS4 ZRL |
Dx | BNE REL |
CMP IDY |
CMP ZPI |
TIN BLK |
CSH IMP |
CMP ZPX |
DEC ZPX |
SMB5 ZPG |
CLD IMP |
CMP ABY |
PHX IMP |
ILL | ILL | CMP ABX |
DEC ABX |
BBS5 ZRL |
Ex | CPX IMM |
SBC IDX |
ILL | TIA BLK |
CPX ZPG |
SBC ZPG |
INC ZPG |
SMB6 ZPG |
INX IMP |
SBC IMM |
NOP IMP |
ILL | CPX ABS |
SBC ABS |
INC ABS |
BBS6 ZRL |
Fx | BEQ REL |
SBC IDY |
SBC ZPI |
TAI BLK |
SET IMP |
SBC ZPX |
INC ZPX |
SMB7 ZPG |
SED IMP |
SBC ABY |
PLX IMP |
ILL | ILL | SBC ABX |
INC ABX |
BBS7 ZRL |
Gray = Original 6502 instruction Blue = New for 65C02 Green = New for HuC6280 Red = Illegal instruction (NOP on 65C02/HuC6280, undefined on 6502) Instructions: Token Flags Name ADC NV0---ZC add with carry AND N-0---Z- logical AND ASL N-0---ZC arithmetic shift left BCC --0----- branch on carry clear BCS --0----- branch on carry set BEQ --0----- branch on equal BIT NV0---Z- bit test BMI --0----- branch on minus BNE --0----- branch on not equal BPL --0----- branch on plus BRK --0----- break BVC --0----- branch on overflow clear BVS --0----- branch on overflow set CLC --0----- clear carry flag CLD --0----- clear decimal mode flag CLI --0----- clear interrupt enable flag CLV --0----- clear overflow flag CMP N-0---ZC compare to accumulator CPX N-0---ZC compare to X index CPY N-0---ZC compare to Y index DEC N-0---Z- decrement DEX N-0---Z- decrement X index DEY N-0---Z- decrement Y index EOR N-0---Z- logical exclusive OR INC N-0---Z- increment INX N-0---Z- increment X index INY N-0---Z- increment Y index JMP --0----- jump JSR --0----- jump to subroutine LDA N-0---Z- load accumulator LDX N-0---Z- load X index LDY N-0---Z- load Y index LSR 0-0---ZC logical shift right NOP --0----- no operation ORA N-0---Z- logical OR accumulator PHA --0----- push accumulator PHP --0----- push processor status flags PLA N-0---Z- pull accumulator PLP NVTBDIZC pull processor status flags ROL N-0---ZC rotate left ROR N-0---ZC rotate right RTI NVTBDIZC return from interrupt RTS --0----- return from subroutine SBC NV0---ZC subtract with carry SEC --0----1 set carry flag SED --0-1--- set decimal flag SEI --0--1-- set interrupt enable flag STA --0----- store accumulator STX --0----- store X index STY --0----- store Y index TAX N-0---Z- transfer accumulator to X index TAY N-0---Z- transfer accumulator to Y index TSX N-0---Z- transfer stack pointer to X index TXA N-0---Z- transfer X index to accumulator TXS --0----- transfer X index to stack pointer TYA N-0---Z- transfer Y index to accumulator ILL --0----- illegal instruction BRA --0----- branch STZ --0----- store zero TRB NV0---Z- test and reset bits TSB NV0---Z- test and set bits DEA N-0---Z- decrement accumulator INA N-0---Z- increment accumulator SAX --0----- swap accumulator and X index BSR --0----- branch to subroutine PHX --0----- push X index PHY --0----- push Y index PLX N-0---Z- pull X index PLY N-0---Z- pull Y index CSH --0----- change speed high CSL --0----- change speed low TAM --0----- transfer accumulator to MPR register TMA --0----- transfer MPR register to accumulator CLA --0----- clear accumulator CLY --0----- clear Y index CLX --0----- clear X index ST0 --0----- store to VDC address zero ST1 --0----- store to VDC address two ST2 --0----- store to VDC address three TST NV0---Z- test SET --1----- set T flag TDD --0----- transfer decrement decrement TIA --0----- transfer increment alternate TII --0----- transfer increment increment TIN --0----- transfer increment none TAI --0----- transfer alternate increment SAY --0----- swap accumulator and Y index SXY --0----- swap X index and Y index SMB0 --0----- set memory bit 0 SMB1 --0----- set memory bit 1 SMB2 --0----- set memory bit 2 SMB3 --0----- set memory bit 3 SMB4 --0----- set memory bit 4 SMB5 --0----- set memory bit 5 SMB6 --0----- set memory bit 6 SMB7 --0----- set memory bit 7 RMB0 --0----- reset memory bit 0 RMB1 --0----- reset memory bit 1 RMB2 --0----- reset memory bit 2 RMB3 --0----- reset memory bit 3 RMB4 --0----- reset memory bit 4 RMB5 --0----- reset memory bit 5 RMB6 --0----- reset memory bit 6 RMB7 --0----- reset memory bit 7 BBS0 --0----- branch on memory bit 0 set BBS1 --0----- branch on memory bit 1 set BBS2 --0----- branch on memory bit 2 set BBS3 --0----- branch on memory bit 3 set BBS4 --0----- branch on memory bit 4 set BBS5 --0----- branch on memory bit 5 set BBS6 --0----- branch on memory bit 6 set BBS7 --0----- branch on memory bit 7 set BBR0 --0----- branch on memory bit 0 reset BBR1 --0----- branch on memory bit 1 reset BBR2 --0----- branch on memory bit 2 reset BBR3 --0----- branch on memory bit 3 reset BBR4 --0----- branch on memory bit 4 reset BBR5 --0----- branch on memory bit 5 reset BBR6 --0----- branch on memory bit 6 reset BBR7 --0----- branch on memory bit 7 reset Addressing modes: Token Name Syntax ACC accumulator a IMP implied IMM immediate #$nn ABS absolute $nnnn ZPG zero page <$nn ZPX zero page, x-indexed <$nn,x ZPY zero page, y-indexed <$nn,y ZPI zero page indirect [$nn] ABX absolute x-indexed $nnnn,x ABY absolute y-indexed $nnnn,y REL relative offset * IDX zero page pre-indexed [$nn,x] IDY zero page post-indexed [$nn],y IND indirect [$nnnn] IAX indirect, x-indexed [$nnnn,x] BLK block transfer $nnnn,$nnnn,$nnnn ZRL zero page, relative offset <$nn, * IMZ immediate zero page #$nn,<$nn IZX immediate zero page, x-indexed #$nn,<$nn,x IMA immediate absolute #$nn,<$nnnn IMX immediate absolute, x-indexed #$nn,<$nnnn,x Instruction list with cycles and syntax: Opcode Cycles Instruction $00 8 BRK $01 7 ORA [$nn,x] $02 3 SXY $03 4 ST0 #$nn $04 6 TSB <$nn $05 4 ORA <$nn $06 2 ASL <$nn $07 7 RMB0 <$nn $08 3 PHP $09 2 ORA #$nn $0A 1 ASL a $0B 2 ILL $0C 7 TSB $nnnn $0D 5 ORA $nnnn $0E 3 ASL $nnnn $0F 6 BBR0 <$nn, * $10 2 BPL * $11 7 ORA [$nn],y $12 7 ORA [$nn] $13 4 ST1 #$nn $14 6 TRB <$nn $15 4 ORA <$nn,x $16 2 ASL <$nn,x $17 7 RMB1 <$nn $18 2 CLC $19 5 ORA $nnnn,y $1A 2 INA a $1B 2 ILL $1C 7 TRB $nnnn $1D 5 ORA $nnnn,x $1E 3 ASL $nnnn,x $1F 6 BBR1 <$nn, * $20 7 JSR $nnnn $21 7 AND [$nn,x] $22 3 SAX $23 4 ST2 #$nn $24 4 BIT <$nn $25 4 AND <$nn $26 6 ROL <$nn $27 7 RMB2 <$nn $28 4 PLP $29 2 AND #$nn $2A 2 ROL a $2B 2 ILL $2C 5 BIT $nnnn $2D 5 AND $nnnn $2E 7 ROL $nnnn $2F 6 BBR2 <$nn, * $30 2 BMI * $31 7 AND [$nn],y $32 7 AND [$nn] $33 2 ILL $34 4 BIT <$nn,x $35 4 AND <$nn,x $36 6 ROL <$nn,x $37 7 RMB3 <$nn $38 2 SEC $39 5 AND $nnnn,y $3A 2 DEA a $3B 2 ILL $3C 5 BIT $nnnn,x $3D 5 AND $nnnn,x $3E 7 ROL $nnnn,x $3F 6 BBR3 <$nn, * $40 7 RTI $41 7 EOR [$nn,x] $42 3 SAY $43 4 TMA #$nn $44 8 BSR * $45 4 EOR <$nn $46 6 LSR <$nn $47 7 RMB4 <$nn $48 3 PHA $49 2 EOR #$nn $4A 2 LSR a $4B 2 ILL $4C 4 JMP $nnnn $4D 5 EOR $nnnn $4E 7 LSR $nnnn $4F 6 BBR4 <$nn, * $50 2 BVC * $51 7 EOR [$nn],y $52 7 EOR [$nn] $53 5 TAM #$nn $54 3 CSL $55 4 EOR <$nn,x $56 6 LSR <$nn,x $57 7 RMB5 <$nn $58 2 CLI $59 5 EOR $nnnn,y $5A 3 PHY $5B 2 ILL $5C 2 ILL $5D 5 EOR $nnnn,x $5E 7 LSR $nnnn,x $5F 6 BBR5 <$nn, * $60 7 RTS $61 7 ADC [$nn,x] $62 2 CLA $63 2 ILL $64 4 STZ <$nn $65 4 ADC <$nn $66 6 ROR <$nn $67 7 RMB6 <$nn $68 4 PLA $69 2 ADC #$nn $6A 2 ROR a $6B 2 ILL $6C 7 JMP [$nnnn] $6D 5 ADC $nnnn $6E 7 ROR $nnnn $6F 6 BBR6 <$nn, * $70 2 BVS * $71 7 ADC [$nn],y $72 7 ADC [$nn] $73 17 TII $nnnn,$nnnn,$nnnn $74 4 STZ <$nn,x $75 4 ADC <$nn,x $76 6 ROR <$nn,x $77 7 RMB7 <$nn $78 2 SEI $79 5 ADC $nnnn,y $7A 4 PLY $7B 2 ILL $7C 7 JMP [$nnnn,x] $7D 5 ADC $nnnn,x $7E 7 ROR $nnnn,x $7F 6 BBR7 <$nn, * $80 4 BRA * $81 7 STA [$nn,x] $82 2 CLX $83 7 TST #$nn,<$nn $84 4 STY <$nn $85 4 STA <$nn $86 4 STX <$nn $87 7 SMB0 <$nn $88 2 DEY $89 2 BIT #$nn $8A 2 TXA $8B 2 ILL $8C 5 STY $nnnn $8D 5 STA $nnnn $8E 5 STX $nnnn $8F 6 BBS0 <$nn, * $90 2 BCC * $91 7 STA [$nn],y $92 7 STA [$nn] $93 8 TST #$nn,<$nn,x $94 4 STY <$nn,x $95 4 STA <$nn,x $96 4 STX <$nn,y $97 7 SMB1 <$nn $98 2 TYA $99 5 STA $nnnn,y $9A 2 TXS $9B 2 ILL $9C 5 STZ $nnnn $9D 5 STA $nnnn,x $9E 5 STZ $nnnn,x $9F 6 BBS1 <$nn, * $A0 2 LDY #$nn $A1 7 LDA [$nn,x] $A2 2 LDX #$nn $A3 7 TST #$nn,<$nnnn $A4 4 LDY <$nn $A5 4 LDA <$nn $A6 4 LDX <$nn $A7 7 SMB2 <$nn $A8 2 TAY $A9 2 LDA #$nn $AA 2 TAX $AB 2 ILL $AC 5 LDY $nnnn $AD 5 LDA $nnnn $AE 5 LDX $nnnn $AF 6 BBS2 <$nn, * $B0 2 BCS * $B1 7 LDA [$nn],y $B2 7 LDA [$nn] $B3 8 TST #$nn,<$nnnn,x $B4 4 LDY <$nn,x $B5 4 LDA <$nn,x $B6 4 LDX <$nn,y $B7 7 SMB3 <$nn $B8 2 CLV $B9 5 LDA $nnnn,y $BA 2 TSX $BB 2 ILL $BC 5 LDY $nnnn,x $BD 5 LDA $nnnn,x $BE 5 LDX $nnnn,y $BF 6 BBS3 <$nn, * $C0 2 CPY #$nn $C1 7 CMP [$nn,x] $C2 2 CLY $C3 17 TDD $nnnn,$nnnn,$nnnn $C4 4 CPY <$nn $C5 4 CMP <$nn $C6 6 DEC <$nn $C7 7 SMB4 <$nn $C8 2 INY $C9 2 CMP #$nn $CA 2 DEX $CB 2 ILL $CC 5 CPY $nnnn $CD 5 CMP $nnnn $CE 7 DEC $nnnn $CF 6 BBS4 <$nn, * $D0 2 BNE * $D1 7 CMP [$nn],y $D2 7 CMP [$nn] $D3 17 TIN $nnnn,$nnnn,$nnnn $D4 3 CSH $D5 4 CMP <$nn,x $D6 6 DEC <$nn,x $D7 7 SMB5 <$nn $D8 2 CLD $D9 5 CMP $nnnn,y $DA 3 PHX $DB 2 ILL $DC 2 ILL $DD 5 CMP $nnnn,x $DE 7 DEC $nnnn,x $DF 6 BBS5 <$nn, * $E0 2 CPX #$nn $E1 7 SBC [$nn,x] $E2 2 ILL $E3 17 TIA $nnnn,$nnnn,$nnnn $E4 4 CPX <$nn $E5 4 SBC <$nn $E6 6 INC <$nn $E7 7 SMB6 <$nn $E8 2 INX $E9 2 SBC #$nn $EA 2 NOP $EB 2 ILL $EC 5 CPX $nnnn $ED 5 SBC $nnnn $EE 7 INC $nnnn $EF 6 BBS6 <$nn, * $F0 2 BEQ * $F1 7 SBC [$nn],y $F2 7 SBC [$nn] $F3 17 TAI $nnnn,$nnnn,$nnnn $F4 2 SET $F5 4 SBC <$nn,x $F6 6 INC <$nn,x $F7 7 SMB7 <$nn $F8 2 SED $F9 5 SBC $nnnn,y $FA 4 PLX $FB 2 ILL $FC 2 ILL $FD 5 SBC $nnnn,x $FE 7 INC $nnnn,x $FF 6 BBS7 <$nn, *