Jump to content

Vertical blank interrupt

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 2a02:2454:8d55:500:78a4:cd9a:f17a:716f (talk) at 07:36, 10 September 2022 (Cleaned up the midsection talking about legacy uses of the VBI). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A vertical blank interrupt (or VBI) is a hardware feature found in some computer systems that generate a video signal. Legacy 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.

The interrupt service routine can then run specific software to modify data in the video display memory while it is not being read to avoid screen tearing effects. This was particularly useful in simple home computers and video game consoles that relied upon a central microprocessor to generate text or graphic displays. More advanced home computers featuring hardware sprites often supported the more flexible horizontal blank interrupts instead in order to multiplex them.

As the VBI will be generated at the start of every displayed frame (50 Hz for PAL, 60 Hz for NTSC), it is a useful timebase in systems lacking other timing sources. VBIs are used in some home computers to perform regular functions like scanning the keyboard and joystick ports. It can also be used to implement a basic form of multitasking.

The VBI is particularly useful if the display hardware includes some sort of page flipping support, in which case the hardware can draw at any time the new frame into a backbuffer that is made visible only as part of the VBI.

A VBI was implemented on the Atari 8-bit family, whose ANTIC display chip included a register pointing to the start of the display memory. The main program could draw a complete new frame into a back buffer and the VBI service routine would change the ANTIC register.

See also