int directvideo;
WINDOW *conio_scr;
-#ifdef SERGEEV
/* Some internals... */
static int colortab(int a) /* convert LINUX Color code to DOS-standard */
{
}
return COLOR_BLACK;
}
-#endif /* SERGEEV */
static void docolor (int color) /* Set DOS-like text mode colors */
{
wattron(conio_scr,COLOR_PAIR(1+(color&7)+((color&112)>>1)));
}
-#ifdef SERGEEV
/* Call this before any call to linux conio - except the port functions ! */
-void __attribute__((constructor)) initconio (void) /* This is needed, because ncurses needs to be initialized */
+void initconio (void)
{
int x,y;
short pair;
textcolor(7);
textbackground(0);
}
-#endif /* SERGEEV */
/* Call this on exiting your program */
void doneconio (void)
}
void clreol (void)
+/* clear to end of line -- can be a no-op in tty mode */
{
- wclrtoeol(conio_scr);
- wrefresh(conio_scr);
+ if (conio_scr) {
+ wclrtoeol(conio_scr);
+ wrefresh(conio_scr);
+ }
}
void clrscr (void)
+/* clear screen -- can be a no-op in tty mode */
{
- wclear(conio_scr);
- wmove(conio_scr,0,0);
- wrefresh(conio_scr);
+ if (conio_scr) {
+ wclear(conio_scr);
+ wmove(conio_scr,0,0);
+ wrefresh(conio_scr);
+ }
}
int cprintf (char *format, ... )
va_start(argp,format);
vsprintf(buffer,format,argp);
va_end(argp);
- i=waddstr(conio_scr,buffer);
- wrefresh(conio_scr);
+
+ if (conio_scr) {
+ i=waddstr(conio_scr,buffer);
+ wrefresh(conio_scr);
+ } else
+ i=printf(buffer);
return(i);
}
}
void gotoxy (int x, int y)
+/* address cursor -- OK for this to be a no-op in TTY mode */
{
- y--;
- x--;
- wmove(conio_scr,y,x);
- wrefresh(conio_scr);
+ if (conio_scr) {
+ y--;
+ x--;
+ wmove(conio_scr,y,x);
+ wrefresh(conio_scr);
+ }
}
void highvideo (void)
{
- textcolor(15); /* White */
- textbackground(0); /* Black */
+ if (conio_scr) {
+ textcolor(15); /* White */
+ textbackground(0); /* Black */
+ }
}
void insline (void)
void textcolor (int color)
{
-#ifdef SERGEEV
- fgc=color;
- color=(bgc*16)+fgc;
- docolor(color);
-#endif /* SERGEEV */
+ if (conio_scr) {
+ fgc=color;
+ color=(bgc*16)+fgc;
+ docolor(color);
+ }
}
void textmode (int mode)
int wherex (void)
{
- int y;
- int x;
- getyx(conio_scr,y,x);
- x++;
- return(x);
+ if (conio_scr) {
+ int y;
+ int x;
+ getyx(conio_scr,y,x);
+ x++;
+ return(x);
+ }
+ return (0);
}
int wherey (void)
{
- int y;
- int x;
- getyx(conio_scr,y,x);
- y++;
- return(y);
+ if (conio_scr) {
+ int y;
+ int x;
+ getyx(conio_scr,y,x);
+ y++;
+ return(y);
+ }
+ return (0);
}
void window (int left,int top,int right,int bottom)