#include <conio.h>      // getch(), clrscr()
#include <dos.h>        // MK_FP, geninterrupt()
//#include <mem.h>      // si utilizamos memset()
 

// puntero al comienzo de memoria de video
unsigned char *pantalla = (unsigned char *) MK_FP(0xA000, 0);

// Esta función nos hace ingresar al modo 320x200x256 (13h).
void SetMCGA()
{
     _AX = 0x0013;
     geninterrupt (0x10);
}

// SetText() - Esta función nos retorna al modo texto.
void SetText()
{
     _AX = 0x0003;
     geninterrupt (0x10);
}

//Coloca un pixel en la pantalla escribiendo directamente en memoria.
void Putpixel (int x, int y, unsigned char Col)
{
     pantalla[y*320+x]:=Col;                     // ó memset(pantalla+x+(y*320),Col,1);
}

//FUNCIÓN PRINCIPAL
void main()
{
     clrscr();
     SetMCGA();
     Putpixel(100,50,2);
     getch();
     SetText();
}