🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #3809

Re: Intermediate Resolution modes for SVGA cards

#3809
From: Lamont Downs
Date: Fri, 16 Oct 1992 04:15
48 lines
2998 bytes
In article <1992Oct15.180633.17448@ens.fr> rideau@dmi.ens.fr (Francois-Rene Rideau) writes:
>From: rideau@dmi.ens.fr (Francois-Rene Rideau)
>Subject: Intermediate Resolution modes for SVGA cards
>Date: 15 Oct 92 18:06:33 GMT
>
> The main problem with the graphics modes in the PC is that
>either le resolution is too low (320*200) or it is too slow
>(640*480) and demand too much memory.
> Is it possible to use some intermediate mode, like 400*256,
>400*320, 512*320, 512*384, or something like that ?
>
> Another question:
> How come the VGA and following cards used this stupid
>bit planes system ? When you want to modify a 256 color
>pixel, you must access 8 times the same adress, with
>IO manipulations between ! It's very slow, and it's
>pointless.

I'm not sure I follow what you mean. In a standard VGA, the 256-color
modes are simple 1-pixel-per-byte bitmaps, with the pixel at 0,0 stored
in byte 1, the pixel at the start of the next row (in 320x200 mode) at byte 
320, etc. It's the 16-color or less modes that use the bit planes. 'Course
when you get into non-standard super vgas things are different.

As I understand it, the basic idea behind all the bitplane business was
designed for speed. If you do everything manually in these modes (the 16-
color or less modes) it can get cumbersome; but there is quite a bit of
specialized hardware built into the VGA which does a lot of the bitplane
manipulation for you automatically after you set the approprite registers
and masks. See Ferraro, Wilton, et. al for the technical details.

The Tseng4000 based SVGA cards are still set up at one byte per 256-color
pixel for 640x480x256, etc., though you have to increment a bank register 
every 65,536 pixels. I think the Paradise cards use a five-nibble addressing 
scheme, with the top nibble loaded into a register instead of directly 
addressed, or something like that. In each case, the idea is still to keep 
the addressing space visible to the CPU limited to a 64K window since that's 
about all you can count on being free on a typical PC (the rest of the space 
above A0000h being taken up with ROMs, TSRs, EMS page frames and who knows 
what else).

For intermediate modes, check out the Dr. Dobbs Journal and Programmer's
Journal articles referred to in an earlier posting (such as 320x400x256,
320x240x256, etc.) by Michael Abrash. These are undocumented VGA modes
but work on most VGA cards as long as they follow the VGA standard. 

Lamont Downs
downs@helios.nevada.edu
Technical Details
Message-ID: <downs.17.719208956@helios.nevada.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!nevada.edu!cat.lv-lib.nevada.edu!downs
References: <1992Oct15.180633.17448@ens.fr>

Show Full Headers
Complete Article Headers
Newsgroups: comp.os.msdos.programmer
Path: arc1-ca.pugleaf.net!sparky!uunet!nevada.edu!cat.lv-lib.nevada.edu!downs
From: downs@helios.nevada.edu (Lamont Downs)
Subject: Re: Intermediate Resolution modes for SVGA cards
Message-ID: <downs.17.719208956@helios.nevada.edu>
Lines: 48
Sender: news@nevada.edu (USENET News System)
Nntp-Posting-Host: cat.lv-lib.nevada.edu
Organization: UNLV
References: <1992Oct15.180633.17448@ens.fr>
Date: Fri, 16 Oct 1992 04:15:56 GMT