home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / server / ddx / x386 / vga / vgaBank.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-02  |  3.4 KB  |  90 lines

  1. /*
  2.  * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software and its
  5.  * documentation for any purpose is hereby granted without fee, provided that
  6.  * the above copyright notice appear in all copies and that both that
  7.  * copyright notice and this permission notice appear in supporting
  8.  * documentation, and that the name of Thomas Roell not be used in
  9.  * advertising or publicity pertaining to distribution of the software without
  10.  * specific, written prior permission.  Thomas Roell makes no representations
  11.  * about the suitability of this software for any purpose.  It is provided
  12.  * "as is" without express or implied warranty.
  13.  *
  14.  * THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  15.  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  16.  * EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  17.  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  18.  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  19.  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  20.  * PERFORMANCE OF THIS SOFTWARE.
  21.  *
  22.  * Author:  Thomas Roell, roell@informatik.tu-muenchen.de
  23.  *
  24.  * $Header: /proj/X11/mit/server/ddx/x386/vga/RCS/vgaBank.h,v 1.1 1991/06/02 22:36:37 root Exp $
  25.  */
  26.  
  27. #ifndef VGA_BANK_H
  28. #define VGA_BANK_H
  29.  
  30. extern void *vgaReadBottom;
  31. extern void *vgaReadTop;
  32. extern void *vgaWriteBottom;
  33. extern void *vgaWriteTop;
  34. extern Bool vgaReadFlag, vgaWriteFlag;
  35. extern void *writeseg;
  36.  
  37. extern void * vgaSetReadWrite();
  38. extern void * vgaReadWriteNext();
  39. extern void * vgaReadWritePrev();
  40. extern void * vgaSetRead();
  41. extern void * vgaReadNext();
  42. extern void * vgaReadPrev();
  43. extern void * vgaSetWrite();
  44. extern void * vgaWriteNext();
  45. extern void * vgaWritePrev();
  46. extern void vgaSaveBank();
  47. extern void vgaRestoreBank();
  48. extern void vgaPushRead();
  49. extern void vgaPopRead();
  50.  
  51. #define VGABASE 0xF0000000
  52.  
  53. #define BANK_FLAG(a) \
  54.   vgaWriteFlag = (((unsigned long)a >= VGABASE) ? TRUE : FALSE); \
  55.   vgaReadFlag = FALSE;
  56.  
  57. #define BANK_FLAG_BOTH(a,b) \
  58.   vgaReadFlag = (((unsigned long)a >= VGABASE) ? TRUE : FALSE); \
  59.   vgaWriteFlag  = (((unsigned long)b >= VGABASE) ? TRUE : FALSE);
  60.  
  61. #define SETR(x)  { if(vgaReadFlag) x = vgaSetRead(x); }
  62. #define SETW(x)  { if(vgaWriteFlag) x = vgaSetWrite(x); }
  63. #define SETRW(x) { if(vgaWriteFlag) x = vgaSetReadWrite(x); }
  64. #define CHECKRO(x) { if(vgaReadFlag && ((void *)x >= vgaReadTop)) \
  65.              x = vgaReadNext(x); }
  66. #define CHECKRU(x) { if(vgaReadFlag && ((void *)x < vgaReadBottom)) \
  67.              x = vgaReadPrev(x); }
  68. #define CHECKWO(x) { if(vgaWriteFlag && ((void *)x >= vgaWriteTop)) \
  69.              x = vgaWriteNext(x); }
  70. #define CHECKWU(x) { if(vgaWriteFlag && ((void *)x < vgaWriteBottom)) \
  71.              x = vgaWritePrev(x); }
  72. #define CHECKRWO(x) { if(vgaWriteFlag && ((void *)x >= vgaWriteTop)) \
  73.               x = vgaReadWriteNext(x); }
  74. #define CHECKRWU(x) { if(vgaWriteFlag && ((void *)x < vgaWriteBottom)) \
  75.               x = vgaReadWritePrev(x); }
  76.  
  77. #define NEXTR(x) { x = vgaReadNext(x);}
  78. #define NEXTW(x) { x = vgaWriteNext(x); }
  79. #define PREVR(x) { x = vgaReadPrev(x); }
  80. #define PREVW(x) { x = vgaWritePrev(x); }
  81.  
  82. #define SAVE_BANK()     { if (vgaWriteFlag) vgaSaveBank(); }
  83. #define RESTORE_BANK()  { if (vgaWriteFlag) vgaRestoreBank(); }
  84.  
  85. #define PUSHR()         { if(vgaWriteFlag) vgaPushRead(); }
  86. #define POPR()          { if(vgaWriteFlag) vgaPopRead(); }
  87.  
  88.  
  89. #endif /* VGA_BANK_H */
  90.