home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / DriverKit / S3 / S3_reloc.tproj / vgaModes.h < prev   
C/C++ Source or Header  |  1996-03-26  |  4KB  |  122 lines

  1. /* CONFIDENTIAL
  2.  * Copyright (c) 1993-1996 by NeXT Software, Inc. as an unpublished work.
  3.  * All rights reserved.
  4.  *
  5.  * vgaModes.h -- Definitions for the standard VGA.
  6.  *
  7.  * Author:  Derek B Clegg    21 May 1993
  8.  */
  9.  
  10. #ifndef VGADEFS_H__
  11. #define VGADEFS_H__
  12.  
  13. /* Miscellaneous output register. */
  14.  
  15. #define    VGA_MISC_OUTPUT        0x3C2
  16.  
  17. /* Input status 1 register. */
  18.  
  19. #define VGA_INPUT_STATUS_1    0x3DA
  20.  
  21. /* Feature control register. */
  22.  
  23. #define    VGA_FEATURE_CTRL    0x3DA
  24.  
  25. /* Sequencer. */
  26.  
  27. #define VGA_SEQ_INDEX        0x3C4
  28. #define VGA_SEQ_DATA        0x3C5
  29. #define    VGA_SEQ_COUNT        5
  30.  
  31. /* Sequencer Indexes. */
  32.  
  33. #define VGA_RST_SYNC        0x00    /* Reset register. */
  34. #define VGA_CLK_MODE        0x01    /* Clocking mode register. */
  35. #define VGA_EN_WT_PL        0x02    /* Enable write plane register. */
  36. #define VGA_CH_FONT_SL        0x03    /* Change font select register. */
  37. #define VGA_MEM_MODE        0x04    /* Memory mode control register. */
  38.  
  39. /* CRT Controller. */
  40.  
  41. #define VGA_CRTC_INDEX         0x3D4
  42. #define VGA_CRTC_DATA          0x3D5
  43. #define    VGA_CRTC_COUNT        25
  44.  
  45. /* CRT Controller Indexes */
  46.  
  47. #define VGA_H_TOTAL        0x00    /* Horizontal total register. */
  48. #define VGA_H_D_END        0x01    /* Horizontal display end register. */
  49. #define VGA_S_H_BLNK        0x02    /* Start horizontal blank register. */
  50. #define VGA_E_H_BLNK        0x03    /* End horizontal blank register. */
  51. #define VGA_S_H_SY_P        0x04    /* Start horizontal sync position
  52.                        register. */
  53. #define VGA_E_H_SY_P        0x05    /* End horizontal sync position
  54.                        register. */
  55. #define VGA_V_TOTAL        0x06    /* Vertical total register. */
  56. #define VGA_OVFL_REG        0x07    /* CRTC overflow register. */
  57. #define VGA_P_R_SCAN        0x08    /* Preset row scan register. */
  58. #define VGA_MAX_S_LN        0x09    /* Maximum scan line register. */
  59. #define VGA_CSSL        0x0A    /* Cursor start scan line register. */
  60. #define VGA_CESL        0x0B    /* Cursor end scan line register. */
  61. #define VGA_STAH        0x0C    /* Start address high register. */
  62. #define VGA_STAL        0x0D    /* Start address low register. */
  63. #define VGA_CLAH        0x0E    /* Cursor location address high
  64.                        register. */
  65. #define VGA_CLAL        0x0F    /* Cursor location address low
  66.                        register. */
  67. #define VGA_VRS            0x10    /* Vertical retrace start register. */
  68. #define VGA_VRE            0x11    /* Vertical retrace end register. */
  69. #define VGA_VDE            0x12    /* Vertical display end register. */
  70. #define VGA_SCREEN_OFFSET    0x13    /* Offset register. */
  71. #define VGA_ULL            0x14    /* Underline location register. */
  72. #define VGA_SVB            0x15    /* Start vertical blank register. */
  73. #define VGA_EVB            0x16    /* End vertical blank register. */
  74. #define VGA_CRT_MD        0x17    /* CRTC mode control register. */
  75. #define VGA_LCM            0x18    /* Line compare register. */
  76.  
  77. /* Attribute Controller. */
  78.  
  79. #define VGA_ATTR_INDEX        0x3C0
  80. #define VGA_ATTR_DATA        0x3C0
  81. #define    VGA_ATTR_COUNT        20
  82.  
  83. /* Attribute Controller Indexes. */
  84.  
  85. #define VGA_PLT_REG        0x00    /* Palette registers (0x00-0x0F). */
  86. #define VGA_ATR_MODE        0x10    /* Attribute mode control register. */
  87. #define VGA_BDR_CLR        0x11    /* Border color register. */
  88. #define VGA_DISP_PLN        0x12    /* Color plane enable register. */
  89. #define VGA_H_PX_PAN        0x13    /* Horizontal pixel panning
  90.                        register. */
  91. /* Graphics Controller. */
  92.  
  93. #define VGA_GRFX_INDEX        0x3CE
  94. #define VGA_GRFX_DATA        0x3CF
  95. #define VGA_GRFX_COUNT        9
  96.  
  97. struct VGAMode {
  98.     /* Miscellaneous output register values (3C2). */
  99.     unsigned char miscOutput;
  100.  
  101.     /* Feature control register value (3DA). */
  102.     unsigned char featureCtrl;
  103.  
  104.     /* Sequencer register values (3C5.00 - 3C5.04). */
  105.     unsigned char seqx[VGA_SEQ_COUNT];
  106.  
  107.     /* CRTC register values (3D5.00 - 3D5.18). */
  108.     unsigned char crtc[VGA_CRTC_COUNT];
  109.  
  110.     /* Attribute controller register values (3C0.00 - 3C0.13). */
  111.     unsigned char attr[VGA_ATTR_COUNT];
  112.  
  113.     /* Graphics controller register values (3CF.00 - 3CF.08). */
  114.     unsigned char grfx[VGA_GRFX_COUNT];
  115. };
  116. typedef struct VGAMode VGAMode;
  117.  
  118. extern int VGASetMode(unsigned int mode);
  119. extern int VGASetModeData(const VGAMode *modeData);
  120.  
  121. #endif    /* VGADEFS_H__ */
  122.