/* * crt.h: * * Copyright (c) 2008 James McKenzie , * All rights reserved. * */ /* * $Id$ */ /* * $Log$ * Revision 1.3 2008/02/06 11:30:37 james * *** empty log message *** * * Revision 1.2 2008/02/04 20:23:55 james * *** empty log message *** * * Revision 1.1 2008/02/03 23:31:25 james * *** empty log message *** * */ #ifndef __CRT_H__ #define __CRT_H__ #define CRT_ROWS 25 #define CRT_COLS 80 #define CRT_CELS (CRT_ROWS*CRT_COLS) #define CRT_ADDR(r,c) (((r)*CRT_COLS)+(c)) #define CRT_ADDR_POS(p) ((((p)->y)*CRT_COLS)+((p)->x)) #define CRT_ATTR_NORMAL 0x0 #define CRT_ATTR_UNDERLINE 0x1 #define CRT_ATTR_REVERSE 0x2 #define CRT_ATTR_BLINK 0x4 #define CRT_ATTR_BOLD 0x8 typedef struct { uint8_t chr; uint8_t attr; } CRT_CA; typedef struct { int x; int y; } CRT_Pos; typedef struct { CRT_CA screen[CRT_CELS]; CRT_Pos pos; int hide_cursor; } CRT; static inline crt_ca_cmp (CRT_CA a, CRT_CA b) { return memcmp (&a, &b, sizeof (a)); } #endif /* __CRT_H__ */