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: Difference between revisions

From SnesLab
Jump to: navigation, search
(→‎Eratta: how many addressing modes are there)
(→‎Eratta: section of datasheet where MVN/MVP affect dbr)
Line 38: Line 38:
Applicable to the 2015 edition:
Applicable to the 2015 edition:
* page 75 says the 65c816 has 25 different addressesing modes, but the datasheet says there are 24
* page 75 says the 65c816 has 25 different addressesing modes, but the datasheet says there are 24
* [[PLB]] is not the only instruction that modifies the [[data bank register]]; [[MVP]] and [[MVN]] do too.
* [[PLB]] is not the only instruction that modifies the [[data bank register]]; [[MVP]] and [[MVN]] do too - see section 7.18 of the 65c816 datasheet
* In the section on [[accumulator addressing]], a sentence implies that all read-modify-write instructions are unary, but [[TRB]] and [[TSB]] are not.
* In the section on [[accumulator addressing]], a sentence implies that all read-modify-write instructions are unary, but [[TRB]] and [[TSB]] are not.
* 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"
* 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"

Revision as of 20:02, 9 August 2024

"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

see page 108

Complex Addressing Modes

see page 197

Eratta

Applicable to the 2015 edition:

  • page 75 says the 65c816 has 25 different addressesing modes, but the datasheet says there are 24
  • PLB is not the only instruction that modifies the data bank register; MVP and MVN do too - see section 7.18 of the 65c816 datasheet
  • In the section on accumulator addressing, a sentence implies that all read-modify-write instructions are unary, but TRB and TSB are not.
  • 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"
  • page 510 on TCD and page 512 on TDC mentions the direct page register, but this is missing from the index
  • 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."
  • The 65c02 datasheet does mention WAI and STP are supported (page 532 has them listed as unavailable)
  • The addressing mode for WDM is missing, but the datasheet says it is Implied
  • Assemblers are described as requiring the signature byte for COP, but on the next page it says the signature byte is optional
  • The page on PLA has a typo that says the 65x pull instructions "set" the zero and negative flags; it should say "affect."

Quick Links

Part I Basics

Part II Architecture

Part III Tutorial

Part IV Applications