“Making Games for the Atari 2600”

Chapter 1, page 7: The “LDA Cycle” diagram should show “LDA $##34” instead of “LDA $##23”. The Data Bus values should be $AD, $34, $12, and $7F.

Chapter 3, page 25: The DataArray variable starts at $83, not $82.

Chapter 4, page 28: The ZeroZP loop clears every zero-page value except for address $0. (One way to fix this is to add a “STA $0” after the loop ends.)

Chapter 6, page 40: The comment for the “sta PF0” line should read “set the PF0 playfield pattern register”.

Chapter 8, page 52: “lda ColorFrame,y” should be “lda ColorFrame0,y”; also the comments on the Frame0 color table can be ignored.

Chapter 9, page 57: Says “We’ve timed everything so that the store will place exactly on cycle 23 when zero is passed” but the example shows A (the horizontal position) loaded with #70, not #0.

Chapter 9, page 58: The Atari 2600 game “Raiders of the Lost Ark” was designed by Howard Scott Warshaw, not Warren Robinett.

Chapter 17: Forgot to describe NUSIZ register bits in detail:

Binary        Hex Value   Description
00xxxx@       $00         1 pixel wide
01xxxx@       $10         2 pixels wide
10xxxx@       $20         4 pixels wide
11xxxx@       $30         8 pixels wide

The VERTICAL_SYNC macro takes 4 scanlines to complete, not 3. Therefore most of the examples add up to 263 scanlines, not 262. Change “TIMER_SETUP 30” to “TIMER_SETUP 29” to fix them.

Chapter 35: The bank switching examples should set the S (Stack) register to #$FF at startup. (The real NMOS 6502 sets the stack pointer to #$FD at power-up, but the emulator doesn’t emulate this undocumented behavior.)

(Updated 9/12/2018)