4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
10 * $Id: crt.h,v 1.18 2008/03/10 11:49:33 james Exp $
15 * Revision 1.18 2008/03/10 11:49:33 james
16 * *** empty log message ***
18 * Revision 1.17 2008/03/07 12:37:04 james
19 * *** empty log message ***
21 * Revision 1.16 2008/03/03 06:04:42 james
22 * *** empty log message ***
24 * Revision 1.15 2008/03/02 10:37:56 james
25 * *** empty log message ***
27 * Revision 1.14 2008/02/28 16:57:51 james
28 * *** empty log message ***
30 * Revision 1.13 2008/02/27 09:42:22 james
31 * *** empty log message ***
33 * Revision 1.12 2008/02/26 23:23:17 james
34 * *** empty log message ***
36 * Revision 1.11 2008/02/26 19:08:27 james
37 * *** empty log message ***
39 * Revision 1.10 2008/02/24 00:42:53 james
40 * *** empty log message ***
42 * Revision 1.9 2008/02/20 19:25:09 james
43 * *** empty log message ***
45 * Revision 1.8 2008/02/13 09:12:21 james
46 * *** empty log message ***
48 * Revision 1.7 2008/02/13 01:08:18 james
49 * *** empty log message ***
51 * Revision 1.6 2008/02/07 13:22:51 james
52 * *** empty log message ***
54 * Revision 1.5 2008/02/07 12:41:06 james
55 * *** empty log message ***
57 * Revision 1.4 2008/02/07 12:16:04 james
58 * *** empty log message ***
60 * Revision 1.3 2008/02/06 11:30:37 james
61 * *** empty log message ***
63 * Revision 1.2 2008/02/04 20:23:55 james
64 * *** empty log message ***
66 * Revision 1.1 2008/02/03 23:31:25 james
67 * *** empty log message ***
77 #define CRT_CELS (CRT_ROWS*CRT_COLS)
78 #define CRT_ADDR(r,c) (((r)*CRT_COLS)+(c))
79 #define CRT_ADDR_POS(p) ((((p)->y)*CRT_COLS)+((p)->x))
81 #define CRT_ATTR_NORMAL 0x0
82 #define CRT_ATTR_UNDERLINE 0x1
83 #define CRT_ATTR_REVERSE 0x2
84 #define CRT_ATTR_BLINK 0x4
85 #define CRT_ATTR_BOLD 0x8
88 #define CRT_COLOR_BLACK 0x0
89 #define CRT_COLOR_RED 0x1
90 #define CRT_COLOR_GREEN 0x2
91 #define CRT_COLOR_YELLOW 0x3
92 #define CRT_COLOR_BLUE 0x4
93 #define CRT_COLOR_MAGENTA 0x5
94 #define CRT_COLOR_CYAN 0x6
95 #define CRT_COLOR_WHITE 0x7
96 #define CRT_COLOR_INTENSITY 0x8
98 #define CRT_COLOR_FG_MASK 0xf0
99 #define CRT_COLOR_FG_SHIFT 4
101 #define CRT_COLOR_BG_MASK 0xf
102 #define CRT_COLOR_BG_SHIFT 0
104 #define CRT_COLOR_BG(a) (((a) & CRT_COLOR_BG_MASK) >> CRT_COLOR_BG_SHIFT)
105 #define CRT_COLOR_FG(a) (((a) & CRT_COLOR_FG_MASK) >> CRT_COLOR_FG_SHIFT)
107 #define CRT_MAKE_COLOR(f,b) (((f) << CRT_COLOR_FG_SHIFT)|(b))
109 #define CRT_BGCOLOR_NORMAL CRT_COLOR_BLACK
110 #define CRT_FGCOLOR_NORMAL CRT_COLOR_WHITE
112 #define CRT_COLOR_NORMAL CRT_MAKE_COLOR(CRT_FGCOLOR_NORMAL,CRT_BGCOLOR_NORMAL)
114 typedef struct __attribute__ ((packed)) {
132 typedef struct CRT_struct {
133 CRT_CA screen[CRT_CELS];
141 crt_ca_cmp (CRT_CA a, CRT_CA b)
143 return memcmp (&a, &b, sizeof (a));
147 crt_pos_cmp (CRT_Pos a, CRT_Pos b)
149 return memcmp (&a, &b, sizeof (a));
152 #endif /* __CRT_H__ */