14d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#ifndef vgabios_h_included 24d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define vgabios_h_included 34d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 44d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/* Types */ 54d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatypedef unsigned char Bit8u; 64d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatypedef unsigned short Bit16u; 74d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatypedef unsigned long Bit32u; 84d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatypedef unsigned short Boolean; 94d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/* Defines */ 114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_AL(val8) AX = ((AX & 0xff00) | (val8)) 134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_BL(val8) BX = ((BX & 0xff00) | (val8)) 144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_CL(val8) CX = ((CX & 0xff00) | (val8)) 154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_DL(val8) DX = ((DX & 0xff00) | (val8)) 164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_AH(val8) AX = ((AX & 0x00ff) | ((val8) << 8)) 174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_BH(val8) BX = ((BX & 0x00ff) | ((val8) << 8)) 184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_CH(val8) CX = ((CX & 0x00ff) | ((val8) << 8)) 194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_DH(val8) DX = ((DX & 0x00ff) | ((val8) << 8)) 204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_AL() ( AX & 0x00ff ) 224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_BL() ( BX & 0x00ff ) 234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_CL() ( CX & 0x00ff ) 244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_DL() ( DX & 0x00ff ) 254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_AH() ( AX >> 8 ) 264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_BH() ( BX >> 8 ) 274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_CH() ( CX >> 8 ) 284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_DH() ( DX >> 8 ) 294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_CF() FLAGS |= 0x0001 314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define CLEAR_CF() FLAGS &= 0xfffe 324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_CF() (FLAGS & 0x0001) 334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SET_ZF() FLAGS |= 0x0040 354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define CLEAR_ZF() FLAGS &= 0xffbf 364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define GET_ZF() (FLAGS & 0x0040) 374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SCROLL_DOWN 0 394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SCROLL_UP 1 404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define NO_ATTR 2 414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define WITH_ATTR 3 424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SCREEN_SIZE(x,y) (((x*y*2)|0x00ff)+1) 444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SCREEN_MEM_START(x,y,p) ((((x*y*2)|0x00ff)+1)*p) 454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SCREEN_IO_START(x,y,p) ((((x*y)|0x00ff)+1)*p) 464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima 474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#endif 48