The myth of the vertical retrace interrupt #IBMPC #Graphics #VintageComputing
The topic is vertical retrace interrupts, specifically on the early PC platform. The first few display standards on PC did not have any kind of display interrupt. For MDA, CGA and clones based on these standards, such as Hercules and Plantronics ColorPlus, the only way to get any indication of the video signal was to poll the status registers. In 1984 this changed, because two things happened in 1984: the IBM PCjr, and the EGA standard.
Both the IBM PCjr and EGA introduced a vertical retrace interrupt (or vsync interrupt), but in good IBM tradition, they were incompatible with each other. On the IBM PCjr I can be short about things: there was only one IBM PCjr, and only one successful clone of its video standard: the Tandy 1000.
So what is this titular myth then? In the documentation of EGA and VGA, the vsync IRQ is clearly documented. But in software it seems to be elusive. No software seems to actually use it.
The can of worms is with EGA, for multiple reasons. Firstly, the EGA standard was cloned by numerous vendors. Secondly, VGA was a superset of EGA, and as such backward-compatible with its vsync IRQ (or at least it should be), and VGA was also cloned and extended by numerous vendors, and lives on in PC display controllers to this day. Lastly, even IBM made a mess of things with VGA.
See the video below and more on the blog post here.
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.