44 lines
1.8 KiB
C
44 lines
1.8 KiB
C
/* Program to demonstrate Mode X (320x240, 256 colors) patterned
|
|
rectangle fills by filling the screen with adjacent 80x60
|
|
rectangles in a variety of patterns. Tested with Borland C++
|
|
in C compilation mode and the small model */
|
|
#include <conio.h>
|
|
#include <dos.h>
|
|
|
|
void Set320x240Mode(void);
|
|
void FillPatternX(int, int, int, int, unsigned int, char*);
|
|
|
|
/* 16 4x4 patterns */
|
|
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 of pointers to the 16 4x4 patterns with which to draw */
|
|
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; /* switch back to text mode and done */
|
|
int86(0x10, ®set, ®set);
|
|
}
|