Vertical blank interrupt


A vertical blank interrupt is a hardware feature found in some computer systems that generate a video display. Typical 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 display or graphics software to modify data in the video display memory while it is not being read. This was particularly useful in simple home computers and video game consoles that relied upon a central microprocessor to generate text or graphic displays.
As the VBI will be generated at the start of every displayed frame, it is also a useful timebase in systems lacking an interrupt from a programmable or fixed interval timer. Regular software functions like scanning a keyboard, reading a joystick or maintaining a time or date measurement can be carried out. This 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 be set up to draw a new frame during the period where there is no drawing taking place.
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.