Article View: comp.os.msdos.programmer
Article #3809Re: Intermediate Resolution modes for SVGA cards
From: Lamont Downs
Date: Fri, 16 Oct 1992 04:15
Date: Fri, 16 Oct 1992 04:15
48 lines
2998 bytes
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!downsReferences:
<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