Tech Section

Notes from the Tech Section of the podcast are here. I’m also working on a set of development notes as I attempt to write my own game from scratch to demo some of the features of the system.

My Games


../_images/air_defense.png

Air Defense

An incomplete game, inspired by Sabotage on the Apple ][ that I started work on back in 1984 or 1985. More info…


My Utilities

ATRCopy

Python code to list files on and extract files from Atari 8-bit emulator disk images.

Hardware

  • MOS 6502 at 1.79 MHz (NTSC), 1.77 MHz (PAL)

    • Max 64k RAM addressable at any given time (bank switching was used to address more RAM

  • POKEY

    • 4 channel audio processor

    • Keyboard scanning

    • Serial I/O

  • ANTIC

    • 2D frame buffer for text and bitmapped graphics

    • Horizonal/vertical fine scrolling

    • Display list interrupt (i.e. horizontal blank interrupt)

  • CTIA/GTIA

    • Player/missile (sprite) overlay with collision detection

  • SIO Bus

    • Serial bus, 13 pin connector, up to 19200 baud (bi-directional)

  • References

Graphics Modes

ANTIC Mode

BASIC Mode

Description

Type

Colors

02

0

40 x 24

text

2

03

n/a

40 x 19

text

2

04

n/a

40 x 24

text

4

05

n/a

40 x 12

text

4

06

1

20 x 24

text

5

07

2

20 x 12

text

5

08

3

40 x 24

graphic

4

09

4

80 x 48

graphic

2

10

5

80 x 48

graphic

4

11

6

160 x 96

graphic

2

12

n/a

160 x 192

graphic

2

13

7

160 x 96

graphic

4

14

n/a

160 x 192

graphic

4

15

8

320 x 192

graphic

2

15 (GTIA 1)

9

80 x 192

graphic

16 luminances of one hue

15 (GTIA 2)

10

80 x 192

graphic

9

15 (GTIA 3)

11

80 x 192

graphic

16 colors with same luminance

For a reference on Graphics 7+ (or Antic mode 14), see ANALOG Magazine Issue 7.

Player/Missile Graphics

  • 4 sprites, 8 bits wide and 256 bytes tall

  • 4 missiles, each 2 bits wide and 256 bytes tall

    • Can be combined into 5th player

  • Each player has independent color

  • Horizonal position controlled by setting value in register

  • Vertical position under user control by setting bytes in the player memory

  • Hardware collision detection between:

    • player/player

    • player/missile

    • player/background

    • missile/background

For more information, see De Re Atari, Chapter 4.