X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2Fdos%2Fvga.h;fp=src%2Fdos%2Fvga.h;h=c6d7070186bfc45d234bf1c0c785dbf5b6308670;hp=0000000000000000000000000000000000000000;hb=b82bab85314bbc57d1c542d4d6687de0cd75c375;hpb=acf706a52fdef3bea3f4ae07b7797395f854c11e diff --git a/src/dos/vga.h b/src/dos/vga.h new file mode 100644 index 0000000..c6d7070 --- /dev/null +++ b/src/dos/vga.h @@ -0,0 +1,30 @@ +#ifndef VGA_H_ +#define VGA_H_ + +#include "inttypes.h" + +int vga_setmode(int mode); + +#ifdef __WATCOMC__ +void vga_setpal(int16_t idx, uint8_t r, uint8_t g, uint8_t b); +#pragma aux vga_setpal = \ + "test ax, 0x8000" \ + "jnz skip_dacaddr" \ + "mov dx, 0x3c8" \ + "out dx, al" \ + "skip_dacaddr:" \ + "mov dx, 0x3c9" \ + "mov al, bl" \ + "shr al, 2" \ + "out dx, al" \ + "mov al, bh" \ + "shr al, 2" \ + "out dx, al" \ + "mov al, cl" \ + "shr al, 2" \ + "out dx, al" \ + parm[ax][bl][bh][cl] \ + modify[dx]; +#endif /* __WATCOMC__ */ + +#endif /* VGA_H_ */