#include "sysp.h"
#include "sysgraph.h"
#include <dos.h>

void __pascal __far SetVgaDAC(unsigned, unsigned);
void LoadVGA256(void);

void LoadVGA256(void) {

	  RGB color_table[256];
	  unsigned char   i, j;
	  unsigned char   far *ptr;
	  unsigned seg_table,off_table;

// записываем в массив color_table новые значения для
// регистров таблицы цветов

	  for(j = 0; j < 4; j++) {
			 for(i = 0; i < 64; i++) {
					(color_table[i+j*64]).red = (j == 0) ? i : 0;
					(color_table[i+j*64]).green = (j == 1) ? i : (j == 3) ? i : 0;
					(color_table[i+j*64]).blue = (j == 2) ? i : (j == 3) ? i : 0;
			 }
	  }
	color_table[255].red = 0;
	color_table[255].green = 0;
	color_table[255].blue = 0;

	  ptr = (unsigned char far*) &color_table[0];

// определяем сегмент и смешение массива color_table

	  seg_table = FP_SEG(ptr);
	  off_table = FP_OFF(ptr);

// загружаем новые значения в регистры таблицы цветов

	  SetVgaDAC(seg_table,off_table);
}
