INTRODUCTION

GENERAL DESCRIPTION OF THE ATARI HOME COMPUTER SYSTEM

Operating systems in the ATARI 400™ and ATARI 800™ Home Computer are identical. The primary differences between the two are:

The Hardware Circuitry

Figure 1-1 presents a simplified black diagram of the hardware. See the hardware manual for supporting documentation.


Figure 1-1. ATARI Home Computer Block Diagram

       +---------+
       |   6502  |
       |processor|
       +---------+    +---------+
             |        |   OS    | 
             +--------+   ROM   |        +---------+
             |        |D800-FFFF|      +---------+ |
             |        +---------+    +---------+ | |
             |                       |   RAM   | | |
             +-----------------------|         | |-+
             |                       |0000-xxxx|-+ 
             |        +---------+    +---------+
             |        |Cartridge|
             |--------+slots A&B|
             |        |8000-BFFF|
  processor  |        +---------+
  external   |                                      +---------+
  bus        |        +---------+ joysticks         |control- |
  bus        |        |   PIA   +--------+----------+ler ports|
             |--------|         +--------|-------+  |         |
             |........|D300-D31F+--------|-----+ |  +---------+
             |  IRQ   +---------+        |     | |
             |                           |     | |  +---------+
             |        +---------+ pots   |     | |  |keyboard |
             |        |  POKEY  +--------+     | |  |data keys|
             +--------+         +--------|-----|-|--+ + break |
             |........|D200-D21F+--------|---+ | |  +---------+
             |  IRQ   +----+----+ audio  |   | | | on/off
             |             +-------------|-+ | | |  +---------+
             |        +----+----+ trigs  | | | | +--+cassette |
             |        |  CTIA   +--------+ | | |    |interface|
             +--------+         +-----+  | +-|-|----+         |
             |        |D000-D01F+-----|--|-+ | |    +---------+
             |        +----+----+     |  | | | +----| serial  |
             |             | video    |  | | |      |   I/O   |
             |  DMA   +----+----+ litpen | | +------+   bus   |
             |........|  ANTIC  +--------+          +---------+
             +--------+         |     |    |
             |........|D400-D41F|     |    |        +---------+
                NMI   +---------+     |    |  from  | console |
                                      |    |  CTIA -+ speaker |
                     composite   +----+    |        |         |
                     audio/video |         |        +---------+
                            +----+----+    |        +---------+
                            |         |    |        | START,  |
                            |   TV    |    +--------+ SELECT, |
                            |         |             | OPTION  |
                            +---------+             +---------+

CONVENTIONS USED IN THIS MANUAL

This manual uses the following special notations:

Hexadecimal Numbers

All two-digit numbers preceded by a dollar sign ($) designate hexadecimal numbers. All other numbers (except memory addresses) are in decimal form unless otherwise specified in the supporting text.

Memory Addresses

All references to computer memory and mapped I/O locations are in hexadecimal notation. Memory addresses may or may not be contained in square brackets. (Example: [D20F] and 020F are the same address.)

Kilobytes of Memory

Memory sizes are frequenting expressed in units of kilobytes, such as 32K, where a kilobyte is 1024 bytes of memory.

PASCAL As an Algorithm-Specification Language

The PASCAL language (procedure block only) is used as the specification language in the few places where an algorithm is specified in detail. PASCAL syntax is similar to any number of other block-structured languages. and you should have no difficulty following the code presented.

Memory Layouts

Diagrams similar to Figure 1-2 are used whenever pictures of bytes or tables are presented:

Figure 1-2. Memory Layout Chart

 7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+
|               | --- This is a single byte.
+-+-+-+-+-+-+-+-+
|               |
+               + --- This is a word (2 bytes).
|               |
+-+-+-+-+-+-+-+-+
|               |
=               = --- This is a block of memory
|               |     of unspecified length.
+-+-+-+-+-+-+-+-+

Bit 7 is the most significant bit (MSB) of the bytes and Bit 0 is the least significant bit (LSB).

In tables and figures, memory addresses always increase toward the bottom of the figure.

Backus-Naur Form

A modified version of Backus-Naur Form (BNF) is used to express some syntactic forms, where the following metalinguistic symbols are used:

::= is the substitution (assignment) operator.
< >  a metasyntactic variable.
|   separates alternative substitutions.
[ ] an optional construct.

Anything else is a syntactic literal constant, which stands for itself.

For Example:

<device specification>::= <device name>[<device number>]:
<device name>::= C|D|E|K|P|R|S
<device number>::= 1|2|3|4|5|6|7|8

A "device specification" consists of a mandatory "device name," followed by an optional "device number," followed by the mandatory colon character. The device name in turn must be one of the characters shown as alternatives. The device number (if it is present) must be a digit 1 through 8.

OS Equate Filenames

Operating System ROM (Read Only Memory) and RAM (Random Access Memory) vector names, RAM database variable names and hardware register names are all referred to by the names assigned in the OS program equate list. When one of these names is used, the memory address is usually provided, such as BOOTAD [0242].