/**************************************************************************** * * Console Output Library * * Copyright (C) 1996 SciTech Software * All rights reserved. * * Filename: $RCSfile: console.h $ * Version: $Revision: 1.0 $ * * Language: ANSI C * Environment: IBM PC 16/32 bit code * * Description: Header file for console manipulation module. This is a * small module for fast, compiler independant console * output routines. It has been modified to for use with * 32 bit flat model compilers and the code is being made * freely available for use in the POVRay Ray Tracer. * * Has also been completely re-written to only use direct * video output code, since there is not longer any need to * send any output via the BIOS these days. * * $Id: console.h 1.1 1995/09/16 10:58:30 kjb release $ * ****************************************************************************/ #ifndef __CONSOLE_H #define __CONSOLE_H #ifndef __DEBUG_H #include "debug.h" #endif /*--------------------- Macros and type definitions -----------------------*/ enum CONSOLE_COLORS { CON_BLACK, /* dark colors */ CON_BLUE, CON_GREEN, CON_CYAN, CON_RED, CON_MAGENTA, CON_BROWN, CON_LIGHTGRAY, CON_DARKGRAY, /* light colors */ CON_LIGHTBLUE, CON_LIGHTGREEN, CON_LIGHTCYAN, CON_LIGHTRED, CON_LIGHTMAGENTA, CON_YELLOW, CON_WHITE, }; #define CON_BLINK 128 /* Blink bit */ /* Predefined cursor types */ #define CON_CURSOR_NORMAL 1 #define CON_CURSOR_FULL 2 /* Scrolling directions */ #define CON_SCROLL_UP 1 #define CON_SCROLL_DOWN 2 #define CON_SCROLL_LEFT 3 #define CON_SCROLL_RIGHT 4 /* Macro to build attribute bytes */ #define CON_makeAttr(f,b) (char)( (((b) & 0x0F) << 4) | ((f) & 0x0F)) /*------------------------- Function Prototypes ---------------------------*/ #ifdef __cplusplus extern "C" { /* Use "C" linkage when in C++ mode */ #endif void _PUBAPI CON_init(void); void _PUBAPI CON_set25LineMode(void); bool _PUBAPI CON_set43LineMode(void); bool _PUBAPI CON_set50LineMode(void); void _PUBAPI CON_restoreMode(void); void _PUBAPI CON_setLineWrap(bool on); void _PUBAPI CON_printf(char *format, ...); void _PUBAPI CON_puts(char *str); void _PUBAPI CON_putc(int c); void _PUBAPI CON_writec(int x,int y,int attr,int c); void _PUBAPI CON_write(int x,int y,int attr,char *str); void _PUBAPI CON_clreol(void); void _PUBAPI CON_clrscr(void); void _PUBAPI CON_gotoxy(int x,int y); int _PUBAPI CON_wherex(void); int _PUBAPI CON_wherey(void); void _PUBAPI CON_delline(void); void _PUBAPI CON_insline(void); void _PUBAPI CON_moveText(int left,int top,int right,int bottom,int destleft,int desttop); #define CON_bufSize(width,height) ((width) * (height) * 2) void _PUBAPI CON_saveText(int left,int top,int right,int bottom,void *dest); void _PUBAPI CON_restoreText(int left,int top,int right,int bottom,void *source); void _PUBAPI CON_scroll(int direction,int amt); void _PUBAPI CON_fillText(int left,int top,int right,int bottom,int attr,int ch); void _PUBAPI CON_fillAttr(int left,int top,int right,int bottom,int attr); void _PUBAPI CON_setWindow(int left,int top,int right,int bottom); void _PUBAPI CON_getWindow(int *left,int *top,int *right,int *bottom); int _PUBAPI CON_maxx(void); int _PUBAPI CON_maxy(void); int _PUBAPI CON_getAttr(void); void _PUBAPI CON_setAttr(int attr); void _PUBAPI CON_setBackground(int attr,int ch); void _PUBAPI CON_getBackground(int *attr,int *ch); void _PUBAPI CON_setBackColor(int newcolor); void _PUBAPI CON_setForeColor(int newcolor); void _PUBAPI CON_setCursor(int type); void _PUBAPI CON_cursorOff(void); void _PUBAPI CON_restoreCursor(int scans); int _PUBAPI CON_getCursor(void); void _PUBAPI CON_setActivePage(int page); int _PUBAPI CON_getActivePage(void); void _PUBAPI CON_setVisualPage(int page); int _PUBAPI CON_getVisualPage(void); bool _PUBAPI CON_isMonoMode(void); int _PUBAPI CON_screenWidth(void); int _PUBAPI CON_screenHeight(void); #ifdef __cplusplus } /* End of "C" linkage for C++ */ #endif #endif /* __CONSOLE_H */