[comp.sys.ibm.pc] VGA palette & memory: HOW??

pthiesse@jarthur.Claremont.EDU (Paul Thiessen) (02/01/89)

  Hello. Can anyone out there tell me how to program the palette on a
Paradise VGA Plus card? It's capable of 262144 colors (15 at a time, of
course), and I'm sick of the 15 colors the IBM uses by default. I'd love to
have, say, 15 shades of red. I have a good knowledge of assembly and DOS/BIOS
programming.
  Also, how do I go about writing directly into the video memory, instead of
having to use the (relatively) slow BIOS putpixel routine? I know where the
memory is, but when I write to it, I can only get black and white.
  Thanks for any help. If you don't want to post any info on the network,
e-mail to me at pthiessen@hmcvax.bitnet or pthiesse@jarthur.claremont.edu
  Thanks again,
       Paul Thiessen

annala@neuro.usc.edu (A J Annala) (02/02/89)

I thought the CGA adaptor was capable of 256 simultaneous colors ... or
is that another IBM PC adaptor?  In any case, can someone fill me in on
the capabilities of the 256 color IBM PC adaptor?  Can it generate 256
grey scales ... 256 independently controlled colors ... or is it simply
confined to whatever existing palette it comes with.

Thanks, AJ
.

toma@tekgvs.LABS.TEK.COM (Tom Almy) (02/02/89)

In article <109@jarthur.Claremont.EDU> pthiesse@jarthur.Claremont.EDU (Paul Thiessen) writes:

>  Hello. Can anyone out there tell me how to program the palette on a
>Paradise VGA Plus card? [...]

>  Also, how do I go about writing directly into the video memory, instead of
>having to use the (relatively) slow BIOS putpixel routine? [...]

There is one book that tells all for the VGA, EGA, CGA, and various Hercules
cards:
	Programmers Guide to PC & PC/2 Video Systems
	Richard Wilton
	Microsoft Press

I don't care for the format of the book (it discusses all cards in parallel),
but I sure like the contents  -- it has saved me more times than you can
imagine.

Tom Almy
toma@tekgvs.labs.tek.com   (new address)
Standard Disclaimers Apply

mfinegan@uceng.UC.EDU (michael k finegan) (02/03/89)

In article <15102@oberon.USC.EDU>, annala@neuro.usc.edu (A J Annala) writes:
> I thought the CGA adaptor was capable of 256 simultaneous colors ... or
		VGA
> Can it generate 256 grey scales ... 256 independently controlled colors ...
  While 256 colors are available in 320 x 200 (columns x rows) mode, the
  IBM VGA uses 6 bit DAC's, so it is impossible to get more than 64 grey
  shades, since grey implies R = G = B, leaving 0 to 2^6 - 1 as possible
  unique LUT locations ...
  An excellent reference (complete w/ source code to program palette's,
  etc., etc.) is : Programmer's Guide to PC & PS/2 VIDEO SYSTEMS by
  Richard Wilton (Microsoft Press). I had to use a current ROM BIOS
  reference (Ray Duncan -- also Microsoft Press) for the VGA palette
  save/load routines, but it was fast enough for what I wanted ...

					Hope this helps,
					Mike Finegan
					mfinegan@uceng.uc.edu

naughton%wind@Sun.COM (Patrick Naughton) (02/03/89)

In article <15102@oberon.USC.EDU> annala@neuro.usc.edu (A J Annala) writes:
>I thought the CGA adaptor was capable of 256 simultaneous colors ... or
>is that another IBM PC adaptor?  In any case, can someone fill me in on
>the capabilities of the 256 color IBM PC adaptor?  Can it generate 256
>grey scales ... 256 independently controlled colors ... or is it simply
>confined to whatever existing palette it comes with.

CGA must have been a typo (or a joke).  The CGA can only display four colors
in a 320x200 pixel mode.  (There are four different sets of four ugly colors
to choose from)

The VGA displays 256 colors from a palette of 262144 colors.  You can control
which of the 256 colors are displayed by setting the palette with the 256
R, G, B triples you want.

The major restriction of this is that IBM wanted to save money on parts so
they used 6 bit DACs rather than 8 bit DACs.  So each channel can only have
64 levels, (1<<6), thus you cannot have 256 grey scales, or 256 blue scales,
only 64.

One good thing is that most VGAs on the market today will drive MultiSync
monitors to 800x600 and 1024x768 pixels, although the IBM standard only specs
640x480 as the highest resolution.

-Patrick

    ______________________________________________________________________
    Patrick J. Naughton				    ARPA: naughton@Sun.COM
    Window Systems Group			    UUCP: ...!sun!naughton
    Sun Microsystems, Inc.			    AT&T: (415) 336 - 1080

ppa@hpldola.HP.COM (Paul P. Austgen) (02/03/89)

Ferraro has just authored a book about EGA and VGA's that's full
of programming examples.  It's a little spendy, around $35, but
if you want to mess around very much with the VGA, you may want
to examine a copy and consider buying it.  I can tell you the
details later , exact title, publisher, etc, if you are
interested.  I think there may be enough information in the new
Norton programmers guide, but I'm not sure.

silver@eniac.seas.upenn.edu (Andy Silverman) (02/03/89)

I think the original author was confusing CGA and MCGA.  MCGA is an enhancement
to the original CGA spec which is used only in the PS/2 models 25 and 30.  The
MCGA includes an extra video mode which allows 320x200x256.


Andy Silverman
Internet: silver@eniac.seas.upenn.edu
CompuServe: 72261,531