Raster interrupt

Last updated

A raster interrupt (also called a horizontal blank interrupt) is an interrupt signal in a legacy computer system which is used for display timing. It is usually, though not always, generated by a system's graphics chip as the scan lines of a frame are being readied to send to the monitor for display. The most basic implementation of a raster interrupt is the vertical blank interrupt.

Contents

Such an interrupt provides a mechanism for graphics registers to be changed mid-frame, so they have different values above and below the interrupt point. This allows a single-color object such as the background or the screen border to have multiple horizontal color bands, for example. Or, for a hardware sprite to be repositioned to give the illusion that there are more sprites than a system supports. The limitation is that changes only affect the portion of the display below the interrupt. They don't allow more colors or more sprites on a single scan line.

Modern protected mode operating systems generally do not support raster interrupts as access to hardware interrupts for unprivileged user programs could compromise the system stability. As their most important use case, the multiplexing of hardware sprites, is nowadays no longer relevant there exists no modern successor to raster interrupts.

Systems supporting raster interrupts

Several popular home computers and video game consoles included graphics chips supporting raster interrupts or had features that could be combined to work like raster interrupts. The following list is not exhaustive.

Astrocade (two custom chips, 1977)

The Bally Astrocade supported a horizontal blank interrupt to select the four screen colors from a palette of 256 colors. The Astrocade did not support hardware sprites.

Atari 8-bit computers (ANTIC chip, 1979)

The ANTIC chip used by the Atari 8-bit computers includes display list interrupts (DLIs), which are triggered as the display is being drawn. [1] [2] The ANTIC chip itself is considerably powerful and inherently capable of many features which other systems require raster interrupts to duplicate. ANTIC can mix multiple graphics modes on the screen, display horizontal and vertical overscan graphics, and fine scroll selected horizontal regions. DLIs on the Atari are typically used to add additional color to the display and reuse Player/Missile graphics elements.

ColecoVision and MSX (TMS9918 chip, 1979)

The ColecoVision, an 8-bit game console released in 1982, as well as the MSX, a standardized home computer from 1983, utilized the Texas Instruments TMS9918. It includes a 'vertical interrupt' source to reposition the hardware sprites on the screen.

Commodore 64 (MOS Technology VIC-II chip, 1982)

The C64's and C128's VIC-II has a flexible raster interrupt system. Raster interrupts and CPU intervention are necessary to reuse sprites on the screen, mix graphics modes, and selectively scroll screen regions. Raster interrupts are also supported by the Plus/4's and C16's TED.

Nintendo Entertainment System (PPU chip, 1983)

The Nintendo Entertainment System's PPU graphics chip does not support true raster interrupts - an interrupt can be set to trigger during the vertical blank interval, but not at any arbitrary scan line - instead required polling of a "hit flag" that indicated when the first sprite was being drawn. Although early games like Super Mario Bros. , Castlevania , and The Legend of Zelda managed to produce effective split-screen scrolling with this method, it is CPU-intensive. Some later cartridges incorporated MMC circuitry (most prominently Nintendo's MMC3 chip) that kept track of the PPU's address and data lines and generated raster interrupts.

IBM PCjr (Video Gate Array, 1984)

The IBM PCjr using the Video Gate Array graphics chip supported a 'vertical retrace interrupt' implemented as IRQ5. [3] Later in 1984, IBM introduced the EGA graphics standard which also supported a vertical retrace interrupt, but implemented as XT IRQ2 and disabled by default. [4] However, not all EGA cards implemented this feature and just very few programs utilizing EGA modes relied on it.

Modern GPUs have an IRQ registered on the main processor. Importantly, this is neither a vertical nor a horizontal 'blank interrupt' and it is handled by the device driver for the graphics card.

MSX2 (Yamaha V9938, 1985)

MSX2 computers feature a Yamaha V9938 graphics chip that, like the NES, supports 'vertical blank interrupts' but requires polling for 'horizontal blank interrupts'. It was commonly used to create split screens, mix multiple video modes together on one screen and to increase the number of unique colours on the screen beyond the official spec. Prominent usage examples are the Aleste series and Konami's Space Manbow .

Amiga (Copper chip, 1985)

The Amiga computers include a custom coprocessor called the Copper which is dedicated to servicing raster interrupts. The Copper runs a program of simple instructions directing it to wait for a specific vertical scan line and horizontal beam position, then update the contents of a custom chip hardware register. This is typically used for modifying display parameters, such as mixing display modes, reusing sprites, or changing color registers, but can also be used to trigger a CPU interrupt.

X68000 (VSOP + VINAS chip, 1987)

The X68000, a 16-bit home computer sold in Japan, has a flexible raster interrupt system to multiplex hardware sprites.

Game Boy (PPU chip, 1989)

The Game Boy's PPU has support for four raster interrupts: [5] it can be set to trigger at the beginning of a specified scanline, at the end of scanlines (during horizontal blanking), at the beginning of all scanlines, or at the beginning of vertical blanking. Its drawback is that the same interrupt handler is used for the first three, requiring the use of "dispatching" code if more than one condition is used.

Related Research Articles

<span class="mw-page-title-main">Atari 5200</span> Home video game console

The Atari 5200 SuperSystem or simply Atari 5200 is a home video game console introduced in 1982 by Atari, Inc. as a higher-end complement for the popular Atari Video Computer System. The VCS was renamed to the Atari 2600 at the time of the 5200's launch. Created to compete with Mattel's Intellivision, the 5200 wound up a direct competitor of ColecoVision shortly after its release. While the Coleco system shipped with the first home version of Nintendo's Donkey Kong, the 5200 included the 1978 arcade game Super Breakout which had already appeared on the Atari 8-bit computers and Atari VCS in 1979 and 1981 respectively.

<span class="mw-page-title-main">Amiga Original Chip Set</span> Chipset used in Amiga personal computer

The Original Chip Set (OCS) is a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and the greatly improved Advanced Graphics Architecture (AGA).

<span class="mw-page-title-main">Parallax scrolling</span> Technique in computer graphics

Parallax scrolling is a technique in computer graphics where background images move past the camera more slowly than foreground images, creating an illusion of depth in a 2D scene of distance. The technique grew out of the multiplane camera technique used in traditional animation since the 1930s.

<span class="mw-page-title-main">Atari 8-bit computers</span> Home computer series introduced in 1979

The Atari 8-bit computers, formally launched as the Atari Home Computer System, are a series of 8-bit home computers introduced by Atari, Inc. in 1979 with the Atari 400 and Atari 800. It is the first home computer architecture with coprocessors, enabling more advanced graphics and sound than most of its contemporaries. Video games are key to its software library, and the 1980 first-person space combat simulator Star Raiders is considered the platform's killer app.

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640 × 480 resolution characteristic of the VGA hardware.

A vertical blank interrupt is a hardware feature found in some legacy computer systems that generate a video signal. Cathode-ray tube based video display circuits generate vertical blanking and vertical sync pulses when the display picture has completed and the raster is being returned to the start of the display. With VBI, the vertical blank pulse is also used to generate an interrupt request for the computer's microprocessor.

<span class="mw-page-title-main">MOS Technology VIC-II</span> Video microchip in the Commodore 64 and C128 home computers

The VIC-II, specifically known as the MOS Technology 6567/6566/8562/8564, 6569/8565/8566 (PAL), is the microchip tasked with generating Y/C video signals and DRAM refresh signals in the Commodore 64 and Commodore 128 home computers.

<span class="mw-page-title-main">Color Graphics Adapter</span> IBM PC graphic adapter and display standard

The Color Graphics Adapter (CGA), originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card for the IBM PC and established a de facto computer display standard.

<span class="mw-page-title-main">Television Interface Adaptor</span> Video/audio/input chip of the Atari 2600

The Television Interface Adaptor (TIA) is the custom computer chip, along with a variant of the MOS Technology 6502 constituting the heart of the 1977 Atari Video Computer System game console. The TIA generates the screen display, sound effects, and reads the controllers. At the time the Atari VCS was designed, even small amounts of RAM were expensive. The chip was designed around not having a frame buffer, instead requiring detailed programming to create even a simple display.

<span class="mw-page-title-main">TMS9918</span> Video display controller

The TMS9918 is a video display controller (VDC) manufactured by Texas Instruments, in manuals referenced as "Video Display Processor" (VDP) and introduced in 1979. The TMS9918 and its variants were used in the ColecoVision, CreatiVision, Memotech MTX, MSX, NABU Personal Computer, SG-1000/SC-3000, Spectravideo SV-318, SV-328, Sord M5, Tatung Einstein, TI-99/4, Casio PV-2000, Coleco Adam, Hanimex Pencil II, and Tomy Tutor.

<span class="mw-page-title-main">ANTIC</span> Computer graphics chip

Alphanumeric Television Interface Controller (ANTIC) is an LSI ASIC dedicated to generating 2D computer graphics to be shown on a television screen or computer display. Under the direction of Jay Miner, the chip was designed in 1977–1978 by Joe Decuir, Francois Michel, and Steve Smith for the Atari 8-bit computers first released in 1979. The chip was patented by Atari, Inc. in 1981. ANTIC is also used in the 1982 Atari 5200 video game console, which shares most of the same hardware as the 8-bit computers.

<span class="mw-page-title-main">CTIA and GTIA</span> Custom chips used in Atari 8-bit computers

Color Television Interface Adaptor (CTIA) and its successor Graphic Television Interface Adaptor (GTIA) are custom chips used in the Atari 8-bit computers and Atari 5200 home video game console. In these systems, a CTIA or GTIA chip works together with ANTIC to produce the video display. ANTIC generates the playfield graphics while CTIA/GTIA provides the color for the playfield and adds overlay objects known as player/missile graphics (sprites). Under the direction of Jay Miner, the CTIA/GTIA chips were designed by George McLeod with technical assistance of Steve Smith.

<span class="mw-page-title-main">Motorola 6845</span> Display controller

The Motorola 6845, or MC6845, is a display controller that was widely used in 8-bit computers during the 1980s. Originally intended for designs based on the Motorola 6800 CPU and given a related part number, it was more widely used alongside various other processors, and was most commonly found in machines based on the Zilog Z80 and MOS 6502.

<span class="mw-page-title-main">Raster bar</span> Video game visual effect

The raster bar is an effect used in demos and older video games that displays animated bars of colour, usually horizontal, which additionally might extend into the border, a.k.a. the otherwise unalterable area of the display. Raster bar-style effects were common on the Atari 2600 and Atari 8-bit computers and then later in demos for the Commodore 64, Amiga, Atari ST, and Amstrad CPC.

A display list, also called a command list in Direct3D 12 and a command buffer in Vulkan, is a series of graphics commands so that they may be later run when the list is executed. Systems that make use of display list functionality are called retained mode systems, while systems that do not are as opposed to immediate mode systems. In OpenGL, display lists are useful to redraw the same geometry or apply a set of state changes multiple times. This benefit is also used with Direct3D 12's bundle command lists. In Direct3D 12 and Vulkan, display lists are regularly used for per-frame recording and execution.

Horizontal blanking interval refers to a part of the process of displaying images on a computer monitor or television screen via raster scanning. CRT screens display images by moving beams of electrons very quickly across the screen. Once the beam of the monitor has reached the edge of the screen, it is switched off, and the deflection circuit voltages are returned to the values they had for the other edge of the screen; this would have the effect of retracing the screen in the opposite direction, so the beam is turned off during this time. This part of the line display process is the Horizontal Blank.

<span class="mw-page-title-main">Video display controller</span> Type of integrated circuit

A video display controller (VDC), also called a display engine or display interface, is an integrated circuit which is the main component in a video-signal generator, a device responsible for the production of a TV video signal in a computing or game system. Some VDCs also generate an audio signal, but that is not their main function. VDCs were used in the home computers of the 1980s and also in some early video picture systems.

<span class="mw-page-title-main">Tandy Graphics Adapter</span> Computer display standard for the Tandy 1000 series

Tandy Graphics Adapter is a computer display standard for the Tandy 1000 series of IBM PC compatibles, which has compatibility with the video subsystem of the IBM PCjr but became a standard in its own right.

References

  1. De Re Atari. Atari, Inc. 1982.
  2. Watson, Alan (1982). "An Introduction To Display List Interrupts". COMPUTE!'s Second Book of Atari.
  3. IBM PCjr Technical Reference. International Business Machines Corporation. November 1983. p. 108.
  4. IBM Enhanced Graphics Adapter manual (PDF). p. 72.
  5. "Video Display". GBDev Wiki. Retrieved 20 October 2017.

See also