We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Eyes & Lichty
From SnesLab
"Eyes & Lichty" is scene slang for the excellent manual "Programming the 65816 Including the 6502, 65C02, and 65802" by David Eyes & Ron Lichty. It may be the best unofficial textbook on SNES programming, due in no small part to the fact that the Ricoh 5A22 is based on the 65c816 and the SPC700 is based on the 6502.
Addressing Mode
Eyes & Lichty divides the 65c816's various addressing modes into two groups: simple and complex. Simple addressing modes are explained first and require the processor to do little effective address calculation. They are:
Simple Addressing Modes
- Immediate
- Absolute
- Direct Page
- Accumulator
- Implied
- Stack
- Direct Page Indirect
- Absolute Long
- Direct Page Indirect Long
- Block Move
see page 108
Complex Addressing Modes
- Absolute Indexed with X
- Absolute Indexed with Y
- Direct Page Indexed with X
- Direct Page Indexed with Y
- Direct Page Indirect Indexed with Y
- Direct Page Indexed Indirect with X
- Absolute Indexed Indirect
- Direct Page
- Absolute Long Indexed With X
- Direct Page Indirect Long Indexed with Y
- Stack Relative
- Stack Relative Indirect Indexed with Y
see page 197
Eratta
- page 497 recommends making sure the carry flag is already set, or to set it with SEC prior to doing a SBC to "avoid subtracting the carry flag" but it should say "to avoid subtracting one"
- In the tables that show which MPU supports which instructions, an "X" denotes yes and a " " denotes no. Many readers would find a check mark less confusing.
- The Rockwell 65c02 does not have a direct page, but the four Rockwell instructions are listed as having Direct Page Addressing anyway "for consistency."
Quick Links
Part I Basics
Part II Architecture
- Architecture of the 6502
- Architecture of the 65C02
- Sixteen-Bit Architecture: The 65816 and the 65802
Part III Tutorial
- SEP, REP, and Other Details
- First Examples: Moving Data
- The Simple Addressing Modes
- The Flow of Control
- Built-In Arithmetic Functions
- Logic and Bit Manipulation Operations
- The Complex Addressing Modes
- The Basic Building Block: The Subroutine
- Interrupts and System Control Instructions
Part IV Applications
- Selected Code Samples
- DEBUG16 - A 65816 Programming Tool
- Design and Debugging
- Reference
- The Addressing Modes
- The Instruction Sets
- ADC
- AND
- ASL
- BCC
- BCS
- BEQ
- BIT
- BMI
- BNE
- BPL
- BRA
- BRK
- BRL
- BVC
- BVS
- CLC
- CLD
- CLI
- CLV
- CMP
- COP
- CPX
- CPY
- DEC
- DEX
- DEY
- EOR
- INC
- INX
- INY
- JMP
- JSL
- JSR
- LDA
- LDX
- LDY
- LSR
- MVN
- MVP
- ORA
- PEA
- PEI
- PER
- PHA
- PHB
- PHD
- PHK
- PHP
- PHX
- PHY
- PLA
- PLB
- PLD
- PLP
- PLX
- PLY
- REP
- ROL
- ROR
- RTI
- RTL
- RTS
- SBC
- SEC
- SED
- SEI
- SEP
- STA
- STP
- STX
- STY
- STZ
- TAX
- TAY
- TCD
- TCS
- TDC
- TRB
- TSB
- TSC
- TSX
- TXA
- TXS
- TXY
- TYA
- TYA
- WAI
- WDM
- XBA
- XCE