X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=sympathy.git;a=blobdiff_plain;f=src%2Fcrt.h;h=410b390ff9e75eda4475eb63486d01b2f00aff14;hp=002f67fe4d8e650d0deb65997a895cb140b8837e;hb=ecb64606aef408784023c0f6a1d9373d4e28f86e;hpb=5175425f563e29f4698d2941ba1825b09965aaa5 diff --git a/src/crt.h b/src/crt.h index 002f67f..410b390 100644 --- a/src/crt.h +++ b/src/crt.h @@ -12,6 +12,21 @@ /* * $Log$ + * Revision 1.8 2008/02/13 09:12:21 james + * *** empty log message *** + * + * Revision 1.7 2008/02/13 01:08:18 james + * *** empty log message *** + * + * Revision 1.6 2008/02/07 13:22:51 james + * *** empty log message *** + * + * Revision 1.5 2008/02/07 12:41:06 james + * *** empty log message *** + * + * Revision 1.4 2008/02/07 12:16:04 james + * *** empty log message *** + * * Revision 1.3 2008/02/06 11:30:37 james * *** empty log message *** * @@ -39,10 +54,38 @@ #define CRT_ATTR_BLINK 0x4 #define CRT_ATTR_BOLD 0x8 + +#define CRT_COLOR_BLACK 0x0 +#define CRT_COLOR_RED 0x1 +#define CRT_COLOR_GREEN 0x2 +#define CRT_COLOR_YELLOW 0x3 +#define CRT_COLOR_BLUE 0x4 +#define CRT_COLOR_MAGENTA 0x5 +#define CRT_COLOR_CYAN 0x6 +#define CRT_COLOR_WHITE 0x7 +#define CRT_COLOR_INTENSITY 0x8 + +#define CRT_COLOR_FG_MASK 0xf0 +#define CRT_COLOR_FG_SHIFT 4 + +#define CRT_COLOR_BG_MASK 0xf +#define CRT_COLOR_BG_SHIFT 0 + +#define CRT_COLOR_BG(a) (((a) & CRT_COLOR_BG_MASK) >> CRT_COLOR_BG_SHIFT) +#define CRT_COLOR_FG(a) (((a) & CRT_COLOR_FG_MASK) >> CRT_COLOR_FG_SHIFT) + +#define CRT_MAKE_COLOR(f,b) (((f) << CRT_COLOR_FG_SHIFT)|(b)) + +#define CRT_BGCOLOR_NORMAL CRT_COLOR_BLACK +#define CRT_FGCOLOR_NORMAL CRT_COLOR_WHITE + +#define CRT_COLOR_NORMAL CRT_MAKE_COLOR(CRT_FGCOLOR_NORMAL,CRT_BGCOLOR_NORMAL) + typedef struct { uint8_t chr; uint8_t attr; + uint8_t color; } CRT_CA; typedef struct @@ -52,10 +95,18 @@ typedef struct } CRT_Pos; +typedef struct +{ + CRT_Pos s; + CRT_Pos e; + int dir; +} CRT_ScrollHint; + typedef struct { CRT_CA screen[CRT_CELS]; CRT_Pos pos; + CRT_ScrollHint sh; int hide_cursor; } CRT; @@ -66,4 +117,10 @@ crt_ca_cmp (CRT_CA a, CRT_CA b) return memcmp (&a, &b, sizeof (a)); } +static inline +crt_pos_cmp (CRT_Pos a, CRT_Pos b) +{ + return memcmp (&a, &b, sizeof (a)); +} + #endif /* __CRT_H__ */