home *** CD-ROM | disk | FTP | other *** search
/ HOT Scene Stuff / hotscenestuffzyklop1996.iso / demos / sunknown / vx.h < prev    next >
C/C++ Source or Header  |  1994-03-26  |  1KB  |  42 lines

  1. // VX_C
  2.  
  3. // A class implementing a virtual 320x240x16/160x240x256 screen in mode x.
  4.  
  5. #include "global.h"
  6.  
  7. // DEFINES:
  8.  
  9. #define VRAMSIZE         19200
  10.  
  11. // VGA-registers:
  12.  
  13. #define AC_INDEX        0x03c0
  14. #define MISC_OUTPUT     0x03c2
  15. #define SC_INDEX        0x03c4
  16. #define GC_INDEX    0x03ce
  17. #define CRTC_INDEX      0x03d4
  18. #define INPUT_STATUS_0  0x03da
  19. #define MAP_MASK    0x02
  20. #define READ_MAP        0x04
  21. #define BIT_MASK    0x08
  22.  
  23. // MACROS:
  24.  
  25. #define FROMLATCHES     asm mov dx,GC_INDEX; asm mov ax,BIT_MASK;asm out dx,ax
  26. #define FROMREGISTER     asm mov dx,GC_INDEX+1;asm mov al,0xff;asm out dx,al
  27.  
  28. // CLASS DECLARATION:
  29.  
  30. class vx_C
  31. {
  32.   word offset;
  33. public:
  34.     void setoffset(word newoffset);
  35.   void frame(void);
  36.   void writepixel(word pos, byte plane, byte color);
  37.   void putpixel(word x,word y,byte color)
  38.     {writepixel(offset+x/4+80*y,x&3,color);};
  39.   byte getpixel(word x,word y);
  40.   void setrgb(byte color, byte r, byte g, byte b);
  41.   void blockfill(word start,word end, byte data);
  42. };