home *** CD-ROM | disk | FTP | other *** search
/ The 7th Guest [PC] / T7G_DISK2.BIN / vesa / candt / vesa.inc < prev    next >
Text File  |  1991-04-11  |  4KB  |  192 lines

  1.  
  2.  
  3. ;----------------------------------------------------------------------
  4. ; Module Name    :VESA.inc
  5. ; Program Name    :
  6. ; Description    :contains constants and structutres for VESA BIOS
  7. ; Date        :May 31, 1989
  8. ; Version    :1.0
  9. ; Programmer    :Rakesh K. Jain
  10. ; (C) Chips and Technologies, Inc. 1989
  11. ;----------------------------------------------------------------------
  12.  
  13.  
  14. SUCCESS        equ    0        ; return value on success
  15. FAILURE        equ    1        ; return value on failure
  16. VESA_FUNCTIONS    equ    04FH        ; VESA Control function
  17. MAX_FUNCTIONS    equ    7
  18. VERSION        equ    0100H        ; Version 1.0
  19. END_OF_MODES    equ    -1
  20. NREG_SR        equ    4
  21. NREG_CR        equ    19h
  22. NREG_AR        equ    15h
  23. NREG_GR        equ    9
  24. SIZE_VGA_STATE        equ    1+1+1+NREG_SR+1+NREG_CR+1+NREG_AR+1+NREG_GR
  25. SIZE_SUPERVGA_STATE    equ    20
  26. SIZE_DAC_STATE        equ    256*3+1
  27. SIZE_BIOS_DATA_STATE    equ    4
  28.  
  29. ; Monitor type
  30. MULTISYNC_II    equ    0
  31. MULTISYNC_PLUS    equ    1
  32.  
  33.  
  34. ;
  35. ; Video state equates
  36. ;
  37. VS_HW_STATE    equ    0000000000000001b    ; Save/Restore Video H/W state
  38. VS_BIOS_STATE    equ    0000000000000010b    ; Save/Restore Video BIOS state
  39. VS_DAC_STATE    equ    0000000000000100b    ; Save/Restore Video DAC
  40. VS_SUPERVGA_STATE equ    0000000000001000b    ; Save/Restore Super VGA State
  41. VS_GET_BUFSIZE    equ    0            ; Get buffer size function
  42. VS_SAVE_STATE    equ    1            ; Save state
  43. VS_RESTORE_STATE equ    2            ; Restore state
  44.  
  45.  
  46. BLOCKSIZE    equ    64            ; Block size is 64 bytes
  47.  
  48.  
  49. ;
  50. ; Extended register to  be saved
  51. ;
  52. defextregs    macro    x
  53.         irp    y, <x>
  54.         db    y
  55.         endm
  56.         endm
  57.  
  58.  
  59.  
  60. VGAInfoBlock    struc
  61.     VESASignature    db    'VESA'
  62.     VESAVersion    dw    VERSION
  63.     OEMString    dd    ?
  64.     Capabilities    db    4 DUP (0)
  65.     VideoModePtr    dd    ?
  66. VGAInfoBlock    ends
  67.  
  68.  
  69. ModeInfoBlock    struc
  70.     ModeAttributes    dw    ?
  71.     WinAAttributes    db    ?
  72.     WinBAttributes    db    ?
  73.     WinGranularity    dw    ?
  74.     WinSize        dw    ?
  75.     WinASegment    dw    ?
  76.     WinBSegment    dw    ?
  77.     WinFuncPtr    dd    ?
  78.     BytesPerScanline dw    ?
  79. ; end of obligatory structure
  80.     XResolution    dw    ?
  81.     YResolution    dw    ?
  82.     XCharCellSize    db    ?
  83.     YCharCellSize    db    ?
  84.     NumberOfPlanes    db    ?
  85.     BitsPerPixel    db    ?
  86.     NumberOfBanks    db    ?
  87.     MemoryModel    db    ?
  88.     BankSize    db    ?
  89. ModeInfoBlock    ends
  90.  
  91. OBLG_INFO_SIZE    equ    XResolution - ModeAttributes
  92. EXT_INFO_SIZE    equ    (SIZE ModeInfoBlock) - OBLG_INFO_SIZE
  93.  
  94. ;
  95. ; Video mode Attributes
  96. ;
  97. MA_HW_SUPP    equ    0000000000000001b    ; Mode is supported in H/W
  98. MA_EXT_INFO    equ    0000000000000010b    ; Extended Info is available
  99. MA_BIOS_OUTP    equ    0000000000000100b    ; BIOS Supports output functions
  100. MA_COLOR    equ    0000000000001000b    ; It is a is color mode
  101. MA_GRAPHICS    equ    0000000000010000b    ; It is a graphics mode
  102. ;**OldMA_BIOS_INIT    equ    0000000000000100b    ; Mode can be initialized by BIOS
  103.  
  104. GRAPHICS_MODE    equ    MA_HW_SUPP+MA_EXT_INFO+MA_BIOS_OUTP+MA_COLOR+MA_GRAPHICS
  105. TEXT_MODE    equ    MA_HW_SUPP+MA_EXT_INFO+MA_BIOS_OUTP+MA_COLOR
  106.  
  107. ;
  108. ; Window Attributes
  109. ;
  110. WA_WINSUPP    equ    00000001b        ; Window supported
  111. WA_WINREAD    equ    00000010b        ; Window is readable
  112. WA_WINWRITE    equ    00000100b        ; Window is writable
  113.  
  114. WIN_ATTR    equ    WA_WINSUPP+WA_WINREAD+WA_WINWRITE
  115.  
  116. ;
  117. ; Memory models
  118. ;
  119. MM_TEXTMODE    equ    00            ; Text modes
  120. MM_CGAGRAPH    equ    01            ; CGA Graphics modes
  121. MM_HERCGRAPH    equ    02            ; Hercules graphics mode
  122. MM_4PLANAR    equ    03            ; 4 Plane planar modes
  123. MM_PACKEDPIX    equ    04            ; Packed pixel modes
  124. MM_NONCHAIN    equ    05            ; Extended packed pixel
  125.  
  126.  
  127.  
  128. InitModeInfo macro    parm_list
  129.     irp    x, <parm_list>
  130.     ModeInfoBlock    <x>
  131.     endm
  132.     endm
  133.  
  134. ;
  135. ;**************************** Non VESA Stuff *************************
  136. ;
  137.  
  138. ;
  139. ; Constant Definitions
  140. ;
  141. VideoInt    equ    10h            ;Video Interrupt
  142. NL        equ    <0dh, 0ah>        ;New Line
  143. EOS        equ    '$'            ;End of String
  144. TAB        equ    9            ;TAB
  145.  
  146. ;
  147. ;DOS Function Numbers with INT 21h
  148. ;
  149. STDOUT        equ    9            ;for Printing a String
  150. GETINTVEC    equ    35h            ;for Getting INT Vector
  151. SETINTVEC    equ    25h            ;for Setting INT Vector
  152. TSR        equ    31h            ;for Terminate & Stay Resident
  153.  
  154. ;
  155. ; Macro Defintions
  156. ;
  157. pushem    macro    x
  158.     irp    y, <x>
  159.     push    y
  160.     endm
  161.     endm
  162.  
  163. popem    macro    x
  164.     irp    y, <x>
  165.     pop    y
  166.     endm
  167.     endm
  168.  
  169.  
  170. callfar    macro
  171.     db    9ah            ;;Opcode for Far Call with Label
  172.     endm
  173.  
  174. print    macro    msg
  175.     mov    dx, OFFSET msg
  176.     mov    ah, STDOUT    ;;INT21h Function to Display Text String
  177.     int    21h
  178.     endm
  179.  
  180. getvector macro    intnum
  181.     mov    ah, GETINTVEC    ;;Get Interrupt Vector Function Number
  182.     mov    al, intnum    ;;Interrupt Number
  183.     int    21h
  184.     endm
  185.  
  186. setvector    macro    intnum, handler
  187.     mov    dx, OFFSET handler    ;;Offset of Interrupt Handler
  188.     mov    ah, SETINTVEC    ;;Set Interrupt Vector Function Number
  189.     mov    al, intnum    ;;Interrupt Number
  190.     int    21h
  191.     endm
  192.