home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / VOGLE / DRIVERS / IBMPC / EGA.C < prev    next >
C/C++ Source or Header  |  2000-02-11  |  1KB  |  93 lines

  1. #include    "vogle.h"
  2.  
  3. #define    E_PIX_ASPECT    1.3
  4.  
  5. static    int    old_mode;
  6. extern    unsigned    int    _buffer_segment;
  7. extern    unsigned    int    _buffer_offset;
  8.  
  9. extern    int
  10.         vega_backbuf(),
  11.         vega_char(),
  12.         vega_clear(),
  13.         vega_color(),
  14.         vega_draw(),
  15.         vega_setpal(),
  16.         pc_fill(),
  17.         vega_font(),
  18.         vega_frontbuf(),
  19.         pc_getkey(),
  20.         pc_checkkey(),
  21.         pc_locator(),
  22.         vega_string(),
  23.         vega_swapbuf(),
  24.         setmode();
  25.  
  26. ega_init()
  27. {
  28.     old_mode = setmode(16);
  29.     vdevice.sizeX = 349 * E_PIX_ASPECT;
  30.     vdevice.sizeY = 349;
  31.     vdevice.sizeSx = 640;
  32.     vdevice.sizeSy = 349;
  33.     vdevice.depth = 4;
  34.     _buffer_segment = (unsigned) 0xA000;
  35.     _buffer_offset = 0;
  36.     pc_locinit(vdevice.sizeSx, vdevice.sizeSy);
  37.     zsetup();
  38.     vega_setpal();
  39.     return (1);
  40. }
  41.  
  42. /*
  43.  * ega_exit
  44.  *
  45.  *    Sets the display back to text mode.
  46.  */
  47. ega_exit()
  48. {
  49.     (void)setmode(old_mode);
  50.     return (1);
  51. }
  52.  
  53. static    int
  54. noop()
  55. {
  56.     return (-1);
  57. }
  58.  
  59. static DevEntry egadev = {
  60.     "ega",
  61.     "large",
  62.     "small",
  63.     vega_backbuf,
  64.     vega_char,
  65.     pc_checkkey,
  66.     vega_clear,
  67.     vega_color,
  68.     vega_draw,
  69.     ega_exit,
  70.     pc_fill,
  71.     vega_font,
  72.     vega_frontbuf,
  73.     pc_getkey,
  74.     ega_init,
  75.     pc_locator,
  76.     noop,
  77.     noop,
  78.     vega_string,
  79.     vega_swapbuf,
  80.     noop
  81. };
  82.  
  83. /*
  84.  * _ega_devcpy
  85.  *
  86.  *    copy the pc device into vdevice.dev.
  87.  */
  88. _ega_devcpy()
  89. {
  90.     vdevice.dev = egadev;
  91. }
  92.  
  93.