This symbol in front of a number indicates that the number should be interpreted as hexadecimal.
This is a separate microprocessor, contained within the ATARI 400/800 Computers, which is dedicated to the television display. ANTIC is user-programmable with an instruction set, a program (the "display list"), and data (the "display memory").
This is a feature provided by the operating system which, after nine minutes without a key being pressed, cycles the colors on the screen through random hues at lowered luminances. This ensures that a computer left unattended for several hours doesn't burn a static image into the television screen.
The area of the television screen display upon which player-missile graphics objects or playfield objects and/or text are projected. Background has its own user-definable color.
Acronym for Binary Coded Decimal. A numbering system in which each number is broken into a sequence of decimal digits. These decimal digits are then coded into binary, a task which requires four bits per digit, and stored in the resultant form. In the ATARI Computer, two such digits are stored in each 8-bit byte.
In BASIC Mode 0, this is the area of the television screen display which is formed by the four edges of the screen. The border takes background color.
A flag set when the OS senses that the BREAK key is typed. BRKKEY'S normal value is $FF — if it changes, then the BREAK key has been pressed.
This is the file pointer's position within a sector on diskette.
CASSETTE BOOT FILE
A standard or user-created file which boots from cassette at power-up or SYSTEM RESET.
The technique of redefining the individual characters of a character set to form graphics images instead of text characters.
The unique 8 X 8 pixel grid which defines a particular character's shape.
This is a specific type of ANTIC display mode which displays screen display memory data bytes as characters, using a character set. There are six ANTIC character modes, three of which are accessible from BASIC.
CHARACTER NAME BYTE
A one-byte ANTIC display memory value which selects a unique character within the current character set using the character's sequential position in that set.
CHARACTER SET INDIRECTION
The technique of specifying to ANTIC a particular character set to be used by placing that set's beginning page address into CHBAS.
The OS shadow location which ANTIC uses to find the current character set which is to be used for character display modes. CHBAS is at decimal address 756.
This is a single byte sum of all the bytes in a record (either disk I/O or cassette I/O). For cassette I/O, this includes addition of the two marker characters, computed with end-around carry.
Acronym for Central I/O system routine. CIO routes I/O control data to the correct device handler and then passes control to the handler. CIO is also the common entry point for most of the OS I/O functions.
The process of altering the display list LMS (Load Memory Scan) address bytes in order to vertically or horizontally scroll the screen image, one byte at a time. This is accomplished by adding 1 to or subtracting 1 from the LMS address bytes.
Synonym for the power-up process which performs a series of system database initializations when the computer power switch is turned on. After coldstart, the system surrenders control to the user.
This occurs when a player or missile image coincides with another image. There are 60 possible collisions and each one has a bit assigned to it that can be checked. These bits are mapped into 16 registers in CTIA (with only the lower 4 bits used).
One of 128 values obtained from a hue-luminance combination which is stored in a color register.
The standard unit of horizontal distance on the television screen. There are 228 color clocks in a horizontal scan line, but only 160 are displayed in a normal width playfield.
A hardware register (with corresponding OS shadow location) used to define the color for various portions of the screen display. There are nine color registers available on the ATARI Home Computer.
COLOR REGISTER INDIRECTION
The technique of specifying a particular color by pointing to its color register rather than directly specifying it.
This contains the color information which is combined with the primary signal to form the modulating television signal. The color signal oscillates at 3.579 Mhz.
A zero-page location ($4F) set up and updated by the OS during vertical blank interrupts for ATTRACT mode processing. When ATTRACT mode is in force, COLRSH is given a new random value every 4 seconds.
In BASIC, this is the first executable token of a BASIC statement that tells BASIC to interpret the tokens that follow in a particular way.
In BASIC, this is a 6-byte BCD value preceded by a special token. This value remains unchanged throughout the program execution.
In cassette I/O, this is part of every record. It contains one of three possible values.
A television interface chip which is controlled primarily by ANTIC. CTIA converts ANTIC's digital commands into a signal that is sent to the television.
In BASIC, this is the current token within a line of the Statement Table.
This occurs when ANTIC halts 6502 processing in order to perform DMA functions for memory refresh and screen display purposes.
The technique of repetitively flipping through colors, graphics images, or character graphics sets to animate screen images.
Acronym for Device Control Block. The DCB is used by the I/O subsystem to communicate between the device handler and SIO.
Routines present in OS ROM which are called through CIO (as long as the handler has an entry in HATABS) to communicate with particular devices. Currently supported are the display editor, the screen, the keyboard, the printer, and the cassette. More handlers can automatically boot in during power-up.
A special HATABS code which specifies a particular I/O device.
This results from the combination of horizontal and vertical scrolling of the screen image.
ANTIC's "program" defined by the user or provided automatically (through a GRAPHICS command) by BASIC. The display list specifies where the screen data may be found, what display modes to use to interpret screen data, and what special display options (if any) should be implemented.
DISPLAY LIST INTERRUPT
A special ANTIC display list instruction which interrupts the 6502 microprocessor during the drawing of the screen image, allowing the 6502 to change the screen parameters.
Either a BASIC or ANTIC methodology for interpreting text or map data bytes in screen memory and displaying them on the screen. ANTIC provides 15 display modes; BASIC, through the OS, supports only 9 of these modes.
This is a 2-byte vector (low byte, high byte) to the Display List Interrupt service routine. This vector is set by the user and is located at [512,513] decimal.
Direct Memory Access. This occurs when ANTIC halts the 6502 and takes control of the system buses to fetch an instruction or data byte from memory.
The hardware register whose bit settings control the use of DMA by the ANTIC chip. This affects, among other things, player vertical resolution and player-missile graphics enabling.
Acronym for Disk Operating System which is an extension of the OS that allows the user to access disk drive mass storage as files.
A unit of vertical resolution for a player in player-missile graphics. Each player byte occupies two horizontal scan lines on the screen, and each player table is 128 bytes long.
A zero-page ($4E) location set up and updated by the OS during vertical blank interrupts for ATTRACT mode process color register's value. This ensures a low luminance for ATTRACT mode.
Acronym for Disk Utility Package. DUP is a set of utilities for disk drive usage, familiarly seen as the DOS menu. DUP executes commands by calling FMS through CIO.
DYNAMIC DISPLAY LIST
This is an ANTIC display list which the 6502 changes during vertical blank periods, allowing for even greater flexibility in the screen display.
In BASIC, "End-of-Line", a character with the value $9B.
In cassette I/O, this consists of a 20-second leader of the mark tone plus any number of data bytes, and end-of-file. In diskette I/O, this consists of a number of sectors linked by pointers (125 data bytes per sector).
For diskette I/O, this is a value which indicates the current position in a file by specifying the Sector Number and the Byte Count. DOS keeps a file pointer for every file currently open.
The process of horizontally or vertically scrolling a screen image in color clock or scan line increments. The horizontal scrolling and vertical scrolling hardware registers must be used to fine scroll.
File Manager System. FMS is a nonresident device handler which supports some special CIO functions.
A collection of characters which constitutes a character set. These characters can be either text or graphics images.
Equivalent to playfield, the area of the screen which directly overlays the background of the screen. Foreground is formed by map displays and/or text.
A resident disk handler command that clears all the tracks on diskette.
In BASIC, a token that when executed returns a value to the program.
A special feature of the ATARI Computer which allows color register and character set generality by using indirect pointers to color and character set values.
The device handler entry point table which is used by CIO. HATABS is located at $031A.
This is the period during which the electron beam (as it draws the screen image) turns off and returns from the right edge of the screen to the left edge.
HORIZONTAL POSITION REGISTER
A special register which contains a user-definable value for the horizontal position of a player in player-missile graphics. This value is measured in units of color clocks.
HORIZONTAL SCAN LINE
The fundamental unit of measurement of vertical distance on the screen. The scan line is formed by a single trace of the electron beam across the screen.
HORIZONTAL SCROLL ENABLE BIT
This is bit D6 of the ANTIC display instruction which enables horizontal scrolling through the HSCROL register.
This is the process of sliding the screen window to the left or right over display memory in order to display more information than could be seen with a static screen. Both coarse and fine horizontal scrolling and available.
This is the horizontal fine scrolling register located at $D404, containing the number of color clocks by which a line is to be horizontally scrolled.
The upper nybble value of a color register's color. There are 16 possible hues ($0 to $F) which in combination with a luminance value constitute distinct colors. Examples of hues are black, red, and gold.
In BASIC, the mode where the input line is not preceded by a line number. BASIC immediately executes the line.
INPUT BAUD RATE
For cassette I/O, this is assumed to be a nominal 600 baud (physical bits per second). However, this rate is adjusted by SIO to account for drive motor variations, stretched tape, etc.
INPUT LINE BUFFER
In BASIC, from $580 to $5FF.
For cassette I/O records, this consists of the Post-record Gap of a given record followed by the Pre-record Write Tone of the next record.
Acronym for Input/Output Control Block. There are eight of these whose function is to communicate between the user program and CIO.
Maskable (can be enabled or disabled by the 6502) interrupts such as the Break Key IRQ.
The write-only register that contains the IRQ enable/disable bits. IRQEN is shadowed at POKMSK.
A primitive software/hardware technique which consists of a 6502 program loop which is precisely timed to the display cycle of the television set. The kernel code monitors the VCOUNT register and consults a table of screen changes catalogued as a function of VCOUNT values so that the 6502 can arbitrarily control all graphics values for the entire screen.
In BASIC, a line consists of one or more BASIC statements preceded either by a line number in the range of 0 to 32767, or an immediate mode line with no line number.
In BASIC, this is the pointer ([80,81] decimal) to a buffer used to tokenize one line of code. The buffer is 256 bytes long, residing at the end of the operating system's allocated RAM.
Acronym for Large Scale Integration. This refers to a technology for manufacturing silicon chips. LSI chips are the largest and most powerful chips in mass production; they contain many thousands of components.
The lower nybble of a color register's color. There are eight even-numbered values for luminance ($0 to $F, even values only) which in combination with hue values produce the 128 colors available on the ATARI 400/800 Computer.
This is a specific type of ANTIC display mode using simple colored screen pixels instead of characters for the screen display. There are eight ANTIC map modes, with varying degrees of resolution. Six of these are callable from BASIC.
For cassette I/O, this is a 5327-Hz frequency.
For cassette I/O, this is a 55 (hex) value whose purpose is for adjusting the baud rate. Including the start and stop bits, each marker character is 10 bits long.
In BASIC, a pointer ([90,91] decimal) to the top of application RAM, the end of the user program. Program expansion can occur from this point to the end of free RAM, which is defined by the start of the display list. This MEMTOP is not the same as the OS variable called MEMTOP.
A one-dimensional image in RAM used in player-missile graphics which is 2 bits wide. There is a maximum of four missiles, one for each player.
A collection of horizontal scan lines for screen displays. Depending upon the BASIC or ANTIC display mode in effect, a mode line will be composed of varying numbers of scan lines. By the same token, depending upon the display mode, a screen image will be composed of varying numbers of mode lines.
A program in ROM that handles both the system power-up and SYSTEM RESET sequences.
A screen display width option equal to a width of 128 color clocks.
Non-Maskable Interrupt (i.e., cannot be disabled by the 6502). The Display List Interrupt and the Vertical Blank Interrupt are both NMIs. These can be disabled with the ANTIC NMIEN register.
The Non-Maskable Interrupt Enable register which controls enabling of various NMI interrupts such as the Display List Interrupt (DLI).
NORMAL IRG MODE
In cassette I/O, this is a mode where the tape always comes to a stop after each record is read. If the computer stops the tape and gets its processing done fast enough, then the next read may occur so quickly that the cassette deck may see only a slight dip in the control line.
A screen display width option equal to a width of 160 color clocks.
In BASIC, any one of the 46 tokens that in some way move or modify the values that follow them.
In BASIC, a software stack where operators are placed when an arithmetic BASIC expression is being evaluated.
The "spreading out" of a television image by the raster scan method of display so that the edges of the picture are off the edge of the television tube. This guarantees no unsightly borders in the television picture.
Acronym for Peripheral Interface Adaptor. This is an LSI chip which interfaces the 6502 with external devices. The joystick pins of the four user ports are connected to a PIA inside the computer.
The smallest screen graphics unit addressable in a particular display mode. It is a square whose size depends on the display mode.
A one-dimensional RAM image used in player-missile graphics which can be 128 bytes (double-line resolution) or 256 bytes (single-line resolution) long. The player appears as a vertical band 8 pixels wide stretching from the top of the screen to the bottom. There is a maximum of four independent players.
The color of a player in player-missile graphics. Each of the four independent players has its own color stored in its associated color register.
A RAM area that contains the images of the four players and four missiles of player-missile graphics, as well as some extra RAM. The player-missile area must be on a 1K boundary for single-line resolution players or a 2K boundary for double-line resolution players.
Atari's solution for simplifying animation by creating an image (a player or missile) which is one-dimensional in RAM but two-dimensional on the screen.
The area of the screen which directly overlays the background of the screen. Map graphics and/or text form this playfield.
The technique of animating an object by moving its image bytes to new locations in screen memory, and then erasing the bytes of the old image before displaying the new image.
A register that points to the beginning of the player-missile area.
A digital I/O chip that handles the serial I/O bus, audio generation, keyboard scan, and random number generation. POKEY also digitizes the resistive paddle inputs and controls maskable interrupt (IRQ) requests.
These are hardware timers within POKEY. Unlike System Timers, which are maintained by the OS software and are fixed, the POKEY chip timers are clocked by frequencies set by the user.
A pure mark tone frequency used as a post-record delimiter in cassette I/O.
PRE-RECORD WRITE TONE
A pure mark tone frequency used as a pre-record delimiter in cassette I/O.
This contains the luminance information — brightness data, horizontal and vertical syncs and blanks — of the modulated television signal.
Also known as PRIOR, and shadowed at GPRIOR. This register specifies which playfield, player, or background images have priority in the case of image overlaps during the screen display process.
Alterable system vector that contains 2-byte addresses to system routines, handler entry pointers, or to initialization routines. RAM vectors are initialized at power-up and SYSTEM RESET.
A television display system that uses an electron beam generated at the rear of the television tube. The beam sweeps across the screen in a regular left-to-right, top-to-bottom fashion.
For diskette I/O, a group of bytes delimited by EOLs ($9B). For cassette I/O, this is a group of 132 bytes which is composed of two marker characters for cassette speed measurement, a control byte, 128 data bytes, and the checksum byte.
RESIDENT DISK HANDLER
The fundamental software in the OS ROM containing the absolutely essential disk handler routines. This software performs five important low-level disk I/O functions such as FORMAT, READ SECTOR, WRITE SECTOR, WRITE/VERIFY SECTOR, and STATUS.
Unalterable system vector that contains JMP instructions to system routines. The ROM vector allows a programmer to write software that uses the OS routines without running the risk of the routines being made unworkable by new releases of the OS ROM.
One of the system timers which is 3 bytes in length and is updated during immediate VBLANK. RTCLOK can be used as a reference clock for an application program.
In BASIC, a pointer ([8E,8F] decimal) to the Run Time Stack.
RUN TIME STACK
In BASIC, a software stack that contains GOSUB and FOR/NEXT return address entries.
A RAM area used by the 6502 to store bytes of data that will be fetched (by DMA) by ANTIC to be interpreted and eventually displayed as images on the screen.
On a diskette, this is a 128-byte physical area. The diskette contains 40 tracks with 18 sectors per track.
A value from 1 to 719 that specifies the sector to which the file pointer is currently pointing.
A system routine that sets the system timers and sets user-definable interrupt vector addresses without danger of crashes due to interrupts in mid-process.
A process in which values are moved between hardware locations and RAM locations, thereby allowing the program to monitor the contents of write-only hardware registers or check the inputs form read-only hardware registers.
SHORT IRG MODE
In cassette I/O, this means the tape is not stopped between records. The BASIC commands "CSAVE" and "CLOAD" both specify this mode.
A unit of vertical resolution for a player in player-missile graphics. Each player byte occupies one horizontal scan line on the screen, and each player table is 256 bytes long.
Serial I/O system routine which handles communication between the serial device handlers in the computer and devices on the serial bus (cassette, printer, disk drive, and RS-232).
These are three IRQ interrupts used by SIO to send and receive serial bus communications to serial bus devices. These three are VSERIR (Serial Input Ready), VSEROR (Serial Output Needed), and VSEROC (Transmission Finished).
Audio-producing hardware in the ATARI Home Computer System which contains frequency, volume, and distortion information, but not duration.
For cassette I/O, this is a 3995-Hz frequency output to the cassette tape as a delimiter in conjunction with mark tones.
In BASIC, the pointer ([8C,8D] decimal) to the String Array Area.
In BASIC, this is a complete "sentence" of tokens that causes BASIC to perform some meaningful task. In LIST form, statements are separated by colons.
In BASIC, this is a block of data that includes all the lines of code that have been entered by the user and tokenized by BASIC. This table also includes the immediate mode line.
In BASIC, the pointer ([8A,8B] decimal) to the current BASIC statement.
In BASIC, this is the pointer ([88,89] decimal) to the Statement Table.
STRING ARRAY AREA
In BASIC, this block contains all the string and array data.
This is a 3995-Hz space frequency used as a sort of "end-of-record" marker for audio tracks on the cassette. In applications software it is useful for synchronizing the computer screen display with cassette audio.
This is an area that occupies RAM pages 0 through 4, containing many locations that store information of importance to the operating system.
A timer provided by the ATARI 400/800 Computers that runs at the frequency of the television frame which for North American televisions (NTSC) is 59.923334 Hz. European (PAL) televisions run at 50 Hz. There are six system timers, and they are clocked as part of the vertical blank process.
A pixel on an NTSC screen, one color clock wide, that contains color not assigned by the computer. This color is derived from internal oddities of color television displays. Artifacting is possible in ANTIC modes 2, 3, and 15 which correspond to BASIC modes 0, no mode, and 8.
On a screen display, this is a two-dimensional area set aside for character displays.
In BASIC, an 8-bit byte containing a particular execution code.
In BASIC, this is the process of getting a line of ATASCII character input and creating a series of 8-bit bytes which contain tokens, meaningful execution codes.
In BASIC, a token that is an indirect pointer to an entries in variable tables that contain the variable name and the variable value.
VARIABLE NAME TABLE
In BASIC, this is the table containing a list of all the variable names that have been entered in a program.
VARIABLE VALUE TABLE
In BASIC, this table contains the numerical value of each variable.
This is the 6502 BRK instruction IRQ vector. Whenever a $00 opcode (the software break instruction) is executed, this interrupt occurs. VBREAK normally points to an RTI instruction.
The ANTIC register which keeps track of which horizontal scan line ANTIC is displaying.
This is the Display List Interrupt NMI vector located at [$0200,$0201].
The period during which the electron beam (as it draws the screen image) returns from the bottom of the screen to the top. This period is about 1400 microseconds in duration.
VERTICAL BLANK INTERRUPT
A non-maskable interrupt which occurs every 60th of a second during the vertical blank time of the television display. In responding to this interrupt, the OS performs various housekeeping functions such as shadowing color registers.
VERTICAL SCROLL ENABLE BIT
This is bit D5 of the ANTIC display list instruction byte which enables vertical fine scrolling through VSCROL ($D405), the vertical fine scroll register.
The process of vertically "rolling" the display screen "window" over a larger amount of screen data in display memory than can be displayed by a static screen window. Both coarse and fine vertical scrolling are available on the ATARI 400/800 Computers.
This is the immediate IRQ vector. All IRQs vector through this location. VIMIRQ normally points to the IRQ handler. This vector can be "stolen" to do user IRQ processing.
This is the Peripheral Interrupt IRQ vector. The interrupt line is also available on the serial bus. VINTER normally points to an RTI instruction.
This is the keyboard IRQ vector which is activated by pressing any key except BREAK. This vector normally points to the OS's own keyboard IRQ routine.
In BASIC, this is the pointer ([84,85] decimal) to the Variable Name Table Dummy end. BASIC uses this pointer to indicate the end of the name table. This pointer normally points to a dummy zero byte when there are less than 128 variables. When 128 variables are present, this points to the last byte of the last variable name.
In BASIC, the pointer ([82,83] decimal) to the Variable Name Table.
This is the Peripheral Proceed IRQ vector. The proceed line is available to peripherals on the serial bus. This IRQ is unused at the present and normally points to an RTI instruction.
This is the vertical fine scroll register located at $D405. Into VSCROL the user stuffs the number of scan lines by which the screen line is to be vertically scrolled.
This is the POKEY serial Input Ready IRQ vector.
This is the POKEY serial Output Ready IRQ vector.
This is the POKEY timer 1 IRQ vector.
This is the POKEY timer 2 IRQ vector.
This is the POKEY timer 4 IRQ vector.
This is the Vertical Blank Deferred NMI interrupt vector located at [$0224,$0225].
This is the Vertical Blank Immediate NMI interrupt vector located at [$0222,$0223].
In BASIC, this is the pointer ([86,87] decimal) to the Variable Value Table.
Another name for SYSTEM RESET routine. The warmstart initializes most of the system vectors but does not check RAM size.
A screen display width option equal to a width of 192 color clocks.
Wait for Horizontal Sync of the electron beam which is drawing the screen image. The WSYNC register, when written to in any way, pulls down the RDY line on the 6502 microprocessor, freezing the 6502 until the electron beam drawing the screen image returns to the left edge of the screen.
In the ATARI Home Computer System, this is the stretch of memory which spans locations $0000 to $00FF.
Zero-page I/O Control Block is used to communicate I/O control data between CIO and the device handlers.
Return to Table of Contents | Previous Chapter | Next Chapter