Screen update speed of 8088 PC
Jim Leonard
trixter at oldskool.org
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 oldskool.org) http://www.oldskool.org/
Help our electronic games project: http://www.mobygames.com/
Or check out some trippy MindCandy at http://www.mindcandydvd.com/
A child borne of the home computer wars: http://trixter.wordpress.com/
More information about the cctalk
mailing list