cli_vt100.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. #ifndef NRF_CLI_VT100_H__
  2. #define NRF_CLI_VT100_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #define NRF_CLI_VT100_ASCII_ESC (0x1b)
  7. #define NRF_CLI_VT100_ASCII_DEL (0x7F)
  8. #define NRF_CLI_VT100_ASCII_BSPACE (0x08)
  9. #define NRF_CLI_VT100_ASCII_CTRL_A (0x1)
  10. #define NRF_CLI_VT100_ASCII_CTRL_C (0x03)
  11. #define NRF_CLI_VT100_ASCII_CTRL_E (0x5)
  12. #define NRF_CLI_VT100_ASCII_CTRL_L (0x0C)
  13. #define NRF_CLI_VT100_ASCII_CTRL_U (0x15)
  14. #define NRF_CLI_VT100_ASCII_CTRL_W (0x17)
  15. #define NRF_CLI_VT100_SETNL \
  16. { \
  17. NRF_CLI_VT100_ASCII_ESC, '[', '2', '0', 'h', '\0' \
  18. } /* Set new line mode */
  19. #define NRF_CLI_VT100_SETAPPL \
  20. { \
  21. NRF_CLI_VT100_ASCII_ESC, '[', '?', '1', 'h', '\0' \
  22. } /* Set cursor key to application */
  23. #define NRF_CLI_VT100_SETCOL_132 \
  24. { \
  25. NRF_CLI_VT100_ASCII_ESC, '[', '?', '3', 'h', '\0' \
  26. } /* Set number of columns to 132 */
  27. #define NRF_CLI_VT100_SETSMOOTH \
  28. { \
  29. NRF_CLI_VT100_ASCII_ESC, '[', '?', '4', 'h', '\0' \
  30. } /* Set smooth scrolling */
  31. #define NRF_CLI_VT100_SETREVSCRN \
  32. { \
  33. NRF_CLI_VT100_ASCII_ESC, '[', '?', '5', 'h', '\0' \
  34. } /* Set reverse video on screen */
  35. #define NRF_CLI_VT100_SETORGREL \
  36. { \
  37. NRF_CLI_VT100_ASCII_ESC, '[', '?', '6', 'h', '\0' \
  38. } /* Set origin to relative */
  39. #define NRF_CLI_VT100_SETWRAP_ON \
  40. { \
  41. NRF_CLI_VT100_ASCII_ESC, '[', '?', '7', 'h', '\0' \
  42. } /* Set auto-wrap mode */
  43. #define NRF_CLI_VT100_SETWRAP_OFF \
  44. { \
  45. NRF_CLI_VT100_ASCII_ESC, '[', '?', '7', 'l', '\0' \
  46. } /* Set auto-wrap mode */
  47. #define NRF_CLI_VT100_SETREP \
  48. { \
  49. NRF_CLI_VT100_ASCII_ESC, '[', '?', '8', 'h', '\0' \
  50. } /* Set auto-repeat mode */
  51. #define NRF_CLI_VT100_SETINTER \
  52. { \
  53. NRF_CLI_VT100_ASCII_ESC, '[', '?', '9', 'h', '\0' \
  54. } /* Set interlacing mode */
  55. #define NRF_CLI_VT100_SETLF \
  56. { \
  57. NRF_CLI_VT100_ASCII_ESC, '[', '2', '0', 'l', '\0' \
  58. } /* Set line feed mode */
  59. #define NRF_CLI_VT100_SETCURSOR \
  60. { \
  61. NRF_CLI_VT100_ASCII_ESC, '[', '?', '1', 'l', '\0' \
  62. } /* Set cursor key to cursor */
  63. #define NRF_CLI_VT100_SETVT52 \
  64. { \
  65. NRF_CLI_VT100_ASCII_ESC, '[', '?', '2', 'l', '\0' \
  66. } /* Set VT52 (versus ANSI) */
  67. #define NRF_CLI_VT100_SETCOL_80 \
  68. { \
  69. NRF_CLI_VT100_ASCII_ESC, '[', '?', '3', 'l', '\0' \
  70. } /* Set number of columns to 80 */
  71. #define NRF_CLI_VT100_SETJUMP \
  72. { \
  73. NRF_CLI_VT100_ASCII_ESC, '[', '?', '4', 'l', '\0' \
  74. } /* Set jump scrolling */
  75. #define NRF_CLI_VT100_SETNORMSCRN \
  76. { \
  77. NRF_CLI_VT100_ASCII_ESC, '[', '?', '5', 'l', '\0' \
  78. } /* Set normal video on screen */
  79. #define NRF_CLI_VT100_SETORGABS \
  80. { \
  81. NRF_CLI_VT100_ASCII_ESC, '[', '?', '6', 'l', '\0' \
  82. } /* Set origin to absolute */
  83. #define NRF_CLI_VT100_RESETWRAP \
  84. { \
  85. NRF_CLI_VT100_ASCII_ESC, '[', '?', '7', 'l', '\0' \
  86. } /* Reset auto-wrap mode */
  87. #define NRF_CLI_VT100_RESETREP \
  88. { \
  89. NRF_CLI_VT100_ASCII_ESC, '[', '?', '8', 'l', '\0' \
  90. } /* Reset auto-repeat mode */
  91. #define NRF_CLI_VT100_RESETINTER \
  92. { \
  93. NRF_CLI_VT100_ASCII_ESC, '[', '?', '9', 'l', '\0' \
  94. } /* Reset interlacing mode */
  95. #define NRF_CLI_VT100_ALTKEYPAD \
  96. { \
  97. NRF_CLI_VT100_ASCII_ESC, '=', '\0' \
  98. } /* Set alternate keypad mode */
  99. #define NRF_CLI_VT100_NUMKEYPAD \
  100. { \
  101. NRF_CLI_VT100_ASCII_ESC, '>', '\0' \
  102. } /* Set numeric keypad mode */
  103. #define NRF_CLI_VT100_SETUKG0 \
  104. { \
  105. NRF_CLI_VT100_ASCII_ESC, '(', 'A', '\0' \
  106. } /* Set United Kingdom G0 character set */
  107. #define NRF_CLI_VT100_SETUKG1 \
  108. { \
  109. NRF_CLI_VT100_ASCII_ESC, ')', 'A', '\0' \
  110. } /* Set United Kingdom G1 character set */
  111. #define NRF_CLI_VT100_SETUSG0 \
  112. { \
  113. NRF_CLI_VT100_ASCII_ESC, '(', 'B', '\0' \
  114. } /* Set United States G0 character set */
  115. #define NRF_CLI_VT100_SETUSG1 \
  116. { \
  117. NRF_CLI_VT100_ASCII_ESC, ')', 'B', '\0' \
  118. } /* Set United States G1 character set */
  119. #define NRF_CLI_VT100_SETSPECG0 \
  120. { \
  121. NRF_CLI_VT100_ASCII_ESC, '(', '0', '\0' \
  122. } /* Set G0 special chars. & line set */
  123. #define NRF_CLI_VT100_SETSPECG1 \
  124. { \
  125. NRF_CLI_VT100_ASCII_ESC, ')', '0', '\0' \
  126. } /* Set G1 special chars. & line set */
  127. #define NRF_CLI_VT100_SETALTG0 \
  128. { \
  129. NRF_CLI_VT100_ASCII_ESC, '(', '1', '\0' \
  130. } /* Set G0 alternate character ROM */
  131. #define NRF_CLI_VT100_SETALTG1 \
  132. { \
  133. NRF_CLI_VT100_ASCII_ESC, ')', '1', '\0' \
  134. } /* Set G1 alternate character ROM */
  135. #define NRF_CLI_VT100_SETALTSPECG0 \
  136. { \
  137. NRF_CLI_VT100_ASCII_ESC, '(', '2', '\0' \
  138. } /* Set G0 alt char ROM and spec. graphics */
  139. #define NRF_CLI_VT100_SETALTSPECG1 \
  140. { \
  141. NRF_CLI_VT100_ASCII_ESC, ')', '2', '\0' \
  142. } /* Set G1 alt char ROM and spec. graphics */
  143. #define NRF_CLI_VT100_SETSS2 \
  144. { \
  145. NRF_CLI_VT100_ASCII_ESC, 'N', '\0' \
  146. } /* Set single shift 2 */
  147. #define NRF_CLI_VT100_SETSS3 \
  148. { \
  149. NRF_CLI_VT100_ASCII_ESC, 'O', '\0' \
  150. } /* Set single shift 3 */
  151. #define NRF_CLI_VT100_MODESOFF \
  152. { \
  153. NRF_CLI_VT100_ASCII_ESC, '[', 'm', '\0' \
  154. } /* Turn off character attributes */
  155. #define NRF_CLI_VT100_MODESOFF_ \
  156. { \
  157. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'm', '\0' \
  158. } /* Turn off character attributes */
  159. #define NRF_CLI_VT100_BOLD \
  160. { \
  161. NRF_CLI_VT100_ASCII_ESC, '[', '1', 'm', '\0' \
  162. } /* Turn bold mode on */
  163. #define NRF_CLI_VT100_LOWINT \
  164. { \
  165. NRF_CLI_VT100_ASCII_ESC, '[', '2', 'm', '\0' \
  166. } /* Turn low intensity mode on */
  167. #define NRF_CLI_VT100_UNDERLINE \
  168. { \
  169. NRF_CLI_VT100_ASCII_ESC, '[', '4', 'm', '\0' \
  170. } /* Turn underline mode on */
  171. #define NRF_CLI_VT100_BLINK \
  172. { \
  173. NRF_CLI_VT100_ASCII_ESC, '[', '5', 'm', '\0' \
  174. } /* Turn blinking mode on */
  175. #define NRF_CLI_VT100_REVERSE \
  176. { \
  177. NRF_CLI_VT100_ASCII_ESC, '[', '7', 'm', '\0' \
  178. } /* Turn reverse video on */
  179. #define NRF_CLI_VT100_INVISIBLE \
  180. { \
  181. NRF_CLI_VT100_ASCII_ESC, '[', '8', 'm', '\0' \
  182. } /* Turn invisible text mode on */
  183. #define NRF_CLI_VT100_SETWIN(t, b) \
  184. { \
  185. NRF_CLI_VT100_ASCII_ESC, '[', (t), ';', (b), 'r', '\0' \
  186. } /* Set top and bottom line#s of a window */
  187. #define NRF_CLI_VT100_CURSORUP(n) \
  188. { \
  189. NRF_CLI_VT100_ASCII_ESC, '[', (n), 'A', '\0' \
  190. } /* Move cursor up n lines */
  191. #define NRF_CLI_VT100_CURSORDN(n) \
  192. { \
  193. NRF_CLI_VT100_ASCII_ESC, '[', (n), 'B', '\0' \
  194. } /* Move cursor down n lines */
  195. #define NRF_CLI_VT100_CURSORRT(n) \
  196. { \
  197. NRF_CLI_VT100_ASCII_ESC, '[', (n), 'C', '\0' \
  198. } /* Move cursor right n lines */
  199. #define NRF_CLI_VT100_CURSORLF(n) \
  200. { \
  201. NRF_CLI_VT100_ASCII_ESC, '[', (n), 'D', '\0' \
  202. } /* Move cursor left n lines */
  203. #define NRF_CLI_VT100_CURSORHOME \
  204. { \
  205. NRF_CLI_VT100_ASCII_ESC, '[', 'H', '\0' \
  206. } /* Move cursor to upper left corner */
  207. #define NRF_CLI_VT100_CURSORHOME_ \
  208. { \
  209. NRF_CLI_VT100_ASCII_ESC, '[', ';', 'H', '\0' \
  210. } /* Move cursor to upper left corner */
  211. #define NRF_CLI_VT100_CURSORPOS(v, h) \
  212. { \
  213. NRF_CLI_VT100_ASCII_ESC, '[', (v), ';', (h), 'H', '\0' \
  214. } /* Move cursor to screen location v,h */
  215. #define NRF_CLI_VT100_HVHOME \
  216. { \
  217. NRF_CLI_VT100_ASCII_ESC, '[', 'f', '\0' \
  218. } /* Move cursor to upper left corner */
  219. #define NRF_CLI_VT100_HVHOME_ \
  220. { \
  221. NRF_CLI_VT100_ASCII_ESC, '[', ';', 'f', '\0' \
  222. } /* Move cursor to upper left corner */
  223. #define NRF_CLI_VT100_HVPOS(v, h) \
  224. { \
  225. NRF_CLI_VT100_ASCII_ESC, '[', (v), ';', (h), 'f', '\0' \
  226. } /* Move cursor to screen location v,h */
  227. #define NRF_CLI_VT100_INDEX \
  228. { \
  229. NRF_CLI_VT100_ASCII_ESC, 'D', '\0' \
  230. } /* Move/scroll window up one line */
  231. #define NRF_CLI_VT100_REVINDEX \
  232. { \
  233. NRF_CLI_VT100_ASCII_ESC, 'M', '\0' \
  234. } /* Move/scroll window down one line */
  235. #define NRF_CLI_VT100_NEXTLINE \
  236. { \
  237. NRF_CLI_VT100_ASCII_ESC, 'E', '\0' \
  238. } /* Move to next line */
  239. #define NRF_CLI_VT100_SAVECURSOR \
  240. { \
  241. NRF_CLI_VT100_ASCII_ESC, '7', '\0' \
  242. } /* Save cursor position and attributes */
  243. #define NRF_CLI_VT100_RESTORECURSOR \
  244. { \
  245. NRF_CLI_VT100_ASCII_ESC, '8', '\0' \
  246. } /* Restore cursor position and attribute */
  247. #define NRF_CLI_VT100_TABSET \
  248. { \
  249. NRF_CLI_VT100_ASCII_ESC, 'H', '\0' \
  250. } /* Set a tab at the current column */
  251. #define NRF_CLI_VT100_TABCLR \
  252. { \
  253. NRF_CLI_VT100_ASCII_ESC, '[', 'g', '\0' \
  254. } /* Clear a tab at the current column */
  255. #define NRF_CLI_VT100_TABCLR_ \
  256. { \
  257. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'g', '\0' \
  258. } /* Clear a tab at the current column */
  259. #define NRF_CLI_VT100_TABCLRALL \
  260. { \
  261. NRF_CLI_VT100_ASCII_ESC, '[', '3', 'g', '\0' \
  262. } /* Clear all tabs */
  263. #define NRF_CLI_VT100_DHTOP \
  264. { \
  265. NRF_CLI_VT100_ASCII_ESC, '#', '3', '\0' \
  266. } /* Double-height letters, top half */
  267. #define NRF_CLI_VT100_DHBOT \
  268. { \
  269. NRF_CLI_VT100_ASCII_ESC, '#', '4', '\0' \
  270. } /* Double-height letters, bottom hal */
  271. #define NRF_CLI_VT100_SWSH \
  272. { \
  273. NRF_CLI_VT100_ASCII_ESC, '#', '5', '\0' \
  274. } /* Single width, single height letters */
  275. #define NRF_CLI_VT100_DWSH \
  276. { \
  277. NRF_CLI_VT100_ASCII_ESC, '#', '6', '\0' \
  278. } /* Double width, single height letters */
  279. #define NRF_CLI_VT100_CLEAREOL \
  280. { \
  281. NRF_CLI_VT100_ASCII_ESC, '[', 'K', '\0' \
  282. } /* Clear line from cursor right */
  283. #define NRF_CLI_VT100_CLEAREOL_ \
  284. { \
  285. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'K', '\0' \
  286. } /* Clear line from cursor right */
  287. #define NRF_CLI_VT100_CLEARBOL \
  288. { \
  289. NRF_CLI_VT100_ASCII_ESC, '[', '1', 'K', '\0' \
  290. } /* Clear line from cursor left */
  291. #define NRF_CLI_VT100_CLEARLINE \
  292. { \
  293. NRF_CLI_VT100_ASCII_ESC, '[', '2', 'K', '\0' \
  294. } /* Clear entire line */
  295. #define NRF_CLI_VT100_CLEAREOS \
  296. { \
  297. NRF_CLI_VT100_ASCII_ESC, '[', 'J', '\0' \
  298. } /* Clear screen from cursor down */
  299. #define NRF_CLI_VT100_CLEAREOS_ \
  300. { \
  301. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'J', '\0' \
  302. } /* Clear screen from cursor down */
  303. #define NRF_CLI_VT100_CLEARBOS \
  304. { \
  305. NRF_CLI_VT100_ASCII_ESC, '[', '1', 'J', '\0' \
  306. } /* Clear screen from cursor up */
  307. #define NRF_CLI_VT100_CLEARSCREEN \
  308. { \
  309. NRF_CLI_VT100_ASCII_ESC, '[', '2', 'J', '\0' \
  310. } /* Clear entire screen */
  311. #define NRF_CLI_VT100_DEVSTAT \
  312. { \
  313. NRF_CLI_VT100_ASCII_ESC, '5', 'n', '\0' \
  314. } /* Device status report */
  315. #define NRF_CLI_VT100_TERMOK \
  316. { \
  317. NRF_CLI_VT100_ASCII_ESC, '0', 'n', '\0' \
  318. } /* Response: terminal is OK */
  319. #define NRF_CLI_VT100_TERMNOK \
  320. { \
  321. NRF_CLI_VT100_ASCII_ESC, '3', 'n', '\0' \
  322. } /* Response: terminal is not OK */
  323. #define NRF_CLI_VT100_GETCURSOR \
  324. { \
  325. NRF_CLI_VT100_ASCII_ESC, '[', '6', 'n', '\0' \
  326. } /* Get cursor position */
  327. #define NRF_CLI_VT100_CURSORPOSAT \
  328. { \
  329. NRF_CLI_VT100_ASCII_ESC, (v), ';', (h), 'R', '\0' \
  330. } /* Response: cursor is at v,h */
  331. #define NRF_CLI_VT100_IDENT \
  332. { \
  333. NRF_CLI_VT100_ASCII_ESC, '[', 'c', '\0' \
  334. } /* Identify what terminal type */
  335. #define NRF_CLI_VT100_IDENT_ \
  336. { \
  337. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'c', '\0' \
  338. } /* Identify what terminal type */
  339. #define NRF_CLI_VT100_GETTYPE \
  340. { \
  341. NRF_CLI_VT100_ASCII_ESC, '[', '?', '1', ';', (n), '0', 'c', '\0'\
  342. } /* Response: terminal type code n */
  343. #define NRF_CLI_VT100_RESET \
  344. { \
  345. NRF_CLI_VT100_ASCII_ESC, 'c', '\0' \
  346. } /* Reset terminal to initial state */
  347. #define NRF_CLI_VT100_ALIGN \
  348. { \
  349. NRF_CLI_VT100_ASCII_ESC, '#', '8', '\0' \
  350. } /* Screen alignment display */
  351. #define NRF_CLI_VT100_TESTPU \
  352. { \
  353. NRF_CLI_VT100_ASCII_ESC, '[', '2', ';', '1', 'y', '\0' \
  354. } /* Confidence power up test */
  355. #define NRF_CLI_VT100_TESTLB \
  356. { \
  357. NRF_CLI_VT100_ASCII_ESC, '[', '2', ';', '2', 'y', '\0' \
  358. } /* Confidence loopback test */
  359. #define NRF_CLI_VT100_TESTPUREP \
  360. { \
  361. NRF_CLI_VT100_ASCII_ESC, '[', '2', ';', '9', 'y', '\0' \
  362. } /* Repeat power up test */
  363. #define NRF_CLI_VT100_TESTLBREP \
  364. { \
  365. NRF_CLI_VT100_ASCII_ESC, '[', '2', ';', '1', '0', 'y', '\0' \
  366. } /* Repeat loopback test */
  367. #define NRF_CLI_VT100_LEDSOFF \
  368. { \
  369. NRF_CLI_VT100_ASCII_ESC, '[', '0', 'q', '\0' \
  370. } /* Turn off all four leds */
  371. #define NRF_CLI_VT100_LED1 \
  372. { \
  373. NRF_CLI_VT100_ASCII_ESC, '[', '1', 'q', '\0' \
  374. } /* Turn on LED #1 */
  375. #define NRF_CLI_VT100_LED2 \
  376. { \
  377. NRF_CLI_VT100_ASCII_ESC, '[', '2', 'q', '\0' \
  378. } /* Turn on LED #2 */
  379. #define NRF_CLI_VT100_LED3 \
  380. { \
  381. NRF_CLI_VT100_ASCII_ESC, '[', '3', 'q', '\0' \
  382. } /* Turn on LED #3 */
  383. #define NRF_CLI_VT100_LED4 \
  384. { \
  385. NRF_CLI_VT100_ASCII_ESC, '[', '4', 'q', '\0' \
  386. } /* Turn on LED #4 */
  387. /* Function Keys */
  388. #define NRF_CLI_VT100_PF1 \
  389. { \
  390. NRF_CLI_VT100_ASCII_ESC, 'O', 'P', '\0' \
  391. }
  392. #define NRF_CLI_VT100_PF2 \
  393. { \
  394. NRF_CLI_VT100_ASCII_ESC, 'O', 'Q', '\0' \
  395. }
  396. #define NRF_CLI_VT100_PF3 \
  397. { \
  398. NRF_CLI_VT100_ASCII_ESC, 'O', 'R', '\0' \
  399. }
  400. #define NRF_CLI_VT100_PF4 \
  401. { \
  402. NRF_CLI_VT100_ASCII_ESC, 'O', 'S', '\0' \
  403. }
  404. /* Arrow keys */
  405. #define NRF_CLI_VT100_UP_RESET \
  406. { \
  407. NRF_CLI_VT100_ASCII_ESC, 'A', '\0' \
  408. }
  409. #define NRF_CLI_VT100_UP_SET \
  410. { \
  411. NRF_CLI_VT100_ASCII_ESC, 'O', 'A', '\0' \
  412. }
  413. #define NRF_CLI_VT100_DOWN_RESET \
  414. { \
  415. NRF_CLI_VT100_ASCII_ESC, 'B', '\0' \
  416. }
  417. #define NRF_CLI_VT100_DOWN_SET \
  418. { \
  419. NRF_CLI_VT100_ASCII_ESC, 'O', 'B', '\0' \
  420. }
  421. #define NRF_CLI_VT100_RIGHT_RESET \
  422. { \
  423. NRF_CLI_VT100_ASCII_ESC, 'C', '\0' \
  424. }
  425. #define NRF_CLI_VT100_RIGHT_SET \
  426. { \
  427. NRF_CLI_VT100_ASCII_ESC, 'O', 'C', '\0' \
  428. }
  429. #define NRF_CLI_VT100_LEFT_RESET \
  430. { \
  431. NRF_CLI_VT100_ASCII_ESC, 'D', '\0' \
  432. }
  433. #define NRF_CLI_VT100_LEFT_SET \
  434. { \
  435. NRF_CLI_VT100_ASCII_ESC, 'O', 'D', '\0' \
  436. }
  437. /* Numeric Keypad Keys */
  438. #define NRF_CLI_VT100_NUMERIC_0 \
  439. { \
  440. '0', '\0' \
  441. }
  442. #define NRF_CLI_VT100_ALT_0 \
  443. { \
  444. NRF_CLI_VT100_ASCII_ESC, 'O', 'p', '\0' \
  445. }
  446. #define NRF_CLI_VT100_NUMERIC_1 \
  447. { \
  448. '1', '\0' \
  449. }
  450. #define NRF_CLI_VT100_ALT_1 \
  451. { \
  452. NRF_CLI_VT100_ASCII_ESC, 'O', 'q', '\0' \
  453. }
  454. #define NRF_CLI_VT100_NUMERIC_2 \
  455. { \
  456. '2', '\0' \
  457. }
  458. #define NRF_CLI_VT100_ALT_2 \
  459. { \
  460. NRF_CLI_VT100_ASCII_ESC, 'O', 'r', '\0' \
  461. }
  462. #define NRF_CLI_VT100_NUMERIC_3 \
  463. { \
  464. '3', '\0' \
  465. }
  466. #define NRF_CLI_VT100_ALT_3 \
  467. { \
  468. NRF_CLI_VT100_ASCII_ESC, 'O', 's', '\0' \
  469. }
  470. #define NRF_CLI_VT100_NUMERIC_4 \
  471. { \
  472. '4', '\0' \
  473. }
  474. #define NRF_CLI_VT100_ALT_4 \
  475. { \
  476. NRF_CLI_VT100_ASCII_ESC, 'O', 't', '\0' \
  477. }
  478. #define NRF_CLI_VT100_NUMERIC_5 \
  479. { \
  480. '5', '\0' \
  481. }
  482. #define NRF_CLI_VT100_ALT_5 \
  483. { \
  484. NRF_CLI_VT100_ASCII_ESC, 'O', 'u', '\0' \
  485. }
  486. #define NRF_CLI_VT100_NUMERIC_6 \
  487. { \
  488. '6', '\0' \
  489. }
  490. #define NRF_CLI_VT100_ALT_6 \
  491. { \
  492. NRF_CLI_VT100_ASCII_ESC, 'O', 'v', '\0' \
  493. }
  494. #define NRF_CLI_VT100_NUMERIC_7 \
  495. { \
  496. '7', '\0' \
  497. }
  498. #define NRF_CLI_VT100_ALT_7 \
  499. { \
  500. NRF_CLI_VT100_ASCII_ESC, 'O', 'w', '\0' \
  501. }
  502. #define NRF_CLI_VT100_NUMERIC_8 \
  503. { \
  504. '8', '\0' \
  505. }
  506. #define NRF_CLI_VT100_ALT_8 \
  507. { \
  508. NRF_CLI_VT100_ASCII_ESC, 'O', 'x', '\0' \
  509. }
  510. #define NRF_CLI_VT100_NUMERIC_9 \
  511. { \
  512. '9', '\0'
  513. #define NRF_CLI_VT100_ALT_9 \
  514. { \
  515. NRF_CLI_VT100_ASCII_ESC, 'O', 'y' \
  516. }
  517. #define NRF_CLI_VT100_NUMERIC_MINUS \
  518. { \
  519. '-', '\0' \
  520. }
  521. #define NRF_CLI_VT100_ALT_MINUS \
  522. { \
  523. NRF_CLI_VT100_ASCII_ESC, 'O', 'm', '\0' \
  524. }
  525. #define NRF_CLI_VT100_NUMERIC_COMMA \
  526. { \
  527. ',', '\0' \
  528. }
  529. #define NRF_CLI_VT100_ALT_COMMA \
  530. { \
  531. NRF_CLI_VT100_ASCII_ESC, 'O', 'l', '\0' \
  532. }
  533. #define NRF_CLI_VT100_NUMERIC_PERIOD \
  534. { \
  535. '.', '\0' \
  536. }
  537. #define NRF_CLI_VT100_ALT_PERIOD \
  538. { \
  539. NRF_CLI_VT100_ASCII_ESC, 'O', 'n', '\0' \
  540. }
  541. #define NRF_CLI_VT100_NUMERIC_ENTER \
  542. { \
  543. ASCII_CR \
  544. }
  545. #define NRF_CLI_VT100_ALT_ENTER \
  546. { \
  547. NRF_CLI_VT100_ASCII_ESC, 'O', 'M', '\0' \
  548. }
  549. #define NRF_CLI_VT100_COLOR(__col) \
  550. { \
  551. NRF_CLI_VT100_ASCII_ESC, '[', '1', ';', '3', '0' + (__col), 'm', '\0' \
  552. }
  553. #define NRF_CLI_VT100_BGCOLOR(__col) \
  554. { \
  555. NRF_CLI_VT100_ASCII_ESC, '[', '4', '0' + (__col), 'm', '\0' \
  556. }
  557. #ifdef __cplusplus
  558. }
  559. #endif
  560. #endif /* NRF_CLI_VT100_H__ */