Raster interrupt
   HOME

TheInfoList



OR:

A raster interrupt (also called a horizontal blank interrupt) is an
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
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 line A scan line (also scanline) is one line, or row, in a raster scanning pattern, such as a line of video on a cathode-ray tube (CRT) display of a television set or computer monitor. On CRT screens the horizontal scan lines are visually discernib ...
s 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. 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 In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as Memory_segmentation, segmentation, virtual mem ...
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 The Bally Astrocade (also known as Bally Arcade and initially as Bally ABA-1000) is a second-generation home video game console A home video game console is a video game console that is designed to be connected to a display device, such as ...
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 The Atari 8-bit computers, formally launched as the Atari Home Computer System, are a series of home computers introduced by Atari, Inc., in 1979 with the Atari 400 and Atari 800. The architecture is designed around the 8-bit MOS Technology 650 ...
includes display list interrupts (DLIs), which are triggered as the display is being drawn. 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 ColecoVision is a second-generation home video-game console developed by Coleco and launched in North America in August 1982. It was released a year later in Europe by CBS Electronics as the CBS ColecoVision. The console offered a closer expe ...
, an 8-bit game console released in 1982, as well as the
MSX MSX is a standardized home computer architecture, announced by ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, the director at ASCII Corpo ...
, a standardized home computer from 1983, utilized the Texas Instruments
TMS9918 IMAGE:TMS9918A 01.jpg, VDP TMS9918A IMAGE:TMS9918A 02.jpg, VDP TMS9918A 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 ...
. 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 The Nintendo Entertainment System (NES) is an 8-bit home video game console developed and marketed by Nintendo. It was first released in Japan on 15 July 1983 as the and was later released as the redesigned NES in several test markets in the ...
'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 is a media franchise, video game series created by the Japanese game designers Shigeru Miyamoto and Takashi Tezuka. It is primarily developed and published by Nintendo; some portable installments and re-releases have been outsourced to Flags ...
'' 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. 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. 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 In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
for the graphics card.


MSX2 (Yamaha V9938, 1985)

MSX2 computers feature a
Yamaha V9938 The Yamaha V9938 is a video display processor (VDP) used on the MSX2 home computer, as well as on the Geneve 9640 enhanced TI-99/4A clone and the Tatung Einstein 256. It was also used in a few MSX1 computers, in a configuration with 16kB VRA ...
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 Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
computers include a custom
coprocessor A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may be floating-point arithmetic, graphics, signal processing, string processing, cryptography or ...
called the
Copper Copper is a chemical element; it has symbol Cu (from Latin ) and atomic number 29. It is a soft, malleable, and ductile metal with very high thermal and electrical conductivity. A freshly exposed surface of pure copper has a pinkish-orang ...
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 The is a home computer created by Sharp Corporation. It was first released in 1987 and sold only in Japan. The initial model has a 10 Megahertz, MHz Motorola 68000 Central processing unit, CPU, 1 Megabytes, MB of Random Access Memory, ...
, 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 The is a handheld game console developed by Nintendo, launched in the Japanese home market on April 21, 1989, followed by North America later that year and other territories from 1990 onwards. Following the success of the Game & Watch single-ga ...
's PPU has support for four raster interrupts: it can be set to trigger at the beginning of a specified scanline, at the end of scanlines (during
horizontal blanking 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 be ...
), at the beginning of all scanlines, or at the beginning of vertical blanking. Its drawback is that the same
interrupt handler In computer systems programming, an interrupt handler, also known as an interrupt service routine (ISR), is a special block of code associated with a specific interrupt condition. Interrupt handlers are initiated by hardware interrupts, software ...
is used for the first three, requiring the use of "dispatching" code if more than one condition is used.


References

{{reflist


See also

* List of home computers by video hardware * Racing the beam * Vertical blank interrupt Interrupts