home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 388_01 / curses / fbios.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-07  |  2.3 KB  |  124 lines

  1. /*
  2.  * fbios.h
  3.  *
  4.  * Stdscr Curses for PC Class Machines.
  5.  *
  6.  * Copyright 1990, 1993 by Anthony Howe.  All rights reserved.  No warranty.
  7.  */
  8.  
  9. #ifndef fbios_h
  10. #define fbios_h    1
  11.  
  12. #include <dos.h>
  13.  
  14. #ifndef _
  15. #ifdef __STDC__
  16. #define _(x)    x
  17. #else
  18. #define _(x)    ()
  19. #endif
  20. #endif
  21.  
  22. #define SCREEN_HEIGHT    25
  23.  
  24. typedef unsigned short chtype;
  25.  
  26. typedef struct {
  27.     unsigned char chr;
  28.     unsigned char attr;
  29. } attrchar;
  30.  
  31. typedef union {
  32.     chtype c;
  33.     attrchar a;
  34. } CHTYPE;
  35.  
  36. typedef struct {
  37.     unsigned char col;
  38.     unsigned char row;
  39. } rowcol;
  40.  
  41. typedef struct {
  42.     char end;
  43.     char start;
  44. } shape;
  45.  
  46. typedef enum {
  47.     A_BLACK,
  48.     A_BLUE,
  49.     A_GREEN,
  50.     A_CYAN,
  51.     A_RED,
  52.     A_MAGENTA,
  53.     A_BROWN,
  54.     A_WHITE,
  55.     A_GREY,
  56.     A_LT_BLUE,
  57.     A_LT_GREEN,
  58.     A_LT_CYAN,
  59.     A_LT_RED,
  60.     A_LT_MAGENTA,
  61.     A_YELLOW,
  62.     A_BRIGHT_WHITE,
  63.     A_BG_BLACK,
  64.     A_BG_BLUE,
  65.     A_BG_GREEN,
  66.     A_BG_CYAN,
  67.     A_BG_RED,
  68.     A_BG_MAGENTA,
  69.     A_BG_BROWN,
  70.     A_BG_WHITE,
  71.     A_BG_GREY,
  72.     A_BG_LT_BLUE,
  73.     A_BG_LT_GREEN,
  74.     A_BG_LT_CYAN,
  75.     A_BG_LT_RED,
  76.     A_BG_LT_MAGENTA,
  77.     A_BG_YELLOW,
  78.     A_BG_BRIGHT_WHITE
  79. } COLOUR;
  80.  
  81. #define ATTR_BLINK    0x80
  82. #define ATTR_BRIGHT    0x08
  83. #define ATTR_UNDERLINE    0x01
  84.  
  85. #define STANDARD_SHIFT_MASK    0xf0
  86. #define INSERT_SHIFT        128
  87. #define    CAPS_SHIFT        64
  88. #define NUM_LOCK_SHIFT        32
  89. #define SCROLL_LOCK_SHIFT    16
  90. #define ALT_SHIFT        8
  91. #define CTRL_SHIFT        4
  92. #define LEFT_SHIFT        2
  93. #define RIGHT_SHIFT        1
  94.  
  95. typedef struct {
  96.     unsigned char ascii;
  97.     unsigned char extended;
  98. } ext_ascii;
  99.  
  100. typedef union {
  101.     unsigned short val;
  102.     ext_ascii key;
  103. } KEY;
  104.  
  105. extern void SetVideoMode _((int mode));
  106. extern void SetCursorShape _((int start_line, int end_line));
  107. extern void SetCursorPos _((int page, int row, int col));
  108. extern void ScrollUp _((int nlines, chtype attr, int row_ul, int col_ul, 
  109.             int row_br, int col_br));
  110. extern chtype GetChtype _((int page));
  111. extern void PutChtype _((int page, chtype ch));
  112. extern void PutChtypeN _((int page, chtype ch, int n));
  113. extern void PutChar _((int page, int ch));
  114. extern void PutCharN _((int page, int ch, int n));
  115. extern void AddChar _((int page, int ch));
  116. extern unsigned short GetCursorShape _((int page));
  117. extern int GetDisplayPage _((void));
  118. extern int GetVideoMode _((void));
  119. extern int GetScreenWidth _((void));
  120. extern int GetKey _((void));
  121.  
  122. #endif /* fbios_h */
  123.  
  124.