CGA Emulation
CGA emulation on a Hercules card could be done almost entirely via hardware, or through software via "brute force" copying of data on a regular interrupt. Hardware emulation was normally something done by programmers of an application, such as a game, as a "quick and dirty" way to add Hercules support. Software emulation was performed by third-party utilities as a way to get graphics programs with only CGA support working on a Hercules.
Hardware emulation was achieved by enabling the second Hercules video page, which would appear at segment B800h just like CGA, and then making it the visible page. The HGC onboard Motorola 6845 would then be reprogrammed to display 80 "columns" of data (640 pixels) instead of the usual 90 (720). Data was then written just as it would on a real CGA (i.e. the video display was updated by writing to segment B800h) with only minor changes due to the different memory interlacing structure. The advantage of this method was no loss of speed during the emulation: Data did not need to be significantly reformatted from the original CGA data while written, only interlaced differently. The disadvantage was that the image appeared vertically "squashed", as CGA data only used 200 lines of the 350 available.
Software emulation would copy from the CGA video memory location to the Hercules memory location. It would reformat the CGA data (320 or 640 x 200 pixels) to the higher resolution (720 x 348) Hercules. Because of the reformatting of data while copying to completely fill the 720x348 graphics space, and the speed penalty introduced via that method, this introduced an interlacing type of display artifact since the copying could not complete before the beginning of the next display cycle.
Read more about this topic: Hercules Graphics Card
Famous quotes containing the word emulation:
“Our children will not survive our habits of thinking, our failures of the spirit, our wreck of the universe into which we bring new life as blithely as we do. Mostly, our children will resemble our own misery and spite and anger, because we give them no choice about it. In the name of motherhood and fatherhood and education and good manners, we threaten and suffocate and bind and ensnare and bribe and trick children into wholesale emulation of our ways.”
—June Jordan (b. 1939)