home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / c / bts310b5 / vfossil.h < prev    next >
C/C++ Source or Header  |  1992-04-19  |  9KB  |  212 lines

  1. #ifndef H_VFOSSIL
  2. #define H_VFOSSIL
  3. /*--------------------------------------------------------------------------*/
  4. /*                                                                          */
  5. /*                                                                          */
  6. /*      ------------         Bit-Bucket Software, Co.                       */
  7. /*      \ 10001101 /         Writers and Distributors of                    */
  8. /*       \ 011110 /          Freely Available<tm> Software.                 */
  9. /*        \ 1011 /                                                          */
  10. /*         ------                                                           */
  11. /*                                                                          */
  12. /*  (C) Copyright 1987-90, Bit Bucket Software Co., a Delaware Corporation. */
  13. /*                                                                          */
  14. /*                                                                          */
  15. /*             Video FOSSIL definitions used in BinkleyTerm                 */
  16. /*                                                                          */
  17. /*                                                                          */
  18. /*    For complete  details  of the licensing restrictions, please refer    */
  19. /*    to the License  agreement,  which  is published in its entirety in    */
  20. /*    the MAKEFILE and BT.C, and also contained in the file LICENSE.240.    */
  21. /*                                                                          */
  22. /*    USE  OF THIS FILE IS SUBJECT TO THE  RESTRICTIONS CONTAINED IN THE    */
  23. /*    BINKLEYTERM  LICENSING  AGREEMENT.  IF YOU DO NOT FIND THE TEXT OF    */
  24. /*    THIS  AGREEMENT IN ANY OF THE  AFOREMENTIONED FILES,  OR IF YOU DO    */
  25. /*    NOT HAVE THESE FILES,  YOU  SHOULD  IMMEDIATELY CONTACT BIT BUCKET    */
  26. /*    SOFTWARE CO.  AT ONE OF THE  ADDRESSES  LISTED BELOW.  IN NO EVENT    */
  27. /*    SHOULD YOU  PROCEED TO USE THIS FILE  WITHOUT HAVING  ACCEPTED THE    */
  28. /*    TERMS  OF  THE  BINKLEYTERM  LICENSING  AGREEMENT,  OR  SUCH OTHER    */
  29. /*    AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO.      */
  30. /*                                                                          */
  31. /*                                                                          */
  32. /* You can contact Bit Bucket Software Co. at any one of the following      */
  33. /* addresses:                                                               */
  34. /*                                                                          */
  35. /* Bit Bucket Software Co.        FidoNet  1:104/501, 1:132/491, 1:141/491  */
  36. /* P.O. Box 460398                AlterNet 7:491/0                          */
  37. /* Aurora, CO 80046               BBS-Net  86:2030/1                        */
  38. /*                                Internet f491.n132.z1.fidonet.org         */
  39. /*                                                                          */
  40. /* Please feel free to contact us at any time to share your comments about  */
  41. /* our software and/or licensing policies.                                  */
  42. /*                                                                          */
  43. /*--------------------------------------------------------------------------*/
  44.  
  45. #ifndef H_SBUF
  46. #include "sbuf.h"
  47. #endif
  48.  
  49.  
  50. #ifndef ATARIST
  51.  
  52. typedef struct {
  53.    int vfossil_size;
  54.    int vfossil_major;
  55.    int vfossil_revision;
  56.    int vfossil_highest;
  57. } VFOSSIL, *VFOSSILP;
  58.  
  59. #endif
  60.  
  61. #ifndef OS_2
  62.  
  63. typedef struct {
  64.    int   cur_start;
  65.    int   cur_end;
  66.    int   cur_wid;
  67.    int   cur_attr;
  68. } CURSOR, *CURSORP;
  69.  
  70. typedef CURSOR far *PVIOCURSORINFO;
  71.  
  72. typedef struct _VIOCONFIGINFO { /* vioin */
  73.     unsigned int  cb     ;
  74.     unsigned int  adapter;
  75.     unsigned int  display;
  76.     unsigned long    cbMemory;
  77. } VIOCONFIGINFO;
  78.  
  79. typedef VIOCONFIGINFO far *PVIOCONFIGINFO;
  80.  
  81. typedef struct _VIOMODEINFO {   /* viomi */
  82.     unsigned int cb;
  83.     unsigned char  fbType;
  84.     unsigned char  color;
  85.     unsigned int col;
  86.     unsigned int row;
  87.     unsigned int hres;
  88.     unsigned int vres;
  89.     unsigned char  fmt_ID;
  90.     unsigned char  attrib;
  91. } VIOMODEINFO;
  92.  
  93. typedef VIOMODEINFO far *PVIOMODEINFO;
  94.  
  95. #ifdef ATARIST
  96.  
  97. #include <linea.h>
  98.  
  99. #ifdef __TOS__
  100.  
  101. #undef DEFAULT
  102.  
  103. #define linea_ext Vdiesc
  104. #define linea_data Linea
  105.  
  106. #define fossil_wherex()  (Vdiesc->v_cur_xy[0])
  107. #define fossil_wherey()  (Vdiesc->v_cur_xy[1])
  108.  
  109. #endif
  110.  
  111. #ifdef LATTICE
  112.  
  113. extern LA_EXT *linea_ext;
  114. extern LA_DATA *linea_data;
  115.  
  116. #define fossil_wherex()  (linea_ext->ld_cur_xy[0])
  117. #define fossil_wherey()  (linea_ext->ld_cur_xy[1])
  118.  
  119. #endif
  120.  
  121. extern BOOLEAN nolinea;
  122. #ifdef BIOSDISPLAY
  123. extern BOOLEAN BIOSdisplay;
  124. #endif
  125. extern BOOLEAN UseColors;
  126.  
  127. void vfossil_init(void);    /* Intialise Video stuff */
  128. void vfossil_close(void);    /* Stop using the vfossil */
  129. void vfossil_cursor(int);    /* Show or hide the cursor */
  130. #define fossil_gotoxy(x,y) cprintf("\033Y%c%c",(char)y+' ',(char)x+' ')
  131.  
  132. #ifndef ATARIST
  133. #define fossil_ver()    (old_fossil = 0)
  134. #endif
  135.  
  136. #define wherex() fossil_wherex()
  137. #define wherey() fossil_wherey()
  138. #define gotoxy(x,y) fossil_gotoxy(x,y)
  139.  
  140. void blank_screen(void);    /* My own screen blanker */
  141. void unblank_screen(void);
  142.  
  143. void clear_screen(void);
  144. void clear_eol(void);
  145.  
  146. /* Only WrtCellStr is actually used */
  147.  
  148. void VioWrtCellStr(BYTEBUFP s, size_t len, int row, int col, int vhandle);
  149.  
  150.  
  151. #else
  152.  
  153.  
  154. struct vfossil_hooks {    /* VFossil calls structure */
  155.     unsigned int (pascal far *GetMode)(PVIOMODEINFO, unsigned int);
  156.     unsigned int (pascal far *SetMode)(PVIOMODEINFO, unsigned int);
  157.     unsigned int (pascal far *GetConfig)(unsigned int, PVIOCONFIGINFO, unsigned int);
  158.     unsigned int (pascal far *WrtTTY)(char far *, unsigned int, unsigned int);
  159.     unsigned int (pascal far *GetAnsi)(unsigned int far *, unsigned int);
  160.     unsigned int (pascal far *SetAnsi)(unsigned int, unsigned int);
  161.     unsigned int (pascal far *GetCurPos)(unsigned int far *, unsigned int far *, unsigned int);
  162.     unsigned int (pascal far *SetCurPos)(unsigned int, unsigned int, unsigned int);
  163.     unsigned int (pascal far *GetCurType)(PVIOCURSORINFO, unsigned int);
  164.     unsigned int (pascal far *SetCurType)(PVIOCURSORINFO, unsigned int);
  165.     unsigned int (pascal far *ScrollUp)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned char far *,    unsigned int);
  166.     unsigned int (pascal far *ScrollDn)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned char far *,    unsigned int);
  167.     unsigned int (pascal far *ReadCellStr)(char far *, unsigned int far *, unsigned int, unsigned int, unsigned int);
  168.     unsigned int (pascal far *ReadCharStr)(char far *, unsigned int far *, unsigned int, unsigned int, unsigned int);
  169.     unsigned int (pascal far *WrtCellStr)(unsigned int far *, unsigned int, unsigned int, unsigned int, unsigned int);
  170.     unsigned int (pascal far *WrtCharStr)(char far *, unsigned int, unsigned int, unsigned int, unsigned int);
  171.     unsigned int (pascal far *WrtCharStrAtt)(char far *, unsigned int, unsigned int, unsigned int, unsigned char far *, unsigned int);
  172.     unsigned int (pascal far *WrtNAttr)(unsigned char far *, unsigned int, unsigned int, unsigned int, unsigned int);
  173.     unsigned int (pascal far *WrtNCell)(unsigned int far *, unsigned int, unsigned int, unsigned int, unsigned int);
  174.     unsigned int (pascal far *WrtNChar)(char far *, unsigned int, unsigned int, unsigned int, unsigned int);
  175. };
  176.  
  177. /* Now for readability (and portability) ... */
  178. #define VioGetMode(a,b)            ((*vfossil_funcs.GetMode)(a,b))
  179. #define VioSetMode(a,b)            ((*vfossil_funcs.SetMode)(a,b))
  180. #define VioGetConfig(a,b,c)        (*vfossil_funcs.GetConfig)(a,b,c))
  181. #define VioWrtTTY(a,b,c)        ((*vfossil_funcs.WrtTTY)(a,b,c))
  182. #define VioGetANSI(a,b)            ((*vfossil_funcs.GetANSI)(a,b))
  183. #define VioSetANSI(a,b)            ((*vfossil_funcs.SetANSI)(a,b))
  184. #define VioGetCurPos(a,b,c)        ((*vfossil_funcs.GetCurPos)(a,b,c))
  185. #define VioSetCurPos(a,b,c)        ((*vfossil_funcs.SetCurPos)(a,b,c))
  186. #define VioGetCurType(a,b)        ((*vfossil_funcs.GetCurType)(a,b))
  187. #define VioSetCurType(a,b)        ((*vfossil_funcs.SetCurType)(a,b))
  188. #define VioScrollUp(a,b,c,d,e,f,g)    ((*vfossil_funcs.ScrollUp)(a,b,c,d,e,f,g))
  189. #define VioScrollDn(a,b,c,d,e,f,g)    ((*vfossil_funcs.ScrollDn)(a,b,c,d,e,f,g))
  190. #define VioReadCellStr(a,b,c,d,e)    ((*vfossil_funcs.ReadCellStr)(a,b,c,d,e))
  191. #define VioReadCharStr(a,b,c,d,e)    ((*vfossil_funcs.ReadCharStr)(a,b,c,d,e))
  192. #define VioWrtCellStr(a,b,c,d,e)    ((*vfossil_funcs.WrtCellStr)(a,b,c,d,e))
  193. #define VioWrtCharStr(a,b,c,d,e)    ((*vfossil_funcs.WrtCharStr)(a,b,c,d,e))
  194. #define VioWrtCharStrAtt(a,b,c,d,e,f)    ((*vfossil_funcs.WrtCharStrAtt)(a,b,c,d,e,f))
  195. #define VioWrtNAttr(a,b,c,d,e)        ((*vfossil_funcs.WrtNAttr)(a,b,c,d,e))
  196. #define VioWrtNCell(a,b,c,d,e)        ((*vfossil_funcs.WrtNCell)(a,b,c,d,e))
  197. #define VioWrtNChar(a,b,c,d,e)        ((*vfossil_funcs.WrtNChar)(a,b,c,d,e))
  198.  
  199. #endif /* ATARIST */
  200.  
  201. #else /* ifndef OS_2 */
  202.  
  203. #define INCL_SUB
  204. #define INCL_VIO
  205. #include <os2.h>
  206. #define CURSOR VIOCURSORINFO
  207. #define CURSORP PVIOCURSORINFO
  208.  
  209. #endif /* ifndef OS_2 */
  210.  
  211. #endif    /* H_VFOSSIL */
  212.