🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.ibm.pc.hardware
Article #19891

Re: PC graphics programming

#19891
From: David Charlap
Date: Mon, 11 Jan 1993 21:48
51 lines
2986 bytes
In article <VAITKUS.93Jan7122736@ceres.lexmark.com> vaitkus@lexmark.com (Keith Vaitkus) writes:
>I need info on:
>
>Register/assembly level controls for graphics cards.
>How to write device drivers for cards.
>The practical differences btw one resolution and another. 
>The practical differences btw one card or chip-set and another.
>
>I have no interest in CGA and EGA. So I want to focus on VGA and higher
>resolutions, ie XGA, SVGA, etc.

You should learn about CGA and EGA.  They both do things that all
other modes do, and in a simpler way.  For instance, it's easier to
learn 4-plane pixel maps on an EGA than on an super VGA, where you
also have to know about memory banks and other overflow registers,
etc.

I assume you already know assembly-language in general.  Otherwise,
you're not going to be able to write much in the way of device
drivers.  C can only get you so far on a device level.

As for differences between modes and chipsets, there are tons.  For
CGA/EGA/VGA modes, everything is standard, but for sVGA, everything is
manufacturer dependant.  It becomes critical to know the manufacturer
of the board, and you'll need separate procedures for each card.

For 8514, XGA, and S3 boards, there's a world of difference.  These
three are co-processor based.  You'll be accessing another
microprocessor when you use them, instead of setting values into
memory somewhere, like other boards do.

>Thanks in advance, and please note that I am looking for _PC_ specific
>information and not general graphics algorithms.

There are tons of books on the subject.  For VGA, it's rather simple,
and most people will tell you to use the BIOS for everything but
actually drawing pixels.  And that isn't very hard.  For sVGA, its
also not that hard.

Note, that if you're running your PC in protected mode (like under
OS/2 or Unix), you can't access the BIOS, leaving you to directly mess
with I/O ports.  There is plenty of documentation on them for
IBM-standard modes, but sVGA has much less.  Some vendors (like ATI)
try to keep all their register-level documentation under lock-and-key,
making it difficult (if not impossible) to do anything with them
without the BIOS.
-- 
  |)  David Charlap          | .signature confiscated by FBI due to
 /|_  dic5340@hertz.njit.edu | an ongoing investigation into the
((|,)                        | source of these .signature virusses
 ~|~
Technical Details
Message-ID: <1993Jan11.214830.378@njitgw.njit.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!howland.reston.ans.net!paladin.american.edu!gatech!concert!rutgers!njitgw.njit.edu!hertz.njit.edu!dic5340
References: <VAITKUS.93Jan7122736@ceres.lexmark.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!howland.reston.ans.net!paladin.american.edu!gatech!concert!rutgers!njitgw.njit.edu!hertz.njit.edu!dic5340
From: dic5340@hertz.njit.edu (David Charlap)
Newsgroups: comp.sys.ibm.pc.hardware
Subject: Re: PC graphics programming
Message-ID: <1993Jan11.214830.378@njitgw.njit.edu>
Date: 11 Jan 93 21:48:30 GMT
References: <VAITKUS.93Jan7122736@ceres.lexmark.com>
Sender: news@njit.edu
Organization: New Jersey Institute of Technology, Newark, N.J.
Lines: 51
Nntp-Posting-Host: hertz.njit.edu