/* Grafická knihovna pro videorežim 0x13, 320x200x256
 * --------------------------------------------------
 * Copyright (c) 1999 Martin Hinner, <mhi@penguin.cz>
 */

/***********************************
 * Funkce: putpix
 *
 * Popis:  Nakreslí na obrazovku bod na souřadnice x,y o barvě color.
 *         Souřadnice jsou v rozmezí [0,0]..[319,199] a barva je
 *         0..255. Při kreslení se použije aktuální paleta, viz funkce
 *         setpal.
 ****************************************************************************/
void putpix(int x,int y,int color)
{
 unsigned char far *vmem = (unsigned char far *)0xA0000000L;

 if (x>0 && x<320 && y>0 && y<200)
   vmem[x + 320*y] = color;
}

/***********************************
 * Funkce: initg
 *
 * Popis:  Tato funkce inicializuje grafický režim 320x200x256 pomocí
 *         služeb VGA-BIOSu.
 ****************************************************************************/
void initg(void)
{
 asm{ mov ax,0x13
   int 0x10
   }
}

/***********************************
 * Funkce: doneg
 *
 * Popis:  Ukončí grafický režim a vrátí se do textového režimu.
 ****************************************************************************/
void doneg(void)
{
 asm{ mov ax,0x3
   int 0x10
   }
}

/***********************************
 * Funkce: setpal
 *
 * Popis:  Tato funkce nastaví RGB složky zadané barvy s indexem n. N může
 *         nabývat hodnot 0..255, tedy počet barev. Jednotlivé složky nabývají
 *         hodnot 0..63.
 ****************************************************************************/
void setpal(int n,int r,int g,int b)
{
 outp(0x3c8,n);
 outp(0x3c9,r);
 outp(0x3c9,g);
 outp(0x3c9,b);
}
