00001
00002
00003 #define VIDEO_BASE 0xB8000
00004
00005
00006 #define PORT_VIDEO_REG_WR 0x3d4
00007 #define PORT_VIDEO_VALUE_WR 0x3d5
00008
00009
00010 #define PORT_VIDEO_REG_RD 0x3d4
00011 #define PORT_VIDEO_VALUE_RD 0x3d5
00012
00013 #define VIDEO_LOCATION 0xc
00014 #define CURSOR_LOCATION 0xe
00015
00016
00017 #define setword_vga(registro,valor) {cli(); \
00018 outportb (PORT_VIDEO_REG_WR, registro); \
00019 outportb (PORT_VIDEO_VALUE_WR, (((word)valor)>>8) & 0xFF); \
00020 outportb (PORT_VIDEO_REG_WR, registro + 1); \
00021 outportb (PORT_VIDEO_VALUE_WR, (byte) (valor) ); \
00022 sti(); }
00023
00024
00025 #define setbyte_vga(registro,valor) {cli(); \
00026 outportb (PORT_VIDEO_REG_WR, registro); \
00027 outportb (PORT_VIDEO_VALUE_WR, valor ); \
00028 sti(); }
00029
00030
00031
00032 #define refresh_cursor(offset) setword_vga(CURSOR_LOCATION, offset)
00033
00034 #define video_location(pos) setword_vga(VIDEO_LOCATION, pos)