Screen update speed of 8088 PC

Jim Leonard trixter at
Wed Mar 15 17:12:46 CST 2006

Richard wrote:
>> Working on my Athlon, I do everything in Windows and rely on utilities 
>> to get things done.  Working on my 8088, I write my own utils (sometimes 
>> in assembler).  It's just a different mindset.  And while there are 
>> things I would never attempt on the 8088 (such as MPEG-2 compression), 
>> it is just as fast for most common-denominator tasks like writing text, 
>> programming, etc.
> Assuming a full 80x25 screen write, what's the maximum frames/sec that
> an 8088 could do on a monochrome or CGA interface?
> Based on "8088 corruption", I'm guessing that CGA can do at least 30
> fps.

If you don't care about synchronizing your updates with the display 
cycle, you can do more.  Assuming a 4.77MHz 8088 IBM PC, REP MOVSW from 
regular RAM to display RAM (which is slower) is about 160KB/s.  For 
80x25 (4000bytes) that's roughly 40fps.  REP STOSW is much faster (about 
240KB/s) but that's not useful/practical in a textmode scenario so I 
won't go with those numbers.

On monochrome, you can do this.  On true CGA, you can't, because the ram 
isn't truly dual-ported.  As a result, when you read or write display 
memory in an 80-column text mode, the adapter draws garbage wherever the 
beam is instead of the real ram contents for the duration of the 
user-initiated access.  This is more commonly knows as "CGA snow".  What 
especially blows is that it will still draw "snow" even if you're only 
reading -- even if your access is to an off-screen page!

To get around this, you write to CGA RAM while the beam is *not* 
drawing, but retracing horizontally or vertically back to the next 
scanline or display cycle.  You can transfer about 250 words during a 
vertical retrace and exactly one word during horizontal retrace, so 
that's 450 words per frame, so a snow-less full-screen update would take 
3 frames (20fps).

The obvious goal is to not be in the position of having to update the 
*entire* screen.

40-column modes don't have a "snow" problem (not sure why), which is why 
I chose 40x25 for my video program (that, and the lower data requirements).
Jim Leonard (trixter at  
Help our electronic games project: 
Or check out some trippy MindCandy at
A child borne of the home computer wars:

More information about the cctalk mailing list