home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / CONIO.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  9KB  |  317 lines

  1. /*  conio.h
  2.  
  3.     Direct MSDOS console input/output.
  4. */
  5.  
  6. /*
  7.  *      C/C++ Run Time Library - Version 8.0
  8.  *
  9.  *      Copyright (c) 1987, 1997 by Borland International
  10.  *      All Rights Reserved.
  11.  *
  12.  */
  13. /* $Revision:   8.1  $ */
  14.  
  15. #if !defined(__CONIO_H)
  16. #define __CONIO_H
  17.  
  18. #if !defined(___DEFS_H)
  19. #include <_defs.h>
  20. #endif
  21.  
  22.  
  23. #if !defined(RC_INVOKED)
  24.  
  25. #if defined(__STDC__)
  26. #pragma warn -nak
  27. #endif
  28.  
  29. #pragma pack(push, 1)
  30.  
  31. #endif  /* !RC_INVOKED */
  32.  
  33.  
  34. #define _NOCURSOR      0
  35. #define _SOLIDCURSOR   1
  36. #define _NORMALCURSOR  2
  37.  
  38. struct text_info {
  39.     unsigned char winleft;
  40.     unsigned char wintop;
  41.     unsigned char winright;
  42.     unsigned char winbottom;
  43.     unsigned char attribute;
  44.     unsigned char normattr;
  45.     unsigned char currmode;
  46.     unsigned char screenheight;
  47.     unsigned char screenwidth;
  48.     unsigned char curx;
  49.     unsigned char cury;
  50. };
  51.  
  52. #if !defined(__COLORS)
  53. #define __COLORS
  54.  
  55. enum COLORS {
  56.     BLACK,          /* dark colors */
  57.     BLUE,
  58.     GREEN,
  59.     CYAN,
  60.     RED,
  61.     MAGENTA,
  62.     BROWN,
  63.     LIGHTGRAY,
  64.     DARKGRAY,       /* light colors */
  65.     LIGHTBLUE,
  66.     LIGHTGREEN,
  67.     LIGHTCYAN,
  68.     LIGHTRED,
  69.     LIGHTMAGENTA,
  70.     YELLOW,
  71.     WHITE
  72. };
  73. #endif
  74.  
  75. #define BLINK       128 /* blink bit */
  76.  
  77. #if !defined(__FLAT__)
  78.  
  79. enum text_modes {  LASTMODE=-1,
  80.                    BW40=0,
  81.                    C40,
  82.                    BW80,
  83.                    C80,
  84.                    MONO=7,
  85.                    C4350=64 };
  86.  
  87. #if defined(__DPMI16__) || !defined(_Windows)
  88.  
  89. #if !defined(__STDC__)  /*  NON-ANSI  */
  90. #define directvideo  _directvideo
  91. #endif
  92.  
  93. extern   int _RTLENTRY _directvideo;
  94.  
  95. #endif  /* __DPMI16__ || !_Windows */
  96.  
  97. extern   int _RTLENTRY _wscroll;
  98.  
  99. #ifdef __cplusplus
  100. extern "C" {
  101. #endif
  102.  
  103. void        _RTLENTRY clreol( void );
  104. void        _RTLENTRY clrscr( void );
  105. void        _RTLENTRY gotoxy( int __x, int __y );
  106. int         _RTLENTRY getch( void );
  107. int         _RTLENTRY getche( void );
  108. int         _RTLENTRY kbhit( void );
  109. int         _RTLENTRY putch( int __c );
  110. int         _RTLENTRY wherex( void );
  111. int         _RTLENTRY wherey( void );
  112.  
  113. #ifndef _PORT_DEFS
  114. unsigned char   _RTLENTRY inportb( unsigned __portid );
  115. unsigned        _RTLENTRY inport ( unsigned __portid );
  116. int             _RTLENTRY inp( unsigned __portid );
  117. unsigned        _RTLENTRY inpw( unsigned __portid );
  118. void            _RTLENTRY outportb( unsigned __portid, unsigned char __value );
  119. void            _RTLENTRY outport ( unsigned __portid, unsigned __value );
  120. int             _RTLENTRY outp( unsigned __portid, int __value );
  121. unsigned        _RTLENTRY outpw( unsigned __portid, unsigned __value );
  122. #endif  /* !_PORT_DEFS */
  123.  
  124. #if defined(__DPMI16__) || !defined(_Windows)
  125.  
  126. void        _RTLENTRY delline( void );
  127. int         _RTLENTRY gettext( int __left, int __top,
  128.                            int __right, int __bottom,
  129.                            void *__destin);
  130. void        _RTLENTRY gettextinfo (struct text_info *__r );
  131. void        _RTLENTRY highvideo( void );
  132. void        _RTLENTRY insline( void );
  133. void        _RTLENTRY lowvideo( void );
  134. int         _RTLENTRY movetext( int __left, int __top,
  135.                             int __right, int __bottom,
  136.                             int __destleft, int __desttop );
  137. void        _RTLENTRY normvideo( void );
  138. int         _RTLENTRY puttext( int __left, int __top,
  139.                            int __right, int __bottom,
  140.                            void *__source );
  141. void        _RTLENTRY textattr( int __newattr );
  142. void        _RTLENTRY textbackground( int __newcolor );
  143. void        _RTLENTRY textcolor( int __newcolor );
  144. void        _RTLENTRY textmode( int __newmode );
  145. void        _RTLENTRY window( int __left, int __top, int __right, int __bottom);
  146.  
  147. void        _RTLENTRY _setcursortype( int __cur_t );
  148. char *      _RTLENTRY cgets( char *__str );
  149. int         _RTLENTRY cprintf( const char *__format, ... );
  150. int         _RTLENTRY cputs( const char *__str );
  151. int         _RTLENTRY cscanf( const char *__format, ... );
  152. char *      _RTLENTRY getpass( const char *__prompt );
  153. int         _RTLENTRY ungetch( int __ch );
  154.  
  155. #endif /* __DPMI16__ || !_Windows */
  156.  
  157. #ifndef _PORT_DEFS
  158. #define _PORT_DEFS
  159.  
  160.     /* These are in-line functions.  These prototypes just clean up
  161.        some syntax checks and code generation.
  162.      */
  163. unsigned char   _RTLENTRY  __inportb__ (unsigned __portid);
  164. unsigned        _RTLENTRY  __inportw__ (unsigned __portid);
  165. unsigned char   _RTLENTRY  __outportb__(unsigned __portid, unsigned char __value);
  166. unsigned        _RTLENTRY  __outportw__(unsigned __portid, unsigned __value);
  167.  
  168. #define inportb(__portid)           __inportb__(__portid)
  169. #define outportb(__portid, __value) ((void) __outportb__(__portid, __value))
  170. #define inport(__portid)            __inportw__(__portid)
  171. #define outport(__portid, __value)  ((void) __outportw__(__portid, __value))
  172.  
  173. /* MSC-compatible macros for port I/O */
  174. #define inp(__portid)               __inportb__ (__portid)
  175. #define outp(__portid, __value)     __outportb__(__portid, (unsigned char)(__value))
  176. #define inpw(__portid)              __inportw__ (__portid)
  177. #define outpw(__portid, __value)    __outportw__(__portid, __value)
  178.  
  179. #endif  /* _PORT_DEFS */
  180.  
  181. #ifdef __cplusplus
  182. }
  183. #endif
  184.  
  185. #else  /* __FLAT__ */
  186.  
  187. enum text_modes
  188. {
  189.     /* DOS-compatible modes */
  190.  
  191.     LASTMODE = -1,
  192.     BW40     = 0,
  193.     C40,
  194.     BW80,
  195.     C80,
  196.     MONO     = 7,
  197.     C4350    = 64,
  198.  
  199.     /* New Color modes */
  200.  
  201.     C40X14   = 8,
  202.     C40X21,
  203.     C40X28,
  204.     C40X43,
  205.     C40X50,
  206.     C40X60,
  207.  
  208.     C80X14,
  209.     C80X21,
  210.     C80X28,
  211.     C80X43,
  212.     C80X50,
  213.     C80X60,
  214.  
  215.     /* New Black & White modes */
  216.  
  217.     BW40X14,
  218.     BW40X21,
  219.     BW40X28,
  220.     BW40X43,
  221.     BW40X50,
  222.     BW40X60,
  223.  
  224.     BW80X14,
  225.     BW80X21,
  226.     BW80X28,
  227.     BW80X43,
  228.     BW80X50,
  229.     BW80X60,
  230.  
  231.     /* New Monochrome modes */
  232.  
  233.     MONO14,             /* Invalid VGA mode */
  234.     MONO21,
  235.     MONO28,
  236.     MONO43,
  237.     MONO50,
  238.     MONO60,
  239.  
  240.     _ORIGMODE = 65      /* original mode at program startup */
  241. };
  242.  
  243.  
  244. #define PASS_MAX    8   /* max. no. of chars returned by getpass */
  245.  
  246. #if !defined(__STDC__)  /*  NON-ANSI  */
  247. #define directvideo  _directvideo
  248. #define _getch       getch             /* for MSC compatibility */
  249. #endif
  250.  
  251. extern   int _RTLENTRY _EXPDATA _directvideo;
  252.  
  253. extern   int _RTLENTRY _EXPDATA _wscroll;
  254.  
  255. #ifdef __cplusplus
  256. extern "C" {
  257. #endif
  258.  
  259. void        _RTLENTRY _EXPFUNC clreol( void );
  260. void        _RTLENTRY _EXPFUNC clrscr( void );
  261. void        _RTLENTRY _EXPFUNC delline( void );
  262. int         _RTLENTRY _EXPFUNC gettext( int __left, int __top,
  263.                             int __right, int __bottom,
  264.                             void *__destin);
  265. void        _RTLENTRY _EXPFUNC gettextinfo (struct text_info *__r );
  266. void        _RTLENTRY _EXPFUNC gotoxy( int __x, int __y );
  267. void        _RTLENTRY _EXPFUNC highvideo( void );
  268. void        _RTLENTRY _EXPFUNC insline( void );
  269. void        _RTLENTRY _EXPFUNC lowvideo( void );
  270. int         _RTLENTRY _EXPFUNC movetext( int __left, int __top,
  271.                              int __right, int __bottom,
  272.                              int __destleft, int __desttop );
  273. void        _RTLENTRY _EXPFUNC normvideo( void );
  274. int         _RTLENTRY _EXPFUNC puttext( int __left, int __top,
  275.                             int __right, int __bottom,
  276.                             void *__source );
  277. void        _RTLENTRY _EXPFUNC textattr( int __newattr );
  278. void        _RTLENTRY _EXPFUNC textbackground( int __newcolor );
  279. void        _RTLENTRY _EXPFUNC textcolor( int __newcolor );
  280. void        _RTLENTRY _EXPFUNC textmode( int __newmode );
  281. void        _RTLENTRY _EXPFUNC window( int __left, int __top, int __right, int __bottom);
  282.  
  283. void        _RTLENTRY _EXPFUNC _setcursortype( int __cur_t );
  284. char *      _RTLENTRY _EXPFUNC cgets( char *__str );
  285. int         _RTLENTRY _EXPFUNC cprintf( const char *__format, ... );
  286. int         _RTLENTRY _EXPFUNC cputs( const char *__str );
  287. int         _RTLENTRY _EXPFUNC cscanf( const char *__format, ... );
  288. int         _RTLENTRY _EXPFUNC getch( void );
  289. int         _RTLENTRY _EXPFUNC getche( void );
  290. char *      _RTLENTRY _EXPFUNC getpass( const char *__prompt );
  291. int         _RTLENTRY _EXPFUNC kbhit( void );
  292. int         _RTLENTRY _EXPFUNC putch( int __c );
  293. int         _RTLENTRY _EXPFUNC ungetch( int __ch );
  294. int         _RTLENTRY _EXPFUNC wherex( void );
  295. int         _RTLENTRY _EXPFUNC wherey( void );
  296.  
  297. #ifdef __cplusplus
  298. }
  299. #endif
  300.  
  301. #endif  /* __FLAT__  */
  302.  
  303.  
  304. #if !defined(RC_INVOKED)
  305.  
  306. /* restore default packing */
  307. #pragma pack(pop)
  308.  
  309. #if defined(__STDC__)
  310. #pragma warn .nak
  311. #endif
  312.  
  313. #endif  /* !RC_INVOKED */
  314.  
  315.  
  316. #endif  /* __CONIO_H */
  317.