#include #include //defines djgpp_conventional_base, don't worry about this yet typedef struct rgb_color_type { unsigned char red; unsigned char green; unsigned char blue; } rgb_color; char *video_buffer = (char *)0xa0000; void set_video_mode(int mode) { union REGS regs; regs.x.ax = mode; int86(0x10, ®s, ®s); //DOS inturrupt to set video mode } void set_palette_register(unsigned char index, rgb_color *color) { outportb(0x3c6,0xff); outportb( 0x3c8,index); outportb(0x3c9,color->red); outportb(0x3c9,color->green); outportb(0x3c9,color->blue); } void put_pixel(short int x, short int y, char color) { video_buffer[(y << 8) + (y << 6) + x] = color; } void main() { rgb_color col={0,63,0};//green __djgpp_nearptr_enable(); video_buffer += __djgpp_conventional_base;//DJGPP specific, don't worry about this set_video_mode(0x013); set_palette_register(1,&col); put_pixel(160,100,1); delay(3000);//Pause so we get a chance to see it working set_video_mode(0x03); __djgpp_nearptr_disable(); } //Complile this program with this command: GCC EX2.C -O EX2.EXE -LM