[Back to GRAPHICS SWAG index]  [Back to Main SWAG index]  [Original]

> How do I set a pixel in that mode (800x600x256) ?

If the computer has a VESA driver installed, you can do it the same as you
would for 320x200 (13h).  You would first change the video mode to the
correct one and then plot the point.  The trouble is that every video card
has different mode numbers for the different modes.

     Resolution       Manuf.      Mode #    Chip

     320x200          All         13h       All

     640x480          ATI         62h       All
     640x480          Chips&Tech  79h       452,453
     640x480          Paradise    5Fh       All
     640x480          Trident     5Dh       All
     640x480          Tseng       2Eh       All
     640x480          Video7      67h       All
     640x480          Genoa       5Ch       All

     800x600          ATI         63h       All
     800x600          Chips&Tech  7Bh       453
     800x600          Tseng       30h       All
     800x600          Video7      69h       All

     1024x768         Trident     62h       8900
     1024x768         Tseng       38h       ET4000

   Ploting a Pixel

     To plot a pixel you would use the following Pascal Procedure:

Procedure Plot(x,y:integer; color:byte); assembler;
  mov bh,0
  mov cx,x { sets x coordinate }
  mov dx,y { sets y coordinate }
  mov al,color { sets color (0-255) }
  mov ah,0Ch { tells video to plot a point }
  int 10h

The x coordinate is moved into cx, the y coordinate is moved into dx and
the color is moved into al.  You must make sure that color is a BYTE
variable.  It can go from 0-255.  When you pass the color, it either must
be from a byte variable or it must be 'variable mod 256' (where
'variable' is some integer type variable).

This example uses inline assembler.  To do anything significant with the SVGA
you either have to use assembler or find a good BGI file or unit that will do
it for you.

[Back to GRAPHICS SWAG index]  [Back to Main SWAG index]  [Original]