File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pimd / libite / conio.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 14 09:12:58 2017 UTC (7 years ago) by misho
Branches: pimd, MAIN
CVS tags: v2_3_2, HEAD
libite

    1: /* A conio.h like implementation for VTANSI displays.
    2:  *
    3:  * Copyright (c) 2009-2013  Joachim Nilsson <troglobit@gmail.com>
    4:  *
    5:  * Permission to use, copy, modify, and/or distribute this software for any
    6:  * purpose with or without fee is hereby granted, provided that the above
    7:  * copyright notice and this permission notice appear in all copies.
    8:  *
    9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   16:  */
   17: 
   18: #ifndef CONIO_H_
   19: #define CONIO_H_
   20: 
   21: #include <stdio.h>
   22: 
   23: /* Attributes */
   24: #define RESETATTR    0
   25: #define BRIGHT       1
   26: #define DIM          2
   27: #define UNDERSCORE   4
   28: #define BLINK        5           /* May not work on all displays. */
   29: #define REVERSE      7
   30: #define HIDDEN       8
   31: 
   32: /* Colors for text and background */
   33: #define BLACK        0x0
   34: #define RED          0x1
   35: #define GREEN        0x2
   36: #define BROWN        0x3
   37: #define BLUE         0x4
   38: #define MAGENTA      0x5
   39: #define CYAN         0x6
   40: #define LIGHTGREY    0x7
   41: 
   42: #define DARKGREY     0x10
   43: #define LIGHTRED     0x11
   44: #define LIGHTGREEN   0x12
   45: #define YELLOW       0x13
   46: #define LIGHTBLUE    0x14
   47: #define LIGHTMAGENTA 0x15
   48: #define LIGHTCYAN    0x16
   49: #define WHITE        0x17
   50: 
   51: /* Esc[2JEsc[1;1H             - Clear screen and move cursor to 1,1 (upper left) pos. */
   52: #define clrscr()              fputs ("\e[2J\e[1;1H", stdout)
   53: /* Esc[K                      - Erases from the current cursor position to the end of the current line. */
   54: #define clreol()              fputs ("\e[K", stdout)
   55: /* Esc[2K                     - Erases the entire current line. */
   56: #define delline()             fputs ("\e[2K", stdout)
   57: /* Esc[Line;ColumnH           - Moves the cursor to the specified position (coordinates) */
   58: #define gotoxy(x,y)           printf("\e[%d;%dH", y, x)
   59: /* Esc[?25l (lower case L)    - Hide Cursor */
   60: #define hidecursor()          fputs ("\e[?25l", stdout)
   61: /* Esc[?25h (lower case H)    - Show Cursor */
   62: #define showcursor()          fputs ("\e[?25h", stdout)
   63: 
   64: /* Esc[Value;...;Valuem       - Set Graphics Mode */
   65: #define __set_gm(attr,color,val)					\
   66: 	if (!color)							\
   67: 		printf("\e[%dm", attr);					\
   68: 	else								\
   69: 		printf("\e[%d;%dm", color & 0x10 ? 1 : 0, (color & 0xF) + val)
   70: #define textattr(attr)        __set_gm(attr, 0, 0)
   71: #define textcolor(color)      __set_gm(RESETATTR, color, 30)
   72: #define textbackground(color) __set_gm(RESETATTR, color, 40)
   73: 
   74: #endif /* CONIO_H_ */
   75: 
   76: /**
   77:  * Local Variables:
   78:  *  version-control: t
   79:  *  indent-tabs-mode: t
   80:  *  c-file-style: "linux"
   81:  * End:
   82:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>