Here at Educational Software we get tired of computer terminology. However, many of these words are becoming a part of our language. As we explain the inner workings of the Atari, we will have to refer to some of the following words. If your find some term we forgot to mention here, it's probably because it is fully explained in the appendices or at the memory location it pertains to. You should also read your BASIC manual in order to understand the terms that have to do with the BASIC language.
6502: This is the heart of the computer, the chip that bosses everybody around. Actually, a lot of people even refer to the 6502 as being the computer, since it does have almost all of the brains.
Accumulator: This is a location that is used to temporarily store the results of logic and arithmetic operations. The main accumulator is inside the 6502 chip, but sometimes memory locations are also used as an extra accumulator.
Address: The number assigned to an individual memory location. Each byte in the Atari has its own unique address, much like a house has a street address. The main use of this book is to provide you a roadmap to each address so you don't get lost.
Algorithm: A general procedure, plan, or method that represents how your program will be written.
ANTIC: This is a chip in the Atari computers that figures out what the screen is supposed to look like.
ASCII: The American Standard Code for Information Interchange (pronounced ASK-KEY). Everyone needs a standard or reference to refer to. This allows us all to speak to each other in the same terms. Humans use dictionaries to speak the same words. In the case of computers, ASCII allows one computer to understand the letters and numbers created on another computer. Atari computers do not follow a true ASCII, but have their own code instead which we explain later.
Assembly language: This is a programming language, just like BASIC, except it talks the computer's language instead of having to go through a translator. See machine language as well.
ATASCII: ATAri Standard Code for Information Interchange. This is the code the Atari uses to convert letters to numbers and vice versa. See your BASIC manual to find out how it differs from ASCII.
Baud: The rate of transmission of information conveyed between two computers. You usually say "Baud Rate" meaning how fast the two computers are talking to each other. This rate is determined by the bits per second that are being transferred. You encounter this term if you are using a modem, printer, disk drive, terminal or other device that needs to talk to a computer to work. Typical speeds of information transfer are 300, 1200, 2400, 9600, and 19200 bits per second.
Bit: The smallest piece of information the computer can handle. There are eight bits in a byte. Each bit can either be "on" or "off." See the section on Bits and Bytes for a complete description. Sometimes in this book you'll see "-" for the value of a bit. This just means that it doesn't matter if that particular bit is on or off.
Bit mapping: This refers to the process of turning individual bits on and off without changing the rest of the byte.
Boot: No, this isn't even close to what it sounds like. "Booting" a program means loading it in when the computer is turned on. For example, if you hold down the START button while turning on the computer, the computer will beep. This means that it expects a boot cassette to be in the cassette player. When you turn on the computer with the disk drive on, you will boot DOS. In other words, any program that loads in without you having to tell it to load is a boot program.
Boundary: As in "4K boundary." This is the end of a block of memory. For example, a 1K boundary would be the end of 1024 byte block.
Buffer: A storage place, usually temporary, where information can come and go without disturbing things.
Bus: A bus is a system of electrical lines shared by all devices that are connected to it. This is a convenient way for these devices to share data. It works just like a party-line telephone. Different parts of the computer talk to each other by getting on the bus and sending messages.
Byte: Pronounced BITE. A collection of eight bits. Each memory address consists of one byte. Since we know at this point bytes and bits can be confusing, we provide a special section elsewhere in the book, called BITS and BYTES, to explain it to you.
Checksum: A checksum is a special byte that the computer uses after talking to something to make sure it understood what was said correctly.
CIO: Central Input/ Output. This is Atari's main I/O routine.
Cold start: A routine the computer goes through after you turn it on and before it lets you tell it what to do.
Color clock: A unit of measurement for the screen. A color clock is the width of a pixel in graphics mode seven. That means that the screen is 160 color clocks wide from border to border.
Controller jack: What you plug your joystick into.
CTIA: This chip takes care of translating the data coming from ANTIC into something the television set can understand.
Cursor: The position on the screen where the next character or pixel will appear. In graphics mode zero, you can see the cursor; it's the white box.
Data: Any kind of information that is needed by a program or by the computer.
Default: When you first turn on the computer, each memory location will contain a value. These initial values are called defaults, meaning that this is what these locations will equal if you don't change them.
Device: Anything that the computer has to talk to is called a device. This includes the disk drive, printer, and even the keyboard and television set.
Disable: To turn off. By disabling the BREAK key, for example, you can prevent someone from accidentally stopping your program.
Display list: The program for ANTIC that describes what the screen is to look like.
DLI: Display List Interrupt. See interrupt.
DMA: Direct Memory Access. The process of getting data from memory to put on the screen.
DOS: Disk Operating System. A program that controls the use of the disk drive. See OS as well.
DUP: Disk Utilities Package. This is a bunch of routines to do various things on the disk drive. The DOS menu is actually a list of these routines.
Enable: To turn on. The opposite of disable.
File: A whole bunch of data stored on disk or cassette.
Flag: A signal that a certain condition has been met. In many BASIC programs, variables are used as flags, as demonstrated in the following example:
10 IF A=B AND C=D THEN FLAG =1
50 IF FLAG= 1 THEN 100
50 IF FLAG= 1 THEN 100
Floating point: A type of arithmetic where the decimal point can appear anywhere in the numbers (i.e., it can float around). An example of such numbers would be 1.0, 23.97, and 1.45678E+04. Floating point numbers take up much more memory than fixed point (integer) numbers.
FMS: File Manager System. This is a group of routines, or handler, to help the computer talk to the disk drive.
GTIA: A fancy version of CTIA.
Handler: A series of routines that tell the OS how to handle a particular device.
HBLANK: Horizontal BLANK. The television set draws the screen one line at a time, from top to bottom and left to right. HBLANK is the time during which it is moving from the end of one line to the beginning of the next.
Hi-res: Pronounced "high rez." This is an abbreviation for "high resolution," which refers to a graphics display with very small dots.
Immediate mode: Using the computer without running a program. For example, if you type in
PRINT 3 + 2
and then press RETURN, you will get a result of 5 on the screen immediately.
Index: This is a variable used to keep track of where we are in a loop. For example, in the following statement X would be an index:
FOR X=1 TO 100
Internal: If something is internal, then that usually means it is built into the computer.
Interrupt: An interrupt is something that interrupts whatever the computer is doing and tells it to do something else before it continues. You should also see DLI, IRQ, NMI, and VBLANK.
I/O: Input/Output (I/O) is nothing more than a fancy way of referring to the computer talking to a device, or vice versa.
IOCB: Input/Output Control Block. This is a place that you use to talk to CIO. See the appendix on 110.
IRQ: Interrupt ReQuest. This is a kind of interrupt that you can tell the computer to ignore (the 6502 can enable or disable it).
Jiffy: A jiffy is one sixtieth of a second, the time that it takes the television set to completely draw the screen once. In European (PAL) systems, a jiffy is one fiftieth of a second.
Jump: The same thing as GOTO. The expression "jump through location" means that the computer will GOTO the address stored in that location.
K: As in 1K, 8K, 16K, etc. I K is equal to 1024 bytes.
Logical line: A logical line is the space that a program line takes up. It can be one, two, or three screen lines (try typing in a BASIC line that is more than three screen lines).
Machine language: Machine language is a way of talking directly to the 6502 chip. Other languages like BASIC have to be translated into machine language before the 6502 can understand them. That takes time, which is why machine language programs run so much faster than BASIC ones. In case you're wondering what the difference is between machine language and assembly language, not much. Machine language is just a bunch of numbers. Assembly language gives these numbers names so that they make more sense.
Masking: When you're bit mapping, you have to have a way of ignoring the bits you're not interested in. This process is called masking, since you essentially place a mask over the bits you don't want to look at.
Nibble: This is going to sound funny, but I swear it's the truth. A nibble is half a byte, or four bits.
NMI: Non-Maskable Interrupt. Unlike IRQs, you can't tell the 6502 to ignore this kind of interrupt. DLIs and VBLANK interrupts are both NMIs.
NTSC: A name for the television system that is used in North America. European television is slightly different and uses a system called PAL.
Offset: If you have a whole bunch of bytes making up a table of values or a buffer or something similar, then the offset is the number of the byte in this bunch that you are currently interested in.
OS: Operating System. Its job is to make the computer run. You can think of the OS as the coach directing the players in a game. We can change some of the numbers in the operating system to make the computer do what we want, instead of what it normally does.
Page: Computer memory in the Atari is divided into 256 sections, called pages. Each page consists of 256 bytes. The pages are numbered zero through 255, and you can tell what page a particular location is in by looking at the high byte of its address. For example, location $09AB would be in page nine. See the section called "Computer Mathematics" for an explanation of what a "high byte" and "low byte" are, and also for an explanation of "hexadecimal," which is what that funny number with a "$" in front of it is.
PAL: The television system used in Europe. See NTSC as well.
Parallel: There are two ways that the computer can talk to something else. One of these is called parallel I/O, which simply means that the data is sent out one byte at a time. See serial for the other.
PIA: This chip takes care of the controller jacks.
Pixel: A fancy word for a dot on the screen.
Playfield: Anything that appears on the screen other than a player or missile (see the appendices for a description of players and missiles).
Pointer: A pointer does exactly what it sounds like: points somewhere. Usually this "somewhere" is the location of some information that is needed. The pointer holds the address of this location.
POKEY: † value you want them to have.
ROM: Read Only Memory. Computer memory that you can't change with the POKE command or anything else (it's OK to PEEK them though). ROM locations even remember their values after you turn the computer off! BASIC and the Atari operating system are stored in ROM.
Scan line: If you look really closely at the screen, you'll see that it's made up of a whole bunch of tiny horizontal lines. These are called scan lines and are the height of a graphics mode eight pixel.
Screen memory: A bunch of bytes somewhere in memory (usually at the end) that ANTIC converts into a picture and sends to GTIA or CTIA which puts it on the screen. In other words, this is where the data that is to appear on the screen is stored. In case you don't understand the difference between this and the display list, the display list tells ANTIC how to interpret the screen memory (i.e. where is it, does the data represent characters or pixels, how big are they, etc.).
Sector: A group of 128 bytes on the disk. It may be difficult to do, but try to imagine a disk being made up of 40 concentric rings. Now imagine cutting the whole disk into 18 equal-size wedges. Each of these wedges will have 40 pieces for a total of 720 pieces altogether. Well, each of these pieces is a sector.
Serial: This is a method of I/O that sends data out one bit at a time rather than one byte at a time. See parallel also.
Shadow register: A shadow register is a RAM location that acts like a messenger for a chip location. Any changes to the shadow register are sent to the chip, and vice versa. This is necessary because a chip location can't be changed permanently, and so it relies on its shadow register to get information from you.
SIO: Serial Input/Output. This refers to a routine in the OS that takes care of serial I/O. See serial.
Timeout: Sometimes a device needs a little time to think and breathe, so it takes a timeout. If it takes too long a timeout, however, the computer gets upset and refuses to talk to it anymore.
User: You, anybody, or anything that uses the computer. BASIC is considered a user by the OS, and the OS is considered a user by the 6502. Similarly, BASIC considers your program a user, and your program considers anyone that runs it a user.
VBLANK: Vertical BLANK. We already saw that the television set draws the screen over and over from top to bottom and left to right (see HBLANK). VBLANK is the time during which the television set is going from the bottom of the finished screen back to the top to start drawing again.
Vector: This is another kind of pointer. It refers to the starting address of a routine. The computer needs to know where to look for things, and the vectors help it along the way. Usually a vector references the starting address of a machine language subroutine.
Warm start: A routine the computer goes through after you press SYSTEM RESET and before it lets you tell it what to do.
Return to Table of Contents | Previous Chapter | Next Chapter