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 family (ANTIC chip, 1979)

The ANTIC chip used by the Atari 8-bit family 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 features 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 only 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 biggest 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 family and Atari VCS in 1979 and 1981 respectively.

<span class="mw-page-title-main">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 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 family</span> Home computer series introduced in 1979

The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 with the Atari 400 and Atari 800. The series was successively upgraded to the Atari 1200XL, Atari 600XL, Atari 800XL, Atari 65XE, Atari 130XE, Atari 800XE, and Atari XEGS, the last discontinued in 1992. These all differ primarily in packaging, each based on the MOS Technology 6502 CPU at 1.79 MHz and the same custom coprocessor chips. As the first home computer architecture with coprocessors, it has graphics and sound more advanced than most contemporary machines. Video games were a major appeal, and first-person space combat simulator Star Raiders is considered the platform's killer app. The plug-and-play peripherals use the Atari SIO serial bus, with one developer eventually also co-patenting USB.

<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">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">ANTIC</span>

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 family of home computers first released in 1979 and 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>

Color Television Interface Adaptor (CTIA) and its successor Graphic Television Interface Adaptor (GTIA) are custom chips used in the Atari 8-bit family of computers and in the 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>

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 family and then later in demos for the Commodore 64, Amiga, Atari ST, and Amstrad CPC.

A display list is a series of graphics commands that define an output image. The image is created (rendered) by executing the commands to combine various primitives. 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.

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 or VDC 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.

A multiple-sync (multisync) monitor, also known as a multiscan or multimode monitor, is a raster-scan analog video monitor that can properly synchronise with multiple horizontal and vertical scan rates. In contrast, fixed frequency monitors can only synchronise with a specific set of scan rates. They are generally used for computer displays, but sometimes for television, and the terminology is mostly applied to CRT displays although the concept applies to other technologies.

Sprite multiplexing is a computer graphics technique where additional sprites can be drawn on the screen, beyond the nominal maximum. It is largely historical, applicable principally to older hardware, where limited resources meant only a relatively small number of sprites were supported. On the other hand it is also true that without multiplexing, the sprite circuitry would be idle much of the time, and limited resources were wasted.

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