home *** CD-ROM | disk | FTP | other *** search
/ MS DOS Archives 1 / MS-DOS_Archives_Volume_One_Walnut_Creek.iso / msdos / graphics / grafxlib.arc / GRAFSYS.H < prev    next >
C/C++ Source or Header  |  1987-08-31  |  2KB  |  68 lines

  1. /*
  2.  * grafix --- grafsys.h
  3.  *
  4.  * definitions for communication between graf.c and drivers
  5.  *
  6.  * Written 4/87 by Scott Snyder (ssnyder@romeo.caltech.edu or @citromeo.bitnet)
  7.  *
  8.  */
  9.  
  10. /*
  11.  * the assembly routines assume that all the global data is in the default
  12.  *  data segment. in MSC's large (& compact) model, however, each module
  13.  *  gets its own data segment --- except stuff declared near which goes
  14.  *  into the default segment. TC, however, doesn't allow near, etc. to
  15.  *  modify static data. but TC also puts all static data into one segment
  16.  *  in all models except huge. so we get lucky this time!
  17.  */
  18.  
  19. #if defined(__TURBOC__)
  20. # define NEAR
  21. #else
  22. # define NEAR near
  23. #endif
  24.  
  25. /* display type definitions */
  26.  
  27. #define EN 1
  28. #define CD 2
  29. #define MO 3
  30.  
  31. /* graphics mode definitions */
  32.  
  33. #define CGA_640 1
  34. #define CGA_320 2
  35.  
  36. typedef unsigned char g_obj;
  37.  
  38. /* physbuf = area that's being displayed;
  39.    virtbuf = other area;
  40.    drawbuf = area that's being drawn on
  41. */
  42.  
  43. extern g_obj far * NEAR g_drawbuf; /* graphics drawing buffer */
  44. extern g_obj far * NEAR g_physbuf; /* addr. of physical screen buffer */
  45. extern g_obj far * NEAR g_virtbuf; /* addr. of virtual buffer */
  46. extern unsigned NEAR g_colormax; /* maximum color value     */
  47. extern unsigned NEAR g_xsize, NEAR g_ysize; /* physical size of screen */
  48. extern unsigned NEAR g_xchsize, NEAR g_ychsize; /* size of screen in chars */
  49. extern unsigned NEAR g_xor;     /* xor mode flag */
  50. extern unsigned NEAR g_bufflg;    /* buffered mode flag */
  51. extern int NEAR g_xcliplo, NEAR g_xcliphi; /* clipping boundaries */
  52. extern int NEAR g_ycliplo, NEAR g_ycliphi;
  53. extern float NEAR g_aspect;    /* aspect ratio for circle drawing */
  54. extern unsigned NEAR g_pages;    /* number of pages available       */
  55. extern unsigned NEAR g_curpage;    /* page currently visible       */
  56. extern unsigned NEAR g_display;    /* display type                   */
  57.  
  58. /* utility functions */
  59.  
  60. extern g_fmemset(g_obj far *, g_obj, unsigned);
  61. extern g_fmemcpy(g_obj far *, g_obj far *, unsigned);
  62. extern unsigned g_bufseg(void);
  63.  
  64. /* driver functions */
  65.  
  66. #include "cga.h"
  67. #include "ega.h"
  68.