/* pcConsole.h - PC Keyboard and VGA Controller header file */ /* Copyright 1984-2001, 2010 Wind River Systems, Inc. */ /* modification history -------------------- 01e,29apr10,pad Moved extern C statement after include statements. 01d,06dec01,jlb options to send scan codes and set LEDs 01c,12oct99,jmb fix build warning, conflict with SH cpu type 01b,29sep98,fle made it refgen parsable 01a,24sep93,vin created */ #ifndef __INCpcConsoleh #define __INCpcConsoleh #ifndef _ASMLANGUAGE #include "tyLib.h" #ifdef __cplusplus extern "C" { #endif #define NPARS 16 /* number of escape parameters */ /* key board device descriptor */ typedef struct { BOOL curMode; /* cursor mode TRUE / FALSE */ int kbdMode; /* keyboard mode Japanese/English */ UINT16 kbdFlags; /* 16 bit keyboard flags */ UINT16 kbdState; /* unshift :shift :cntrl:numeric */ int currCon; /* current console */ FUNCPTR kbdHook; /* vga console hook */ BOOL convertChar; /* convert scan codes to ASCII */ } KBD_CON_DEV; /* vga console device descriptor */ typedef struct { UCHAR * memBase; /* video memory base */ UCHAR * selReg; /* select register */ UCHAR * valReg; /* value register */ int row, col; /* current cursor position */ UCHAR * curChrPos; /* current character position */ UCHAR curAttrib; /* current attribute */ UCHAR defAttrib; /* current default attribute */ int nrow, ncol; /* current screen geometry */ int scst, sced; /* scroll region from to */ BOOL rev; /* revarse mode char */ BOOL autoWrap; /* auto Wrap mode */ BOOL sv_rev; /* saved revarse mode char */ int sv_row, sv_col; /* saved cursor position */ UCHAR sv_curAttrib; /* saved attributes */ BOOL scrollCheck; /* scroll check */ UCHAR * charSet; /* character set Text or Graphics */ int vgaMode; /* added to support graphics Mode */ BOOL colorMode; /* color mode MONO / COLOR */ BOOL insMode; /* insert mode on / off */ char tab_stop [80]; /* tab stop mark */ UINT16 escFlags; /* 16 bit escape flags */ int escParaCount; /* seen escape parameters (count) */ int escPara[NPARS]; /* parameters */ BOOL escQuestion; /* ? mark in escape sequence */ char escResp[10]; /* esc sequence response buffer */ FUNCPTR vgaHook; /* key board hook */ } VGA_CON_DEV; /* pc console device descriptor */ typedef struct /* CON_DRV_DEV */ { TY_DEV tyDev; BOOL created; /* true if this device is created */ KBD_CON_DEV * ks; /* pointer to keyboard descriptor */ VGA_CON_DEV * vs; /* pointer to vga console descriptor */ } PC_CON_DEV; /* * Keyboard definitions */ #define WAIT_MAX 100 /* Maximum wait time for keyboard */ #define E0_BASE 0x80 /* enhanced keyboard base */ #define EXTND_SIZE 16 /* no keys extra with extended code 0xe0 */ /* keyboard function table Index */ #undef SH /* conflicts with SH CPU type */ #define AS 0 /* normal character index */ #define SH 1 /* shift index */ #define CN 2 /* control index */ #define NM 3 /* numeric lock index */ #define CP 4 /* capslock index */ #define ST 5 /* stop output index */ #define EX 6 /* extended code index */ #define ES 7 /* escape and extended code index */ /* Keyboard special key flags */ #define NORMAL 0x0000 /* normal key */ #define STP 0x0001 /* capslock flag */ #define NUM 0x0002 /* numeric lock flag */ #define CAPS 0x0004 /* scroll lock stop output flag */ #define SHIFT 0x0008 /* shift flag */ #define CTRL 0x0010 /* control flag */ #define EXT 0x0020 /* extended scan code 0xe0 */ #define ESC 0x0040 /* escape key press */ #define EW EXT|ESC /* escape and Extend */ #define E1 0x0080 /* extended scan code with 0xE1 */ #define PRTSC 0x0100 /* print screen flag */ #define BRK 0x0200 /* make break flag for keyboard */ /* keyboard on off defines */ #define K_ON 0xff /* key */ #define K_OFF 0x00 /* key */ /* monitor definitions */ #define TEXT_SET 0 /* Normal text set */ #define GRAPHICS_VT100_SET 1 /* vt100 graphics set */ #define IBM_GRAPHICS_SET 2 /* IBM graphics character set */ #define TEXT_MODE 0 /* monitor in text mode */ #define GRAPHICS_MODE 1 /* monitor in graphics mode */ #define INSERT_MODE_OFF 0 /* character insert mode off */ #define INSERT_MODE_ON 1 /* character insert mode on */ #define FG_ATTR_MASK 0x07 /* foreground attribute mask */ #define BG_ATTR_MASK 0x70 /* background attribute mask */ #define INT_BLINK_MASK 0x88 /* intensity and blinking mask */ #define FORWARD 1 /* scroll direction forward */ #define BACKWARD 0 /* scroll direction backward */ /* escape flags */ #define ESC_NORMAL 0x0001 /* normal state */ #define ESC_ESC 0x0002 /* ESC state */ #define ESC_BRACE 0x0004 /* ESC [ state */ #define ESC_GET_PARAMS 0x0008 /* ESC [ n state */ #define ESC_GOT_PARAMS 0x0010 /* ESC [ n;n;n; state */ #define ESC_FUNC_KEY 0x0020 /* ESC [ [ state */ #define ESC_HASH 0x0040 /* ESC # state */ #define ESC_SET_TEXT 0x0080 /* ESC ( state */ #define ESC_SET_GPRAHICS 0x0100 /* ESC ) state */ /* ioctl and attribute definitions */ #define CONIOSETATRB 1001 #define CONIOGETATRB 1002 #define CONIOSETKBD 1003 #define CONIOSCREENREV 1004 #define CONIOBEEP 1005 #define CONIOCURSORON 1006 #define CONIOCURSOROFF 1007 #define CONIOCURSORMOVE 1008 #define CONIOCURCONSOLE 1009 #define CONIOCONVERTSCAN 1010 #define CONIOLEDS 1011 #define UNDERLINE 0x01 /* only if monochrome */ #define ATRB_FG_BLACK 0x00 #define ATRB_FG_BLUE 0x01 #define ATRB_FG_GREEN 0x02 #define ATRB_FG_CYAN 0x03 #define ATRB_FG_RED 0x04 #define ATRB_FG_MAGENTA 0x05 #define ATRB_FG_BROWN 0x06 #define ATRB_FG_WHITE 0x07 #define ATRB_BRIGHT 0x08 #define ATRB_FG_GRAY (ATRB_FG_BLACK | ATRB_BRIGHT) #define ATRB_FG_LIGHTBLUE (ATRB_FG_BLUE | ATRB_BRIGHT) #define ATRB_FG_LIGHTGREEN (ATRB_FG_GREEN | ATRB_BRIGHT) #define ATRB_FG_LIGHTCYAN (ATRB_FG_CYAN | ATRB_BRIGHT) #define ATRB_FG_LIGHTRED (ATRB_FG_RED | ATRB_BRIGHT) #define ATRB_FG_LIGHTMAGENTA (ATRB_FG_MAGENTA | ATRB_BRIGHT) #define ATRB_FG_YELLOW (ATRB_FG_BROWN | ATRB_BRIGHT) #define ATRB_FG_BRIGHTWHITE (ATRB_FG_WHITE | ATRB_BRIGHT) #define ATRB_BG_BLACK 0x00 #define ATRB_BG_BLUE 0x10 #define ATRB_BG_GREEN 0x20 #define ATRB_BG_CYAN 0x30 #define ATRB_BG_RED 0x40 #define ATRB_BG_MAGENTA 0x50 #define ATRB_BG_BROWN 0x60 #define ATRB_BG_WHITE 0x70 #define ATRB_BLINK 0x80 #define ATRB_CHR_REV 0x0100 /* function declarations */ #if defined(__STDC__) || defined(__cplusplus) extern void kbdIntr (void); extern void kbdHrdInit (void); extern int pcConDrv (void); extern int pcConDevCreate (char *name, FAST int channel, int rdBufSize, int wrtBufSize); extern void vgaHrdInit (void); extern int vgaWriteString (FAST PC_CON_DEV * pPcCoDv); #else extern void kbdIntr (); extern void kbdHrdInit (); extern int pcConDrv (); extern int pcConDevCreate (); extern void vgaHrdInit (void); extern int vgaWriteString (); #endif /* __STDC__ */ #endif /* _ASMLANGUAGE */ #ifdef __cplusplus } #endif #endif /* __INCpcConsoleh */