home *** CD-ROM | disk | FTP | other *** search
/ Graphics Programming Black Book (Special Edition) / BlackBook.bin / disk1 / source / chaptere / le-2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-06-18  |  1.0 KB  |  38 lines

  1. /* *** Listing 20.2 ***
  2.  *
  3.  * Draws ellipses of varying eccentricities in the VGA's hi-res mode,
  4.  * mode 12h.
  5.  * For VGA only.
  6.  * Compile and link with Borland C++ 4.02 and TASM 4.0 as follows:
  7.  *   bcc -ms l20-1.c l20-2.c  or
  8.  *   bcc -ms l20-3.c l20-2.c l20-4.asm
  9.  * Checked by Jim Mischel 11/30/94.
  10.  */
  11.  
  12. #include <dos.h>
  13. #include <stdio.h>
  14.  
  15. main() {
  16.    int XRadius, YRadius, Temp, Color, i;
  17.    union REGS Regs;
  18.  
  19.    /* Select VGA's hi-res 640x480 graphics mode, mode 12h */
  20.    Regs.x.ax = 0x0012;
  21.    int86(0x10, &Regs, &Regs);
  22.  
  23.    /* Repeat 10 times */
  24.    for ( i = 0; i < 10; i++ ) {
  25.       /* Draw nested ellipses */
  26.       for ( XRadius = 319, YRadius = 1, Color = 7; YRadius < 240;
  27.             XRadius -= 1, YRadius += 2 ) {
  28.          DrawEllipse(640/2, 480/2, XRadius, YRadius, Color);
  29.          Color = (Color + 1) & 0x0F;   /* cycle through 16 colors */
  30.       }
  31.    }
  32.  
  33.    /* Wait for a key, restore text mode, and done */
  34.    scanf("%c", &Temp);
  35.    Regs.x.ax = 0x0003;
  36.    int86(0x10, &Regs, &Regs);
  37. }
  38.