#include    <conio.h>
#include    <stdlib.h>
#include    <stdio.h>
#include    <dos.h>

void __pascal __far Set320x400Mode( void );
void __pascal __far WritePixel(unsigned, unsigned, unsigned char);
unsigned char __pascal __far ReadPixel(unsigned, unsigned, unsigned char);
void __pascal __far FullScr(unsigned char);

void SetVideoMode(unsigned char);

void main( void ){

	unsigned i;
	char ch = 13;

	// завершаем программу если нет VGA адаптера

	// устанавливаем режим 320х400 пикселов, 256 цветов

	Set320x400Mode();

	// загружаем регистры ЦАП VGA

//	LoadVGA256();


	for(i = 0; i < 400; i++)
		WritePixel(160, (unsigned) i, (unsigned char) (i % 256) );

	for(i = 0; i < 320; i++)
		WritePixel((unsigned) i, 200, (unsigned char) (i % 256) );

	ch = getch();
	if( ch == 27 ) exit(1);

	for(i = 0; i < 320; i++)
		WritePixel((unsigned) i, (unsigned) i, (unsigned char) (i % 256) );

	ch = getch();

	for(i = 0; ((i < 256) && (ch != 27)); i++) {
		FullScr( (unsigned char) i );
		ch = getch();
	}


	// возвращаемся в текстовый режим

	SetVideoMode(3);
	printf("\n   (C) Frolov G.V., 1992-1995 \n\n");
}

//==============================================================
// Функция устанавливает режим работы видеоадаптера, заданный
// параметром vmode
//==============================================================
void SetVideoMode( unsigned char vmode ) {

	union  REGS    inregs, outregs;

	inregs.h.ah = 0x0;
	inregs.h.al = vmode;
	int86( 0x10, &inregs, &outregs );
}

