Display list
A display list (or display file) is a series of graphics commands that define an output image. The image is created (rendered) by executing the commands. This activity is most often performed by specialized display or processing hardware partly or completely independent of the system's CPU for the purpose of freeing the CPU from the overhead of maintaining the display, and may provide output features or speed beyond the CPU's capability.
For a display device without a frame buffer, such as the old vector graphics displays, the commands were executed every fraction of a second to maintain and animate the output. In modern systems, the commands need only be executed when they have changed or in order to refresh the output (e.g., when restoring a minimized window).
A display list can represent both two- and three-dimensional scenes. Systems that make use of a display list to store the scene are called retained mode systems as opposed to immediate mode systems.
One of the earliest popular systems with true display list was the Atari 8-bit family. The display list (actually called so in Atari terminology) is a series of instructions for ANTIC, the video co-processor used in these machines. This program, stored in the computer's memory and executed by ANTIC in real time, can specify blank lines, any of six text modes and eight graphics modes, which sections of the screen can be horizontally or vertically fine scrolled, and trigger Display List Interrupts (called Raster interrupts or HBI on other systems).
Another system using a Display List-like feature in hardware is the Amiga, which, not coincidentally, was also designed by some of the same people who made the Atari 8-bits custom hardware. The Amiga hardware was extremely sophisticated, and once directed to produce a display mode, it would do so automatically. However, the computer also included a dedicated co-processor, called "Copper", which ran a simple program ("Copper List") oriented toward the display. The Copper List instructions could direct the Copper to wait for the display to reach a specific position on the screen, and then change the contents of hardware registers. In effect, it was a processor dedicated to servicing Raster interrupts. The Copper was used by Workbench to mix multiple display modes (multiple resolutions and color palettes on the monitor at the same time), and by numerous programs to create rainbow and gradient effects on the screen.
In more primitive systems, the results of a display list can be simulated, though at the cost of CPU-intensive writes to certain display-mode, color-control, or other visual effect registers in the video device, rather than a series of rendering commands executed by the device. Thus, one must create the displayed image using some other rendering process, either before or while the CPU-driven display generation executes. In many cases, the image is also modified or re-rendered between frames. The image is then displayed in various ways, depending on the exact way in which the CPU-driven display code is implemented.
Examples of the results possible on these older machines requiring CPU-driven video include effects such as Commodore 64/128's FLI mode, or Rainbow Processing on the ZX Spectrum.