1 /* 2 * Copyright (c) 2018 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef SHELL_VT100_H__ 8 #define SHELL_VT100_H__ 9 10 #define SHELL_VT100_ASCII_ESC (0x1b) 11 #define SHELL_VT100_ASCII_DEL (0x7F) 12 #define SHELL_VT100_ASCII_BSPACE (0x08) 13 #define SHELL_VT100_ASCII_CTRL_A (0x01) 14 #define SHELL_VT100_ASCII_CTRL_B (0x02) 15 #define SHELL_VT100_ASCII_CTRL_C (0x03) 16 #define SHELL_VT100_ASCII_CTRL_D (0x04) 17 #define SHELL_VT100_ASCII_CTRL_E (0x05) 18 #define SHELL_VT100_ASCII_CTRL_F (0x06) 19 #define SHELL_VT100_ASCII_CTRL_K (0x0B) 20 #define SHELL_VT100_ASCII_CTRL_L (0x0C) 21 #define SHELL_VT100_ASCII_CTRL_N (0x0E) 22 #define SHELL_VT100_ASCII_CTRL_P (0x10) 23 #define SHELL_VT100_ASCII_CTRL_T (0x14) 24 #define SHELL_VT100_ASCII_CTRL_U (0x15) 25 #define SHELL_VT100_ASCII_CTRL_W (0x17) 26 #define SHELL_VT100_ASCII_ALT_B (0x62) 27 #define SHELL_VT100_ASCII_ALT_F (0x66) 28 #define SHELL_VT100_ASCII_ALT_R (0x72) 29 30 /* Set new line mode */ 31 #define SHELL_VT100_SETNL "\e[20h\0" 32 /* Set cursor key to application */ 33 #define SHELL_VT100_SETAPPL "\e[?1h\0" 34 /* Set number of columns to 132 */ 35 #define SHELL_VT100_SETCOL_132 "\e[?3h\0" 36 /* Set smooth scrolling */ 37 #define SHELL_VT100_SETSMOOTH "\e[?4h\0" 38 /* Set reverse video on screen */ 39 #define SHELL_VT100_SETREVSCRN "\e[?5h\0" 40 /* Set origin to relative */ 41 #define SHELL_VT100_SETORGREL "\e[?6h\0" 42 /* Set auto-wrap mode */ 43 #define SHELL_VT100_SETWRAP_ON "\e[?7h\0" 44 /* Set auto-wrap mode */ 45 #define SHELL_VT100_SETWRAP_OFF "\e[?7l\0" 46 /* Set auto-repeat mode */ 47 #define SHELL_VT100_SETREP "\e[?8h\0" 48 /* Set interlacing mode */ 49 #define SHELL_VT100_SETINTER "\e[?9h\0" 50 /* Set line feed mode */ 51 #define SHELL_VT100_SETLF "\e[20l\0" 52 /* Set cursor key to cursor */ 53 #define SHELL_VT100_SETCURSOR "\e[?1l\0" 54 /* Set VT52 (versus ANSI) */ 55 #define SHELL_VT100_SETVT52 "\e[?2l\0" 56 /* Set number of columns to 80 */ 57 #define SHELL_VT100_SETCOL_80 "\e[?3l\0" 58 /* Set jump scrolling */ 59 #define SHELL_VT100_SETJUMP "\e[?4l\0" 60 /* Set normal video on screen */ 61 #define SHELL_VT100_SETNORMSCRN "\e[?5l\0" 62 /* Set origin to absolute */ 63 #define SHELL_VT100_SETORGABS "\e[?6l\0" 64 /* Reset auto-wrap mode */ 65 #define SHELL_VT100_RESETWRAP "\e[?7l\0" 66 /* Reset auto-repeat mode */ 67 #define SHELL_VT100_RESETREP "\e[?8l\0" 68 /* Reset interlacing mode */ 69 #define SHELL_VT100_RESETINTER "\e[?9l\0" 70 /* Set alternate keypad mode */ 71 #define SHELL_VT100_ALTKEYPAD "\e=\0" 72 /* Set numeric keypad mode */ 73 #define SHELL_VT100_NUMKEYPAD "\e>\0" 74 /* Set United Kingdom G0 character set */ 75 #define SHELL_VT100_SETUKG0 "\e(A\0" 76 /* Set United Kingdom G1 character set */ 77 #define SHELL_VT100_SETUKG1 "\e)A\0" 78 /* Set United States G0 character set */ 79 #define SHELL_VT100_SETUSG0 "\e(B\0" 80 /* Set United States G1 character set */ 81 #define SHELL_VT100_SETUSG1 "\e)B\0" 82 /* Set G0 special chars. & line set */ 83 #define SHELL_VT100_SETSPECG0 "\e(0\0" 84 /* Set G1 special chars. & line set */ 85 #define SHELL_VT100_SETSPECG1 "\e)0\0" 86 /* Set G0 alternate character ROM */ 87 #define SHELL_VT100_SETALTG0 "\e(1\0" 88 /* Set G1 alternate character ROM */ 89 #define SHELL_VT100_SETALTG1 "\e)1\0" 90 /* Set G0 alt char ROM and spec. graphics */ 91 #define SHELL_VT100_SETALTSPECG0 "\e(2\0" 92 /* Set G1 alt char ROM and spec. graphics */ 93 #define SHELL_VT100_SETALTSPECG1 "\e)2\0" 94 /* Set single shift 2 */ 95 #define SHELL_VT100_SETSS2 "\eN\0" 96 /* Set single shift 3 */ 97 #define SHELL_VT100_SETSS3 "\eO\0" 98 /* Turn off character attributes */ 99 #define SHELL_VT100_MODESOFF "\e[m\0" 100 /* Turn off character attributes */ 101 #define SHELL_VT100_MODESOFF_ "\e[0m\0" 102 /* Turn bold mode on */ 103 #define SHELL_VT100_BOLD "\e[1m\0" 104 /* Turn low intensity mode on */ 105 #define SHELL_VT100_LOWINT "\e[2m\0" 106 /* Turn underline mode on */ 107 #define SHELL_VT100_UNDERLINE "\e[4m\0" 108 /* Turn blinking mode on */ 109 #define SHELL_VT100_BLINK "\e[5m\0" 110 /* Turn reverse video on */ 111 #define SHELL_VT100_REVERSE "\e[7m\0" 112 /* Turn invisible text mode on */ 113 #define SHELL_VT100_INVISIBLE "\e[8m\0" 114 /* Move cursor to upper left corner */ 115 #define SHELL_VT100_CURSORHOME "\e[H\0" 116 /* Move cursor to upper left corner */ 117 #define SHELL_VT100_CURSORHOME_ "\e[;H\0" 118 /* Move cursor to upper left corner */ 119 #define SHELL_VT100_HVHOME "\e[f\0" 120 /* Move cursor to upper left corner */ 121 #define SHELL_VT100_HVHOME_ "\e[;f\0" 122 /* Move/scroll window up one line */ 123 #define SHELL_VT100_INDEX "\eD\0" 124 /* Move/scroll window down one line */ 125 #define SHELL_VT100_REVINDEX "\eM\0" 126 /* Move to next line */ 127 #define SHELL_VT100_NEXTLINE "\eE\0" 128 /* Save cursor position and attributes */ 129 #define SHELL_VT100_SAVECURSOR "\e7\0" 130 /* Restore cursor position and attribute */ 131 #define SHELL_VT100_RESTORECURSOR "\e8\0" 132 /* Set a tab at the current column */ 133 #define SHELL_VT100_TABSET "\eH\0" 134 /* Clear a tab at the current column */ 135 #define SHELL_VT100_TABCLR "\e[g\0" 136 /* Clear a tab at the current column */ 137 #define SHELL_VT100_TABCLR_ "\e[0g\0" 138 /* Clear all tabs */ 139 #define SHELL_VT100_TABCLRALL "\e[3g\0" 140 /* Double-height letters, top half */ 141 #define SHELL_VT100_DHTOP "\e#3\0" 142 /* Double-height letters, bottom hal */ 143 #define SHELL_VT100_DHBOT "\e#4\0" 144 /* Single width, single height letters */ 145 #define SHELL_VT100_SWSH "\e#5\0" 146 /* Double width, single height letters */ 147 #define SHELL_VT100_DWSH "\e#6\0" 148 /* Clear line from cursor right */ 149 #define SHELL_VT100_CLEAREOL "\e[K\0" 150 /* Clear line from cursor right */ 151 #define SHELL_VT100_CLEAREOL_ "\e[0K\0" 152 /* Clear line from cursor left */ 153 #define SHELL_VT100_CLEARBOL "\e[1K\0" 154 /* Clear entire line */ 155 #define SHELL_VT100_CLEARLINE "\e[2K\0" 156 /* Clear screen from cursor down */ 157 #define SHELL_VT100_CLEAREOS "\e[J\0" 158 /* Clear screen from cursor down */ 159 #define SHELL_VT100_CLEAREOS_ "\e[0J\0" 160 /* Clear screen from cursor up */ 161 #define SHELL_VT100_CLEARBOS "\e[1J\0" 162 /* Clear entire screen */ 163 #define SHELL_VT100_CLEARSCREEN "\e[2J\0" 164 /* Device status report */ 165 #define SHELL_VT100_DEVSTAT "\e5n\0" 166 /* Response: terminal is OK */ 167 #define SHELL_VT100_TERMOK "\e0n\0" 168 /* Response: terminal is OK */ 169 #define SHELL_VT100_TERMNOK "\e3n\0" 170 /* Get cursor position */ 171 #define SHELL_VT100_GETCURSOR "\e[6n\0" 172 /* Response: cursor is at v,h */ 173 #define SHELL_VT100_CURSORPOSAT "\e, (v);', (h)R\0" 174 /* Identify what terminal type */ 175 #define SHELL_VT100_IDENT "\e[c\0" 176 /* Identify what terminal type */ 177 #define SHELL_VT100_IDENT_ "\e[0c\0" 178 /* Response: terminal type code n */ 179 #define SHELL_VT100_GETTYPE "\e[?1;', (n)0c\0" 180 /*Reset terminal to initial state */ 181 #define SHELL_VT100_RESET "\ec\0" 182 /* Screen alignment display */ 183 #define SHELL_VT100_ALIGN "\e#8\0" 184 /* Confidence power up test */ 185 #define SHELL_VT100_TESTPU "\e[2;1y\0" 186 /* Confidence loopback test */ 187 #define SHELL_VT100_TESTLB "\e[2;2y\0" 188 /* Repeat power up test */ 189 #define SHELL_VT100_TESTPUREP "\e[2;9y\0" 190 /* Repeat loopback test */ 191 #define SHELL_VT100_TESTLBREP "\e[2;10y\0" 192 /* Turn off all four leds */ 193 #define SHELL_VT100_LEDSOFF "\e[0q\0" 194 /* Turn on LED #1 */ 195 #define SHELL_VT100_LED1 "\e[1q\0" 196 /* Turn on LED #2 */ 197 #define SHELL_VT100_LED2 "\e[2q\0" 198 /* Turn on LED #3 */ 199 #define SHELL_VT100_LED3 "\e[3q\0" 200 /* Turn on LED #4 */ 201 #define SHELL_VT100_LED4 "\e[4q\0" 202 203 /* Function Keys */ 204 #define SHELL_VT100_PF1 "\eOP\0" 205 #define SHELL_VT100_PF2 "\eOQ\0" 206 #define SHELL_VT100_PF3 "\eOR\0" 207 #define SHELL_VT100_PF4 "\eOS\0" 208 209 /* Arrow keys */ 210 #define SHELL_VT100_UP_RESET "\eA\0" 211 #define SHELL_VT100_UP_SET "\eOA\0" 212 #define SHELL_VT100_DOWN_RESET "\eB\0" 213 #define SHELL_VT100_DOWN_SET "\eOB\0" 214 #define SHELL_VT100_RIGHT_RESET "\eC\0" 215 #define SHELL_VT100_RIGHT_SET "\eOC\0" 216 #define SHELL_VT100_LEFT_RESET "\eD\0" 217 #define SHELL_VT100_LEFT_SET "\eOD\0" 218 219 /* Numeric Keypad Keys */ 220 #define SHELL_VT100_NUMERIC_0 "0\0" 221 #define SHELL_VT100_ALT_0 "\eOp\0" 222 #define SHELL_VT100_NUMERIC_1 "1\0" 223 #define SHELL_VT100_ALT_1 "\eOq\0" 224 #define SHELL_VT100_NUMERIC_2 "2\0" 225 #define SHELL_VT100_ALT_2 "\eOr\0" 226 #define SHELL_VT100_NUMERIC_3 "3\0" 227 #define SHELL_VT100_ALT_3 "\eOs\0" 228 #define SHELL_VT100_NUMERIC_4 "4\0" 229 #define SHELL_VT100_ALT_4 "\eOt\0" 230 #define SHELL_VT100_NUMERIC_5 "5\0" 231 #define SHELL_VT100_ALT_5 "\eOu\0" 232 #define SHELL_VT100_NUMERIC_6 "6\0" 233 #define SHELL_VT100_ALT_6 "\eOv\0" 234 #define SHELL_VT100_NUMERIC_7 "7\0" 235 #define SHELL_VT100_ALT_7 "\eOw\0" 236 #define SHELL_VT100_NUMERIC_8 "8\0" 237 #define SHELL_VT100_ALT_8 "\eOx\0" 238 #define SHELL_VT100_NUMERIC_9 "9\0" 239 #define SHELL_VT100_ALT_9 "\eOy\0" 240 #define SHELL_VT100_NUMERIC_MINUS "-\0" 241 #define SHELL_VT100_ALT_MINUS "\eOm\0" 242 #define SHELL_VT100_NUMERIC_COMMA ",\0" 243 #define SHELL_VT100_ALT_COMMA "\eOl\0" 244 #define SHELL_VT100_NUMERIC_ENTER ASCII_CR 245 #define SHELL_VT100_NUMERIC_PERIOD ".\0" 246 #define SHELL_VT100_ALT_PERIOD "\eOn\0" 247 #define SHELL_VT100_ALT_ENTER "\eOM\0" 248 249 #endif /* SHELL_VT100_H__ */ 250