home *** CD-ROM | disk | FTP | other *** search
/ Graphics Programming Black Book (Special Edition) / BlackBook.bin / disk1 / source / chapter42 / l42-3.c < prev    next >
C/C++ Source or Header  |  1997-06-18  |  764b  |  31 lines

  1. /* VGA mode 13h pixel-drawing and mode set functions.
  2.  * Tested with Borland C++ 4.02 in small model by Jim Mischel 12/16/94.
  3.  */
  4. #include <dos.h>
  5.  
  6. /* Screen dimension globals, used in main program to scale. */
  7. int ScreenWidthInPixels = 320;
  8. int ScreenHeightInPixels = 200;
  9.  
  10. /* Mode 13h draw pixel function. */
  11. void DrawPixel(int X, int Y, int Color)
  12. {
  13. #define SCREEN_SEGMENT  0xA000
  14.    unsigned char far *ScreenPtr;
  15.  
  16.    FP_SEG(ScreenPtr) = SCREEN_SEGMENT;
  17.    FP_OFF(ScreenPtr) = (unsigned int) Y * ScreenWidthInPixels + X;
  18.    *ScreenPtr = Color;
  19. }
  20.  
  21. /* Mode 13h mode-set function. */
  22. void SetMode()
  23. {
  24.    union REGS regset;
  25.  
  26.    /* Set to 320x200 256-color graphics mode */
  27.    regset.x.ax = 0x0013;
  28.    int86(0x10, ®set, ®set);
  29. }
  30.  
  31.