home *** CD-ROM | disk | FTP | other *** search
- #include "eg_grafx.h"
-
- main(){
-
- int xsize,ysize,mode,dev,color,color_reg;
- int x,y,i,xnum,ynum,col,row,r,g,b;
- int set,max_sets;
- char str[12];
- struct egstatus stat;
- unsigned char banks;
-
- retry:
- initgraf(3,0,0);
- printf("Select the video mode to see the colors for.\n\n");
- printf("0 - IBM EGA 640x350 16 colors\n");
- printf("1 - IBM VGA 640x480 16 colors\n");
- printf("2 - IBM MCGA 320x200 256 colors\n");
- printf("3 - Paradise 640x400 256 colors\n");
- printf("4 - Paradise 640x480 256 colors\n");
- printf("5 - Paradise 800x600 16 colors\n");
- printf("6 - Video Seven 640x400 256 colors\n");
- printf("7 - Video Seven 640x480 256 colors\n");
- printf("8 - Video Seven 800x600 16 colors\n");
- printf("9 - Video Seven 1024x768 16 colors\n");
- printf("\nEnter selection\n\n");
- scanf("%d",&dev);
-
- i = check_vid7(&banks);
- if (!i & (dev > 6 && dev < 10)){
- printf("You do not appear to have a Video Seven Extended VGA !!!\n");
- exit(1);
- }
- i = device_query();
- if ((i & 16) & (dev == 1 || dev == 2)){ /* VGA adapter */
- printf("You do not appear to have a VGA Card !!!\n");
- exit(1);
- }
- if ((i & 4) & (!dev)){ /* EGA adapter */
- printf("You do not appear to have a EGA Card !!!\n");
- exit(1);
- }
- fontinit();
- max_sets = 4;
- switch(dev){
- case 0 : setega(); mode = 16; font_load(0,"ibmrom"); break;
- case 1 : setvga(); mode = 18; font_load(0,"vga8x16"); break;
- case 2 : setmcga(); mode = 19; font_load(0,"ibmrom"); break;
- case 3 : set_256c(); mode = 94; font_load(0,"ega8x14"); break;
- case 4 : set_256c(); mode = 95; font_load(0,"ega8x14"); break;
- case 5 : set_pvga(); mode = 88; font_load(0,"vga8x16"); break;
- case 6 : set_256c(); mode = 102; font_load(0,"ega8x14"); break;
- case 7 : set_256c(); mode = 103; font_load(0,"ega8x14"); break;
- case 8 : set_vid7(); mode = 98; font_load(0,"vga8x16"); break;
- case 9 : set_vid7(); mode = 101; font_load(0,"vga8x16"); break;
- }
-
- initgraf(mode,0,0);
- eg_status(&stat);
-
- if (stat.avail_colors == 16)
- xnum = ynum = 4;
- else
- xnum = ynum = 16;
-
- if (mode == 19){
- xnum = 13;
- ynum = 20;
- }
-
- xsize = stat.v_x1 / xnum;
- ysize = stat.v_y1 / ynum;
-
-
- fontcspt(0,"Hit Return to see the default colors",stat.x_res/2,
- stat.y_res/2,0,stat.avail_colors-1,0);
- getch();
- for (row = 0, y = 0, color = 0; row < ynum; y += ysize, row++){
- for (col = 0,x = 0; col < xnum; x += xsize, color++, col++){
- if (color >= stat.avail_colors)
- break;
- eg_rectangle(x,y,x+xsize,y+ysize,color,1,-1);
- egitoa(str,color);
- if (color == 0)
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
- else
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
- }
- }
- getch();
-
- color = 0;
- if (stat.avail_colors != 256){
- clearscr(0);
- fontcspt(0,"Hit Return to see all colors",stat.x_res/2,stat.y_res/2,0,
- stat.avail_colors-1,0);
- getch();
- for (set = 0; set < max_sets; set++){
- setegapr(0,0);
- clearscr(0);
- for (i = 0; i < 16; i++,color++)
- setegapr(i,color);
- for (row = 0, y = 0, color_reg = 0; row < ynum; y += ysize, row++){
- for (col = 0,x = 0; col < xnum; x += xsize, color_reg++, col++){
- if (color_reg >= stat.avail_colors)
- break;
- eg_rectangle(x,y,x+xsize,y+ysize,color_reg,1,-1);
- egitoa(str,color_reg+(set*stat.avail_colors));
- if (color_reg == 0)
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
- else
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
- }
- }
- getch();
- }
- }
- else{
- clearscr(0);
- fontcspt(0,"Selecting New colors",stat.x_res/2,stat.y_res/2,0,
- stat.avail_colors-1,0);
- i = 0;
- for (r = 0,i = 0; r < 63; r++,i++)
- setmcgap(i,r,0,0);
- for (g = 0; g < 63; g++,i++)
- setmcgap(i,0,g,0);
- for (b = 0; b < 63; b++,i++)
- setmcgap(i,0,0,b);
- for (b = 0; b < 63; b++,i++)
- setmcgap(i,b,b,b);
- setmcgap(253,0,0,0);
- setmcgap(254,0,0,0);
- setmcgap(255,0,0,0);
- for (row = 0, y = 0, color = 0; row < ynum; y += ysize, row++){
- for (col = 0,x = 0; col < xnum; x += xsize, color++, col++){
- if (color >= stat.avail_colors)
- break;
- eg_rectangle(x,y,x+xsize,y+ysize,color,1,-1);
- egitoa(str,color);
- if (color == 0)
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,1,0);
- else
- fontcspt(0,str,x+(xsize/2),y+(ysize/2)+3,0,0,0);
- }
- }
- getch();
- }
- initgraf(3,0,0);
- }
-