00001 #ifndef _DEV_TERM_H_
00002 #define _DEV_TERM_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include <sys/device.h>
00037
00047
00048
00049
00050
00051 #define LCD_CMDBYTE 0x0401
00052 #define LCD_CMDWORD16 0x0402
00053 #define LCD_CMDWORD32 0x0403
00054 #define LCD_DATABYTE 0x0405
00055 #define LCD_DATAWORD16 0x0406
00056 #define LCD_DATAWORD32 0x0407
00057 #define LCD_SETCOOKEDMODE 0x0413
00058 #define LCD_GETCOOKEDMODE 0x0414
00060 #ifndef TIOCGWINSZ
00061 #define TIOCGWINSZ 0x0501
00062 #endif
00063 #ifndef TIOCSWINSZ
00064 #define TIOCSWINSZ 0x0502
00065 #endif
00066
00067 #define LCD_MF_CURSORON 0x00000001UL
00068 #define LCD_MF_COOKEDMODE 0x00020000UL
00071 #define ESC_CHAR "\x1B"
00072
00073 #define ESC_POS ESC_CHAR "Y"
00074 #define ESC_UP ESC_CHAR "A"
00075 #define ESC_DOWN ESC_CHAR "B"
00076 #define ESC_RIGHT ESC_CHAR "C"
00077 #define ESC_LEFT ESC_CHAR "D"
00078 #define ESC_CLRHOME ESC_CHAR "H"
00079
00080 #define ESC_CLR ESC_CHAR "E"
00081 #define ESC_CLREND ESC_CHAR "J"
00082 #define ESC_CLREOL ESC_CHAR "K"
00083 #define ESC_CLRSTART ESC_CHAR "d"
00084 #define ESC_CLRSOL ESC_CHAR "o"
00085
00086 #define ESC_INSCHAR ESC_CHAR "@"
#define ESC_INSLINE ESC_CHAR "L"
00087 #define ESC_DELCHAR ESC_CHAR "P"
00088 #define ESC_DELLINE ESC_CHAR "M"
00089 #define ESC_RLF ESC_CHAR "I"
00090
00091 #define ESC_CURSORON ESC_CHAR "e"
00092 #define ESC_CURSOROFF ESC_CHAR "f"
00093 #define ESC_SPECIALSET ESC_CHAR "F"
00094 #define ESC_DEFAULTSET ESC_CHAR "G"
00095 #define ESC_ACTIVE ESC_CHAR "R"
00096 #define ESC_SLEEP ESC_CHAR "S"
00097
00098
00099
00100
00101 typedef struct _WINSIZE WINSIZE;
00102
00103 struct _WINSIZE {
00104 u_short ws_row;
00105 u_short ws_col;
00106 u_short ws_xpixel;
00107 u_short ws_ypixel;
00108 };
00109
00113 typedef struct _TERMDCB TERMDCB;
00114
00119 struct _TERMDCB {
00120
00123 void (*dss_init)(NUTDEVICE*);
00124
00127 void (*dss_write)(u_char);
00128
00131 void (*dss_command)(u_char, u_char);
00132
00135 void (*dss_clear)(void);
00136
00139 void (*dss_set_cursor)(u_char);
00140
00143 void (*dss_cursor_home)(void);
00144
00147 void (*dss_cursor_left)(void);
00148
00151 void (*dss_cursor_right)(void);
00152
00155 void (*dss_cursor_mode)(u_char);
00156
00159 u_long dcb_modeflags;
00160
00163 u_char dcb_ctlseq;
00164
00168 u_char dcb_nrows;
00169
00173 u_char dcb_ncols;
00174
00178 u_char dcb_vcols;
00179
00182 u_char dcb_row;
00183
00186 u_char dcb_col;
00187
00190 u_char *dcb_smem;
00191
00194 u_char *dcb_sptr;
00195 };
00196
00199 extern int TermInit(NUTDEVICE * dev);
00200 extern int TermIOCtl(NUTDEVICE * dev, int req, void *conf);
00201 extern int TermWrite(NUTFILE * fp, CONST void *buffer, int len);
00202 #ifdef __HARVARD_ARCH__
00203 extern int TermWrite_P(NUTFILE * fp, PGM_P buffer, int len);
00204 #endif
00205 extern NUTFILE *TermOpen(NUTDEVICE * dev, CONST char *name, int mode, int acc);
00206 extern int TermClose(NUTFILE * fp);
00207
00208 #endif
00209