| [ CnUnix ] in KIDS 글 쓴 이(By): kaki () 날 짜 (Date): 1995년07월07일(금) 09시23분27초 KDT 제 목(Title): vt100 화면콘트롤 ESC sequence Definition 예전에 C code로 정의해 놓은 헤더화일을 올려봅니다. 엑스텀에서 칼라세팅은 디폴트 값입니다. 원하는 색깔로 엑스 리소스 화일을 고쳐서 바꿀 수 있습니다. ======================================================== /*** Bit Control Codes ********/ #define NULL ((char *)0) #define ENQ 0x05 #define BEL 0x07 #define BS 0x08 #define HT 0x09 #define LF 0x0A #define VT 0x0B #define FF 0x0C #define CR 0x0D #define SO 0x0E #define SI 0x0F #define DC1 0x11 #define DC3 0x13 #define CAN 0x18 #define SUB 0x1A #define DEL 0x7F #define IND 0x84 #define NEL 0x85 #define HTS 0x88 #define RI 0x8D #define DCS 0x90 #define ST 0x9C #define SPACE 0x20 #define ESC 0x1B #define eESC(str) printf("%c%s",0x1B,str) #define eCSI(str) printf("%c[%s",0x1B,str) /*********** Foreground Color ****************/ #define eFG_BLACK eCSI("30m") #define eFG_RED eCSI("31m") #define eFG_GREEN eCSI("32m") #define eFG_YELLOW eCSI("33m") #define eFG_BLUE eCSI("34m") #define eFG_MAGENTA eCSI("35m") #define eFG_CYAN eCSI("36m") #define eFG_WHITE eCSI("37m") /*********** Background Color ****************/ #define eBG_BLACK eCSI("30m") #define eBG_RED eCSI("31m") #define eBG_GREEN eCSI("32m") #define eBG_YELLOW eCSI("33m") #define eBG_BLUE eCSI("34m") #define eBG_MAGENTA eCSI("35m") #define eBG_CYAN eCSI("36m") #define eBG_WHITE eCSI("37m") /******* Character Sets **************/ #define eASCII_G0 eESC("(B") #define eASCII_G1 eESC(")B") #define eKS_ROMAN_G0 eESC("(9") #define eKS_ROMAN_G1 eESC(")9") #define eGRAPHIC_G0 eESC("(0") #define eGRAPHIC_G1 eESC(")0") /***** Insert/Replace Mode *************/ #define eINSERT eCSI("4h") #define eREPLACE eCSI("4l") /***** Send/Receive Mode ***************/ #define eNOECHO eCSI("12h") #define eECHO eCSI("12l") /***** Text Cursor Enable Mode *********/ #define eCUR_ON eCSI("?25h") #define eCUR_OFF eCSI("?25l") /***** Cursor Key Movement *****************/ #define eUP eESC("[1A") #define eDOWN eESC("[1B") #define eRIGHT eESC("[1C") #define eLEFT eESC("[1D") #define eBS putchar(BS) #define eEND eESC("G") #define eMOVE(y,x) printf("%c[%d;%dH",0x1B,(y),(x)) /***** Column Mode **********************/ #define eCOL_132 eCSI("?3h") #define eCOL_80 eCSI("?3l") /***** Char Size Mode ********************/ #define eDTOP eESC("#3") #define eDBOTTOM eESC("#4") #define eSINGLE eESC("#5") #define eDWIDTHW eESC("#6") /***** Reverse Background ***************/ #define eNORMAL_BACK eCSI("?5l") #define eREVERSE_BACK eCSI("?5h") /****** Screen Attrute Mode ***********/ #define eNORMAL_CHAR eCSI("?5h") #define eREVERSE_CHAR eCSI("?5l") /****** Scrolling Mode ******************/ #define eSMOOTH_SCROLL eCSI("?4h") #define eJUMP_SCROLL eCSI("?4l") #define eSCROLL_AREA(Pt,Pb) printf("%c[%d;%dr",ESC,(Pt),(Pb)) /****** Auto Repeat Mode *****************/ #define eREPEAT eCSI("?8h") #define eREPEAT_OFF eCSI("?8l") /****** 한글 대 영문 크기 Select *********/ #define eHAN2 eCSI("30h") #define eHAN1 eCSI("30l") /****** Block/Non Block Mode in Keyboard Input **/ #define eBLOCK_IN eCSI("31h") #define eNO_BLOCK_IN eCSI("31l") /****** Key Input Mode ********************/ #define eENG eCSI("0t") #define eKOR eCSI("1t") /****** Korean/English Mode **************/ #define eKOR_ENG eESC("Fk") #define eENG_ONLY eESC("Fl") /****** Upper/Lower Case Char ************/ #define eUPCASE eESC("FV") #define eLOWCASE eESC("FW") /****** 2 Byte Korean Local Display *****/ #define e2_BYTE eCSI("36h") #define eNO_2_BYTE eCSI("36l") /****** Set Character Attributes *********/ #define eRESET eCSI("0m") #define eHILIGHT eCSI("1m") #define eHILIGHT_OFF eCSI("22m") #define eDIM eCSI("2m") #define eDIM_OFF eCSI("23m") #define eBLANK eCSI("3m") #define eBLANK_OFF eCSI("21m") #define eUNDERLINE eCSI("4m") #define eUNDERLINE_OFF eCSI("24m") #define eBLINK eCSI("5m") #define eBLINK_OFF eCSI("25m") #define eNON_ERASABLE eCSI("6m") #define eNON_ERASABLE_OFF eCSI("26m") #define eREVERSE eCSI("7m") #define eREVERSE_OFF eCSI("27m") /****** Meta Char ************************/ #define eBELL putchar(BEL) #define eLINE_FEED putchar(LF) #define eCLEAR printf("%c[2J",0x1B) #define eCEOL printf("%c[K",0x1B) #define eCLEAR_AREA(t,b) printf("%c[%d;0H%c[%dM",0x1B,(t),0x1B,(b)-(t)+1) #define eNEWLINE eESC("E") #define eSPACE putchar(SPACE) |