Below is a list of commonly-referenced computing and programming terms found throughout the Better Bally Book. Sources are listed in parentheses after each entry, and source citations are listed at the bottom of the page.


Accumulator: A temporary register where results of calculations may be stored by the central processor. (SC:325)

Arithmetic and Logic Unit (ALU): The circuitry that performs manipulations on data held in the accumulator. (BS:17)

Assembler: A program that converts symbolic instructions into machine macro-instructions. (SC:325)


Binary-coded decimal (BCD): “A class of binary encodings of decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight.” The Bally Arcade uses packed BCD, meaning that each nibble of a byte holds a decimal digit between 0–9 (e.g., $36 = 37D). Numbers between $A–F are considered invalid. (Binary-coded decimal)

Bootstrap: A program that coordinates the minimum amount of necessary peripherals to load a larger program into the computer. (SC:113)

Bounce: Move back and forth between states before reaching a final state. Usually refers to mechanical switches that do not open or close cleanly, but rather move back and forth between positions for a while before settling down. (LV:467)

Bus: A group of wires that carry related binary signals, usually a word, as in a 16-wire address bus. A bus can be bidirectional, e.g., a data bus. (BS:17)


Debounce: Convert the output from a contact with bounce into a single clean transition between states. Debouncing is most commonly applied to outputs from mechanical keys or switches that bounce back and forth before settling into their final positions. (LV:470)

Decoder: Typically a device that detects a specific address on the address bus. (BS:17)

Directives: Special orders given by the programmer to the assembler that result either in storing values into symbols or into the memory, or in controlling the execution or printing modes of the assembler. (RZ:596)

Dope vector: “A data structure used to hold information about a data object, e.g. an array, especially its memory layout…The dope vector includes an identifier, a length, a parent address, and a next child address.” (Dope vector)


Fill: Placing values in storage areas not previously in use, initializing memory or storage. (LV:472)

Flag: A bit attached to a word for identification or for the purpose of signaling some condition. Typical microprocessors include carry, zero, sign, overflow, and half-carry status flags. (SC:326)

Framebuffer: A framebuffer (frame buffer, or sometimes framestore) is a portion of RAM[1] containing a bitmap that is driven to a video display from a memory buffer containing a complete frame of data. (Framebuffer)


High-order: The highest place value in a given block of data.


Instruction: A step in a program that defines an operation together with the address(es) of any data needed for the operation. (SC:326)

Interrupt: A break in the execution of a program usually caused by a signal from an external device. (SC:326–7)

Interrupt page address register (I): An 8-bit register that can be loaded with a page address of an interrupt service routine. During a mode 2 interrupt program, control will vector to this page address. (SC:29)

Interrupt vector: An address used as a memory pointer to the start address of an interrupt-handling routine. (RZ:504)


Jump table: A table consisting of the starting addresses of executable routines, used to transfer control to one of them. (LV:475)


Latch: A device that retains its contents until new data are specifically entered into it. (LV:475)

Least significant bit: The binary digit occupying the right-most position in a number or word, usually 20 or 1. (SC:327)

Light pen: Photosensitive device that can be used to change the display on a CRT by generating a pulse at the point of contact. (SC:327)

Linked list: A list in which each item contains a pointer (or link) to the next item. (LV: 475)

Lookup table: An array of data organized so that the answer to a problem may be determined merely by selecting the correct entry (without any calculations). (LV:476)

Low-order: The lowest place value in a given block of data.


Machine language: Sets of binary integers that may be directly executed as instructions by the microcomputers without prior interpretation. (SC:327)

Macro: A group of instructions.

Mask: A bit pattern that isolates one or more bits from a group of bits. (LV:476)

Microcomputer: A logical machine that manipulates binary numbers (data) and processes this information by following an organized sequence of program steps referred to as instructions. Includes a central processor, often contained on a single chip, memory, I/O devices, and power supply. (SC:21, 327)

Microprocessor: The single integrated circuit around which a microcomputer is constructed. The microprocessor is a device (e.g., the Z80); the microcomputer is a system (e.g., the Bally Arcade). (SC:22)

Monitor: A program that controls the operation of basic routines to optimize computer time. Also see 'operating system.' (SC:327)

Most significant bit: The binary digit occupying the left-most position in a number or word, usually 27 or 128. (SC:327)


Object code: (or Object program) The program that is the output of a translator program, such as an assembler—usually a machine language program ready for execution. (LV:478)

Operating system: Software that operates the hardware resources of a microcomputer. The operating system may do scheduling, debugging, I/O control, accounting, compilation, storage assignment, and data management. (SC:327)


Pattern: A contiguous series of bits that represent picture elements comprising an onscreen image (i.e., graphic).

Pointer: A storage place that contains the address of a data item rather than the item itself. A pointer tells where the item is located. (LV)

Port: A place through which inputs and outputs—either data or instructions—are channeled. A microprocessor can have more than one port or can address many. (BS:18)

Program counter (PC): Contains a 16-bit address in memory from which the current instruction will be fetched. Following execution of the instruction, the PC counter is either incremented, if the program is to proceed to the next byte in memory, or the present PC contents are replaced with a new value, if a jump or call instruction is to be executed. (SC:28)


Reentrant: A computer program or subroutine that can be interrupted in the middle of its execution and then safely called again (“re-entered”) before its previous invocations complete execution. (Reentrancy (computing))

Register: A memory device directly accessible by the central processor used for the temporary storage of a computer word during arithmetic, logical, or I/O operations. (SC:327–8)

Read-only memory (ROM): Storage which can be written into only once. The information is fixed and cannot be changed. A ROM is usually mask programmed by the manufacturer and is bought with a preset bit pattern. ROM is used to store specific, unchanging programs steps or data. (SC:112)


Scratchpad: An area of main memory set aside for short and frequently-used calculations. (BS:18)

Semaphore: A variable or abstract data type used for controlling access, by multiple processes, to a common resource in a concurrent system such as a multiprogramming operating system. A trivial semaphore is a plain variable that is changed (for example, incremented or decremented, or toggled) depending on programmer-defined conditions. The variable is then used as a condition to control access to some system resource. (Semaphore (programming))

Stack: A reserved area of several memory locations, the top of which is indicated by the contents of the stack pointer. Memory location are organized as a last-in, first-out file. By looking at particular entries in the stack, the central processor returns to a main program regardless of the depth of nested subroutines. (SC: 28-9)

Strobe: A signal that identifies or describes another set of signals and can be used to control a buffer, latch, or register. (LV:484)

Subroutine: A program within a program that performs a specific, often-used function. (BS:18)


Vector (1): A data structure consisting of a collection of elements.

Vector (2): A quantity having direction as well as magnitude, especially for determining an object's position in space.

Vector (3): A specific address loaded into a microprocessor's program counter to force the microprocessor to start processing at a specific address. (BS:18)


Word: The basic grouping of bits that a computer can process at one time. When dealing with microprocessors, the term often refers to a 16-bit unit of data. (LV)


Z80: The Bally Arcade's central microprocessor. For general information about the Z80's capabilities, see Z80 Basics.


  • (BS) = Bally Service Manual
  • (LV) = Leventhal, Z80 Assembly Language Programming ()
  • (SC) = Ciarcia, Steve, Build Your Own Z80 Computer (1981) (Google Books)
  • (RZ) = Zaks, Rodney, Programming the Z80 (1981)