/* Programme pour illustrer les remplissages de rectangles par motifs en Mode X (320x240, en 256 couleurs) en remplissant l'écran de rectangles adjacents de 80x60 pixels dans divers motifs. Testé avec Borland C++ 4.02 en modèle small par Jim Mischel 12/16/94. */ #include #include void Set320x240Mode(void); void FillPatternX(int, int, int, int, unsigned int, char*); /* 16 motifs de 4x4 */ static char Patt0[]={10,0,10,0,0,10,0,10,10,0,10,0,0,10,0,10}; static char Patt1[]={9,0,0,0,0,9,0,0,0,0,9,0,0,0,0,9}; static char Patt2[]={5,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0}; static char Patt3[]={14,0,0,14,0,14,14,0,0,14,14,0,14,0,0,14}; static char Patt4[]={15,15,15,1,15,15,1,1,15,1,1,1,1,1,1,1}; static char Patt5[]={12,12,12,12,6,6,6,12,6,6,6,12,6,6,6,12}; static char Patt6[]={80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,15}; static char Patt7[]={78,78,78,78,80,80,80,80,82,82,82,82,84,84,84,84}; static char Patt8[]={78,80,82,84,80,82,84,78,82,84,78,80,84,78,80,82}; static char Patt9[]={78,80,82,84,78,80,82,84,78,80,82,84,78,80,82,84}; static char Patt10[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; static char Patt11[]={0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3}; static char Patt12[]={14,14,9,9,14,9,9,14,9,9,14,14,9,14,14,9}; static char Patt13[]={15,8,8,8,15,15,15,8,15,15,15,8,15,8,8,8}; static char Patt14[]={3,3,3,3,3,7,7,3,3,7,7,3,3,3,3,3}; static char Patt15[]={0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,89}; /* Table de pointeurs sur les 16 motifs 4x4 avec lesquels afficher */ static char* PattTable[] = {Patt0,Patt1,Patt2,Patt3,Patt4,Patt5,Patt6, Patt7,Patt8,Patt9,Patt10,Patt11,Patt12,Patt13,Patt14,Patt15}; void main() { int i,j; union REGS regset; Set320x240Mode(); for (j = 0; j < 4; j++) { for (i = 0; i < 4; i++) { FillPatternX(i*80,j*60,i*80+80,j*60+60,0,PattTable[j*4+i]); } } getch(); regset.x.ax = 0x0003; /* revient en mode texte et termine */ int86(0x10, ®set, ®set); }