X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=geekos%2Finclude%2Fgeekos%2Fscreen.h;fp=geekos%2Finclude%2Fgeekos%2Fscreen.h;h=39133e7436ecbeec0e822ffeec3441f4e620572d;hp=0000000000000000000000000000000000000000;hb=ddc16b0737cf58f7aa90a69c6652cdf4090aec51;hpb=626595465a2c6987606a6bc697df65130ad8c2d3 diff --git a/geekos/include/geekos/screen.h b/geekos/include/geekos/screen.h new file mode 100644 index 0000000..39133e7 --- /dev/null +++ b/geekos/include/geekos/screen.h @@ -0,0 +1,60 @@ +/* + * GeekOS text screen output + * Copyright (c) 2001,2003 David H. Hovemeyer + * $Revision: 1.2 $ + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "COPYING". + */ + +#ifndef GEEKOS_SCREEN_H +#define GEEKOS_SCREEN_H + +#include +#include + +#define BLACK 0 +#define BLUE 1 +#define GREEN 2 +#define CYAN 3 +#define RED 4 +#define MAGENTA 5 +#define AMBER 6 +#define GRAY 7 +#define BRIGHT 8 +#define ATTRIB(bg,fg) ((fg)|((bg)<<4)) + +#define NUMCOLS 80 +#define NUMROWS 25 + +#define TABWIDTH 8 + +#ifdef GEEKOS + +/* + * VGA hardware stuff, for accessing the text display + * memory and controlling the cursor + */ +#define VIDMEM_ADDR 0xb8000 +#define VIDMEM ((uchar_t*) VIDMEM_ADDR) +#define CRT_ADDR_REG 0x3D4 +#define CRT_DATA_REG 0x3D5 +#define CRT_CURSOR_LOC_HIGH_REG 0x0E +#define CRT_CURSOR_LOC_LOW_REG 0x0F + +void Init_Screen(void); +void Clear_Screen(void); +void Get_Cursor(int* row, int* col); +bool Put_Cursor(int row, int col); +uchar_t Get_Current_Attr(void); +void Set_Current_Attr(uchar_t attrib); +void Put_Char(int c); +void Put_String(const char* s); +void Put_Buf(const char* buf, ulong_t length); +void Print(const char* fmt, ...) __attribute__ ((format (printf, 1, 2))); +void PrintList(const char * fmt, va_list ap); + + +#endif /* GEEKOS */ + +#endif /* GEEKOS_SCREEN_H */