home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 11 / 11.iso / m / m242 / 3.ddi / DEMOS1.ZIP / ALLCOLOR.C next >
Encoding:
C/C++ Source or Header  |  1989-12-11  |  4.4 KB  |  150 lines

  1. #include "eg_grafx.h"
  2.  
  3. main(){
  4.  
  5.     int xsize,ysize,mode,dev,color,color_reg;
  6.     int x,y,i,xnum,ynum,col,row,r,g,b;
  7.     int set,max_sets;
  8.     char str[12];
  9.     struct egstatus stat;
  10.     unsigned char banks;
  11.  
  12. retry:
  13.     initgraf(3,0,0);
  14.     printf("Select the video mode to see the colors for.\n\n");
  15.     printf("0 - IBM EGA      640x350  16 colors\n");
  16.     printf("1 - IBM VGA      640x480  16 colors\n");
  17.     printf("2 - IBM MCGA     320x200 256 colors\n");
  18.     printf("3 - Paradise     640x400 256 colors\n");
  19.     printf("4 - Paradise     640x480 256 colors\n");
  20.     printf("5 - Paradise     800x600  16 colors\n");
  21.     printf("6 - Video Seven  640x400 256 colors\n");
  22.     printf("7 - Video Seven  640x480 256 colors\n");
  23.     printf("8 - Video Seven  800x600  16 colors\n");
  24.     printf("9 - Video Seven 1024x768  16 colors\n");
  25.     printf("\nEnter selection\n\n");
  26.     scanf("%d",&dev);
  27.  
  28.     i = check_vid7(&banks);
  29.     if (!i & (dev > 6 && dev < 10)){
  30.         printf("You do not appear to have a Video Seven Extended VGA !!!\n");
  31.         exit(1);
  32.     }
  33.     i = device_query();
  34.     if ((i & 16) & (dev == 1 || dev == 2)){         /* VGA adapter */
  35.         printf("You do not appear to have a VGA Card !!!\n");
  36.         exit(1);
  37.     }
  38.     if ((i & 4) & (!dev)){         /* EGA adapter */
  39.         printf("You do not appear to have a EGA Card !!!\n");
  40.         exit(1);
  41.     }
  42.     fontinit();
  43.     max_sets = 4;
  44.     switch(dev){
  45.         case 0 :    setega();   mode = 16;  font_load(0,"ibmrom");  break;
  46.         case 1 :    setvga();   mode = 18;  font_load(0,"vga8x16"); break;
  47.         case 2 :    setmcga();  mode = 19;  font_load(0,"ibmrom");  break;
  48.         case 3 :    set_256c(); mode = 94;  font_load(0,"ega8x14"); break;
  49.         case 4 :    set_256c(); mode = 95;  font_load(0,"ega8x14"); break;
  50.         case 5 :    set_pvga(); mode = 88;  font_load(0,"vga8x16"); break;
  51.         case 6 :    set_256c(); mode = 102; font_load(0,"ega8x14"); break;
  52.         case 7 :    set_256c(); mode = 103; font_load(0,"ega8x14"); break;
  53.         case 8 :    set_vid7(); mode = 98;  font_load(0,"vga8x16"); break;
  54.         case 9 :    set_vid7(); mode = 101; font_load(0,"vga8x16"); break;
  55.     }
  56.  
  57.     initgraf(mode,0,0);
  58.     eg_status(&stat);
  59.  
  60.     if (stat.avail_colors == 16)
  61.         xnum = ynum = 4;
  62.     else
  63.         xnum = ynum = 16;
  64.     
  65.     if (mode == 19){
  66.         xnum = 13;
  67.         ynum = 20;
  68.     }
  69.  
  70.     xsize = stat.v_x1 / xnum;
  71.     ysize = stat.v_y1 / ynum;
  72.  
  73.     
  74.     fontcspt(0,"Hit Return to see the default colors",stat.x_res/2,
  75.                 stat.y_res/2,0,stat.avail_colors-1,0);
  76.     getch();    
  77.     for (row = 0, y = 0, color = 0; row < ynum; y += ysize, row++){
  78.         for (col = 0,x = 0; col < xnum; x += xsize, color++, col++){
  79.                 if (color >= stat.avail_colors)
  80.                     break;
  81.                 eg_rectangle(x,y,x+xsize,y+ysize,color,1,-1);
  82.                 egitoa(str,color);
  83.                 if (color == 0)
  84.                     fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
  85.                 else
  86.                     fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
  87.         }
  88.     }
  89.     getch();    
  90.  
  91.     color = 0;
  92.     if (stat.avail_colors != 256){
  93.        clearscr(0);    
  94.         fontcspt(0,"Hit Return to see all colors",stat.x_res/2,stat.y_res/2,0,
  95.                     stat.avail_colors-1,0);
  96.         getch();    
  97.         for (set = 0; set < max_sets; set++){
  98.               setegapr(0,0);
  99.               clearscr(0);    
  100.             for (i = 0; i < 16; i++,color++)
  101.                     setegapr(i,color);
  102.             for (row = 0, y = 0, color_reg = 0; row < ynum; y += ysize, row++){
  103.                 for (col = 0,x = 0; col < xnum; x += xsize, color_reg++, col++){
  104.                         if (color_reg >= stat.avail_colors)
  105.                             break;
  106.                         eg_rectangle(x,y,x+xsize,y+ysize,color_reg,1,-1);
  107.                         egitoa(str,color_reg+(set*stat.avail_colors));
  108.                         if (color_reg == 0)
  109.                             fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
  110.                         else
  111.                             fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
  112.                 }
  113.             }        
  114.         getch();
  115.         }    
  116.     }
  117.     else{
  118.         clearscr(0);    
  119.         fontcspt(0,"Selecting New colors",stat.x_res/2,stat.y_res/2,0,
  120.                     stat.avail_colors-1,0);
  121.         i = 0;
  122.         for (r = 0,i = 0; r < 63; r++,i++)
  123.               setmcgap(i,r,0,0);
  124.         for (g = 0; g < 63; g++,i++)
  125.               setmcgap(i,0,g,0);
  126.         for (b = 0; b < 63; b++,i++)
  127.               setmcgap(i,0,0,b);
  128.         for (b = 0; b < 63; b++,i++)
  129.               setmcgap(i,b,b,b);
  130.         setmcgap(253,0,0,0);    
  131.         setmcgap(254,0,0,0);    
  132.         setmcgap(255,0,0,0);    
  133.         for (row = 0, y = 0, color = 0; row < ynum; y += ysize, row++){
  134.             for (col = 0,x = 0; col < xnum; x += xsize, color++, col++){
  135.                     if (color >= stat.avail_colors)
  136.                         break;
  137.                     eg_rectangle(x,y,x+xsize,y+ysize,color,1,-1);
  138.                     egitoa(str,color);
  139.                     if (color == 0)
  140.                         fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
  141.                     else
  142.                         fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
  143.             }
  144.         }
  145.         getch();
  146.     }
  147.     initgraf(3,0,0);
  148. }
  149.  
  150.