home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v2.zip / DDKX86 / DBCSDD / INC_DBCS / VVD.INC < prev    next >
Text File  |  1995-04-14  |  37KB  |  1,048 lines

  1. ;*DDK*************************************************************************/
  2. ;
  3. ; COPYRIGHT (C) Microsoft Corporation, 1989
  4. ; COPYRIGHT    Copyright (C) 1995 IBM Corporation
  5. ;
  6. ;    The following IBM OS/2 WARP source code is provided to you solely for
  7. ;    the purpose of assisting you in your development of OS/2 WARP device
  8. ;    drivers. You may use this code in accordance with the IBM License
  9. ;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
  10. ;    Copyright statement may not be removed.;
  11. ;*****************************************************************************/
  12. ;***    VVD.INC
  13. ;
  14. ;
  15. ;    MVDM Virtual Video Exported Definitions
  16. ;
  17. ;    For include file hierarchy, see MVDM.INC
  18. ;
  19. ;    Options:
  20. ;        INCL_VIDEO        include all video definitions
  21. ;        INCL_VIDEOHW    include hardware-dependent definitions
  22. ;        INCL_VIDEOVDD   include VDD-support definitions
  23. ;
  24. ;
  25. ;    MODIFICATION HISTORY
  26. ;    10/11/88    JTP        Created.
  27. ;  XGA    04/22/91    TPL        XGA enhancements to control whether VGA should
  28. ;                save/restore the video state on a single XGA
  29. ;                configuration system (i.e. P75 or PS/2 with
  30. ;                monitor attached only to the XGA) where the
  31. ;                XGA boots up in VGA mode.
  32. ;    05/07/91    RCW
  33. ;
  34. ;            Changed all occurences of the single line comment
  35. ;            notation to the standard notation to allow users to
  36. ;            maintain ANSI compatibility.  This is in response to
  37. ;            PTR B718526.  All future updates to this and all other
  38. ;            header files should use the standard commenting format.
  39. ;  @025 03/14/92    TPL              Add VDHRegisterInt2FProc for VVGA
  40. ;  @038 03/27/92    TPL     PTRB735007 - avoid screen corruption on Starlight
  41. ;  @DDE 05/18/92    TPL     D        - Add event for DDE support
  42. ;  @049 09/02/92    TPL     24749        - Restrict 4K access to the MONO card
  43. ;  @054 03/09/93    YEE     63354        - Add more DEVREQ constants
  44. ;  @055 03/30/93    Senja 65283        - Add more DEVREQ constants
  45. ;
  46.  
  47.  
  48. ifndef INCL_NONE           ;include everything by default
  49. INCL_VIDEO    EQU 1
  50. endif
  51.  
  52. ifdef  INCL_VIDEO
  53. INCL_VIDEOHW    EQU 1
  54. INCL_VIDEOPTR    EQU 1
  55. INCL_VIDEOSYSREQ    EQU 1
  56. INCL_VIDEODEVREQ    EQU 1
  57. INCL_VIDEOINTERFACES    EQU 1        ;@025
  58. endif
  59.  
  60. ifdef  INCL_DBCSVDM                               ;J-TS00V
  61. ATLAS    EQU 1        ;J-TS00V
  62. GALE    EQU 1        ;J-TS00V
  63. endif  ;INCL_DBCSVDM                              //J-TS00V
  64. ifdef  GALE                                   ;J-TS00V
  65. ATLAS_GALE    EQU 1        ;J-TS00V
  66. endif  ;GALE                                  //J-TS00V
  67. ifdef  ATLAS                                   ;J-TS00V
  68. ATLAS_GALE    EQU 1        ;J-TS00V
  69. endif  ;ATLAS                                  //J-TS00V
  70.  
  71. ifdef INCL_VIDEOPTR
  72.     include    vmd.inc
  73. endif
  74.  
  75.  
  76. ifdef  INCL_VIDEOHW
  77.  
  78. ;***    Extended (non-BIOS) EGA _INT 10h functions
  79. ;
  80.  
  81. INT10_EGAREADONE    EQU    0F0h        ;Read one EGA reg
  82. INT10_EGAWRITEONE    EQU    0F1h        ;Write one EGA reg
  83. INT10_EGAREADRANGE    EQU    0F2h        ;Read multiple EGA regs
  84. INT10_EGAWRITERANGE    EQU    0F3h        ;Write multiple EGA regs
  85. INT10_EGAREADSET    EQU    0F4h        ;Read set of EGA regs
  86. INT10_EGAWRITESET    EQU    0F5h        ;Write set of EGA regs
  87. INT10_EGAREVERTDEF    EQU    0F6h        ;Revert to default
  88. INT10_EGADEFINEDEF    EQU    0F7h        ;Define default
  89. INT10_EGAQUERYDEF    EQU    0F8h        ;Query default
  90. INT10_EGACONTEXT    EQU    0F9h        ;Get context information
  91. INT10_EGAINQUIRE    EQU    0FAh        ;Get EGA driver version
  92.  
  93. INT10_EGAFIRST    EQU    <INT10_EGAREADONE>
  94. INT10_EGALAST    EQU    <INT10_EGAINQUIRE>
  95.  
  96.  
  97. ; Default physical memory locations
  98. ;
  99.  
  100. PLANE0    EQU    0
  101. PLANE1    EQU    1
  102. PLANE2    EQU    2
  103. PLANE3    EQU    3
  104.  
  105. MONOMEM_START    EQU    0B0000h
  106. MONOMEM_LEN    EQU    (4*1024)                    ;@049
  107. ifdef  PAGESIZE
  108. MONOMEM_PAGES    EQU    (MONOMEM_LEN/PAGESIZE)
  109. endif
  110.  
  111. CGAMEM_START    EQU    0B8000h
  112. CGAMEM_LEN    EQU    (16*1024)
  113. ifdef  PAGESIZE
  114. CGAMEM_PAGES    EQU    (CGAMEM_LEN/PAGESIZE)
  115. endif
  116.  
  117. EGAVGAMEM_START        EQU    0A0000h
  118. EGAVGAMEM_LEN    EQU    (128*1024)
  119. ifdef  PAGESIZE
  120. EGAVGAMEM_PAGES        EQU    (EGAVGAMEM_LEN/PAGESIZE)
  121. endif
  122.  
  123.  
  124. ;  Hardware ports
  125. ;
  126. ;   All are single-register ports unless otherwise specified
  127. ;   All single-register ports are W/O unless VGA or otherwise specified
  128. ;
  129.  
  130. PORT_ATIVGA_INDX    EQU    01CEh        ;used by ATI VGA Wonder
  131. PORT_ATIVGA_DATA    EQU    01CFh        ;used by ATI VGA Wonder
  132. PORT_MONOCRTINDX    EQU    03B4h
  133. PORT_MONOCRTDATA    EQU    03B5h        ;multi-register port
  134. PORT_MONOMODE    EQU    03B8h        ;usually shadowed at uBiosVModeByte
  135. PORT_MONOLPENSET    EQU    03B9h
  136. PORT_MONOSTATUS1    EQU    03BAh        ;(R/O)
  137. PORT_MONOFEATURE    EQU    03BAh        ;(W/O)
  138. PORT_MONOLPENRESET    EQU    03BBh
  139. PORT_ATC0    EQU    03C0h
  140. PORT_ATC1    EQU    03C1h        ;on VGA, distinct from ATC0 and R/O
  141. PORT_STATUS0    EQU    03C2h        ;(R/O)
  142. PORT_MISCOUT    EQU    03C2h        ;reset sequencer before writing
  143. PORT_VGAENABLE    EQU    03C3h
  144. PORT_SEQINDX    EQU    03C4h
  145. PORT_SEQDATA    EQU    03C5h        ;multi-register port
  146. PORT_COMPAQ_CTRL    EQU    03C6h
  147. PORT_VGADACMASK        EQU    03C6h        ;initialized to 0FFh, leave alone
  148. PORT_VGADACREAD        EQU    03C7h        ;State , Index to read (W)
  149. PORT_VGADACWRITE    EQU    03C8h        ;Index to write (R/W)
  150. PORT_VGADACDATA        EQU    03C9h        ;multi-register port
  151. PORT_GDCPOS2    EQU    03CAh        ;on VGA, R/O (returns FEATURE)
  152. PORT_ATIEGA_INDX    EQU    03CBh        ;used by ATI EGA Wonder
  153. PORT_GDCPOS1    EQU    03CCh        ;on VGA, R/O (returns MISCOUT)
  154. PORT_ATIEGA_DATA    EQU    03CDh        ;used by ATI EGA Wonder
  155. PORT_GDCINDX    EQU    03CEh
  156. PORT_GDCDATA    EQU    03CFh        ;multi-register port
  157. PORT_COLRCRTINDX    EQU    03D4h
  158. PORT_COLRCRTDATA    EQU    03D5h        ;multi-register port
  159. PORT_CGAMODE    EQU    03D8h        ;usually shadowed at uBiosVModeByte
  160. PORT_CGACOLOR    EQU    03D9h        ;usually shadowed at uBiosVColorByte
  161. PORT_COLRSTATUS1    EQU    03DAh        ;(R/O)
  162. PORT_COLRFEATURE    EQU    03DAh        ;(W/O)
  163. PORT_CGALPENRESET    EQU    03DBh
  164. PORT_CGALPENSET        EQU    03DCh
  165. PORT_COMPAQ_ENV        EQU    07C6h        ;(R/O)
  166. PORT_COMPAQ_DSP        EQU    0BC6h        ;(R/O)
  167. PORT_IBMP70_INDX    EQU    0D00h        ;special port for plasma display?
  168. PORT_IBMP70_DATA    EQU    0D01h        ;special port for plasma display?
  169. PORT_COMPAQ_MODE    EQU    0FC6h        ;(R/O)
  170.  
  171. ; 8514/A Display Controller registers (word registers unless noted otherwise)
  172. ;
  173. A8514_DSPSTAT    EQU    002E8h        ;(R/O)
  174. DSPSTAT_PALSTAT        EQU    00001h
  175. DSPSTAT_VERTRTRC    EQU    00002h
  176. DSPSTAT_HORZRTRC    EQU    00004h
  177. A8514_HORZTOTAL        EQU    002E8h        ;(W/O)
  178. A8514_DACMASK    EQU    002EAh        ;pixel planes displayed   (R/W-byte)
  179. A8514_DACREADINDEX    EQU    002EBh        ;DAC data reg/mode select (R/W-byte)
  180. A8514_DACWRITEINDEX    EQU    002ECh        ;DAC data reg/mode select (R/W-byte)
  181. A8514_DACDATA    EQU    002EDh        ;DAC data register          (R/W-byte)
  182. A8514_HORZDSP    EQU    006E8h        ;(W/O)
  183. A8514_HORZSSTART    EQU    00AE8h        ;(W/O)
  184. A8514_HORZSWIDTH    EQU    00EE8h        ;(W/O)
  185. A8514_VERTTOTAL        EQU    012E8h        ;(W/O)
  186. A8514_VERTDSP    EQU    016E8h        ;(W/O)
  187. A8514_VERTSSTART    EQU    01AE8h        ;(W/O)
  188. A8514_VERTSWIDTH    EQU    01EE8h        ;(W/O)
  189. A8514_DSPCTRL    EQU    022E8h        ;(W/O)
  190. DSPCTRL_ODDEVEN        EQU    00001h
  191. DSPCTRL_CAS2    EQU    00000h    ;this implies 4-plane setting
  192. DSPCTRL_CAS4    EQU    00002h    ;this implies 8-plane setting
  193. DSPCTRL_CAS6    EQU    00004h
  194. DSPCTRL_CAS8    EQU    00006h
  195. DSPCTRL_CASMASK        EQU    00006h
  196. DSPCTRL_SCANDBL        EQU    00008h
  197. DSPCTRL_INTERLACE    EQU    00010h
  198. DSPCTRL_DSPENABLE    EQU    00020h
  199. DSPCTRL_DSPDISABLE    EQU    00040h
  200. DSPCTRL_DSPCTRLMASK    EQU    00060h
  201.  
  202. ; 8514/A Configuration/Status registers (word registers unless noted otherwise)
  203. ;
  204. A8514_SUBSYSCTRL    EQU    042E8h        ;(W/O)
  205. SUBCTRL_RESETVERTF    EQU    00001h
  206. SUBCTRL_RESETDTR    EQU    00002h
  207. SUBCTRL_RESETQFULL    EQU    00004h
  208. SUBCTRL_RESETGPIDLE    EQU    00008h
  209. SUBCTRL_INTONVERTF    EQU    00100h
  210. SUBCTRL_INTONDTR    EQU    00200h
  211. SUBCTRL_INTONQFULL    EQU    00400h
  212. SUBCTRL_INTONGPIDLE    EQU    00800h
  213. SUBCTRL_PIXENABLE    EQU    01000h
  214. SUBCTRL_PIXDISABLE    EQU    02000h
  215. SUBCTRL_PIXCTRLMASK    EQU    03000h
  216. SUBCTRL_SEQENABLE    EQU    04000h
  217. SUBCTRL_SEQDISABLE    EQU    08000h
  218. SUBCTRL_SEQCTRLMASK    EQU    0C000h
  219. A8514_SUBSYSSTATUS    EQU    042E8h        ;(R/O)
  220. SUBSTATUS_VERTF        EQU    00001h
  221. SUBSTATUS_DTR    EQU    00002h
  222. SUBSTATUS_QFULL        EQU    00004h
  223. SUBSTATUS_GPIDLE    EQU    00008h
  224. SUBSTATUS_MONITORID    EQU    00070h
  225. SUBSTATUS_8503    EQU    00050h
  226. SUBSTATUS_8512_3    EQU    00060h
  227. SUBSTATUS_8514    EQU    00020h
  228. SUBSTATUS_MONOCHROME    EQU    00010h
  229. SUBSTATUS_NOT8514    EQU    00040h
  230. SUBSTATUS_MEMORYOPT    EQU    00080h
  231. A8514_ROMPAGESELECT    EQU    046E8h        ;(W/O)
  232. A8514_ADVCTRL    EQU    04AE8h        ;(W/O)
  233. ADVCTRL_VGADISABLE    EQU    00001h
  234. ADVCTRL_OUTPUTPIN    EQU    00002h
  235. ADVCTRL_DOTCLOCK    EQU    00004h    ;0 implies 640x480 mode
  236.  
  237. ; 8514/A Graphics Processor registers (word registers unless noted otherwise)
  238. ;
  239. A8514_COMMAND    EQU    09AE8h        ;(W/O)
  240. COMMAND_WRITE    EQU    00001h    ;0 implies read function
  241. COMMAND_PLANAR    EQU    00002h    ;0 implies pixel-access mode
  242. COMMAND_LASTPIXNULL    EQU    00004h    ;0 implies last pixel will be drawn
  243. COMMAND_STROKEALG    EQU    00008h    ;0 implies H/W line-drawing algorithm
  244. COMMAND_DRAW    EQU    00010h    ;0 implies move current position only
  245. COMMAND_INCX    EQU    00020h    ;0 implies decrement X
  246. COMMAND_MAJORY    EQU    00040h    ;0 implies X is major axis
  247. COMMAND_INCY    EQU    00080h    ;0 implies decrement Y
  248. COMMAND_PCDATAXFER    EQU    00100h    ;0 implies no PC intervention
  249. COMMAND_PCDATA16BIT    EQU    00200h    ;0 implies base pixel count per access
  250. COMMAND_PIXEL16BIT    EQU    00400h    ;0 implies 8-bit pixel transfers
  251. COMMAND_SWAPBYTES    EQU    01000h    ;0 implies even pixels from low bytes
  252. COMMAND_FUN_NONE    EQU    00000h
  253. COMMAND_FUN_LINE    EQU    02000h
  254. COMMAND_FUN_FILLX    EQU    04000h
  255. COMMAND_FUN_FILLY    EQU    06000h
  256. COMMAND_FUN_FILL    EQU    08000h
  257. COMMAND_FUN_AXIALLINE    EQU    0A000h
  258. COMMAND_FUN_COPY    EQU    0C000h
  259. COMMAND_FUNMASK        EQU    0F000h
  260. A8514_STATUS    EQU    09AE8h        ;(R/O)
  261. STATUS_QUEUE1_INUSE    EQU    00001h
  262. STATUS_QUEUE2_INUSE    EQU    00002h
  263. STATUS_QUEUE3_INUSE    EQU    00004h
  264. STATUS_QUEUE4_INUSE    EQU    00008h
  265. STATUS_QUEUE5_INUSE    EQU    00010h
  266. STATUS_QUEUE6_INUSE    EQU    00020h
  267. STATUS_QUEUE7_INUSE    EQU    00040h
  268. STATUS_QUEUE8_INUSE    EQU    00080h
  269. STATUS_DATA_AVAILABLE    EQU    00100h
  270. STATUS_COMMAND_ACTIVE    EQU    00200h
  271.  
  272. ; 8514/A Coordinate registers (word registers unless noted otherwise)
  273. ;
  274. A8514_CURRENTY    EQU    082E8h        ;(R/W)
  275. A8514_CURRENTX    EQU    086E8h        ;(R/W)
  276. A8514_DESTY_AXSTP    EQU    08AE8h        ;(W/O)
  277. A8514_DESTX_DIASTP    EQU    08EE8h        ;(W/O)
  278. A8514_ERRORTERM        EQU    092E8h        ;suitable for presence test (R/W)
  279. A8514_MAJORAXISCNT    EQU    096E8h        ;(W/O)
  280.  
  281. ; 8514/A Multi-function control registers (word registers unless noted otherwise)
  282. ;
  283. A8514_MULTIFUNCTION    EQU    0BEE8h        ;(W/O)
  284. MFINDX_MINORAXISCNT    EQU    00000h
  285. MFINDX_TOPSCISSORS    EQU    01000h
  286. MFINDX_LEFTSCISSORS    EQU    02000h
  287. MFINDX_BOTTOMSCISSORS    EQU    03000h
  288. MFINDX_RIGHTSCISSORS    EQU    04000h
  289. MFINDX_MEMORYCTRL    EQU    05000h
  290. MEMCTRL_WRITE4    EQU    00000h
  291. MEMCTRL_WRITE5    EQU    00001h
  292. MEMCTRL_WRITE8    EQU    00002h
  293. MEMCTRL_WRITE10        EQU    00003h
  294. MEMCTRL_WRITEMASK    EQU    00003h
  295. MEMCTRL_CAS2    EQU    00000h    ;this implies 4-plane setting
  296. MEMCTRL_CAS4    EQU    00004h    ;this implies 8-plane setting
  297. MEMCTRL_CAS6    EQU    00008h
  298. MEMCTRL_CAS8    EQU    0000Ch
  299. MEMCTRL_CASMASK        EQU    0000Ch
  300. MEMCTRL_CASSWAP        EQU    00010h
  301. MFINDX_PATTERNLOW    EQU    08000h
  302. MFINDX_PATTERNHIGH    EQU    09000h
  303. MFINDX_PIXELCTRL    EQU    0A000h
  304. PIXELCTRL_5PIXELROTATE    EQU    00001h
  305. PIXELCTRL_MASKSELECT    EQU    00002h
  306. PIXELCTRL_PLANAR    EQU    00004h
  307. PIXELCTRL_COLORFALSE    EQU    00000h
  308. PIXELCTRL_COLORTRUE    EQU    00008h
  309. PIXELCTRL_COLORGE    EQU    00010h
  310. PIXELCTRL_COLORLT    EQU    00018h
  311. PIXELCTRL_COLORNE    EQU    00020h
  312. PIXELCTRL_COLOREQ    EQU    00028h
  313. PIXELCTRL_COLORLE    EQU    00030h
  314. PIXELCTRL_COLORGT    EQU    00038h
  315. PIXELCTRL_MIXFGND    EQU    00000h
  316. PIXELCTRL_FIXEDPATTERN    EQU    00040h
  317. PIXELCTRL_PLANARWRITE    EQU    00080h
  318. PIXELCTRL_SINGLEPLANE    EQU    000C0h
  319. MFINDX_INDXMASK        EQU    0F000h
  320. MFINDX_DATAMASK        EQU    00FFFh
  321. MFINDX_INDXSHIFT    EQU    12
  322. MFINDX_INDXTOTAL    EQU    16
  323.  
  324. ; 8514/A Pixel processing registers (word registers unless noted otherwise)
  325. ;
  326. A8514_SHORTSTROKE    EQU    09EE8h        ;(W/O)
  327. A8514_BGNDCOLOR        EQU    0A2E8h        ;(W/O)
  328. A8514_FGNDCOLOR        EQU    0A6E8h        ;(W/O)
  329. A8514_WRITEMASK        EQU    0AAE8h        ;(W/O)
  330. A8514_READMASK    EQU    0AEE8h        ;(W/O)
  331. A8514_COLORCOMPARE    EQU    0B2E8h        ;(W/O)
  332. A8514_BGNDMIX    EQU    0B6E8h        ;(W/O)
  333. A8514_FGNDMIX    EQU    0BAE8h        ;(W/O)
  334. FGNDMIX_SOURCE    EQU    00007h
  335. FGNDMIX_BGNDCLR        EQU    00000h
  336. FGNDMIX_FGNDCLR        EQU    00020h
  337. FGNDMIX_PIXELDATA    EQU    00040h
  338. FGNDMIX_PLANECOPY    EQU    00060h
  339. A8514_PIXELTRANSFER    EQU    0E2E8h        ;(R/W)
  340.  
  341. ; XGA I/O Registers (all byte registers)
  342.  
  343. AXGA_OPERATING_MODE    EQU    0  ;private indexes into
  344. AXGA_APERTURE_CONTROL    EQU    1  ;  awregXGAIOReg[].  See
  345. AXGA_RESERVED1    EQU    2  ;  VVXGAREGS structure
  346. AXGA_RESERVED2    EQU    3  ;  definition in VVXGAP.INC
  347. AXGA_INTERRUPT_ENABLE    EQU    4  ;  for detail
  348. AXGA_INTERRUPT_STATUS    EQU    5
  349. AXGA_VIRTUAL_MEMORY_CONTROLLER    EQU    6
  350. AXGA_VIRTUAL_MEMORY_INT_STATUS    EQU    7
  351. AXGA_APERTURE_INDEX    EQU    8
  352. AXGA_MEMORY_ACCESS_MODE        EQU    9
  353. AXGA_INDEX_SELECT    EQU    10
  354. AXGA_INDEX_DATA_B    EQU    11
  355. AXGA_INDEX_DATA_C    EQU    12
  356. AXGA_INDEX_DATA_D    EQU    13
  357. AXGA_INDEX_DATA_E    EQU    14
  358. AXGA_INDEX_DATA_F    EQU    15
  359. AXGA_TOTAL    EQU    16
  360.  
  361. ; XGA Index Registers (all byte register)
  362. AINDX_RESERVED0        EQU    00000h     ;(R/W)
  363. AINDX_RESERVED1        EQU    00001h     ;(R/O)
  364. AINDX_RESERVED2        EQU    00002h     ;(R/O)
  365. AINDX_RESERVED3        EQU    00003h     ;(R/O)
  366. AINDX_AUTOCONFIG    EQU    00004h     ;(R/O)
  367. AINDX_RESERVED5        EQU    00005h     ;(R/O)
  368. AINDX_RESERVED6        EQU    00006h     ;(R/O)
  369. AINDX_RESERVED7        EQU    00007h     ;(R/O)
  370. AINDX_RESERVED8        EQU    00008h     ;(R/O)
  371. AINDX_RESERVED9        EQU    00009h     ;(R/O)
  372. AINDX_RESERVEDa        EQU    0000ah     ;(R/O)
  373. AINDX_RESERVEDb        EQU    0000bh     ;(R/O)
  374. AINDX_COPROCSAVERESTOREA    EQU    0000ch     ;(R/O)
  375. AINDX_COPROCSAVERESTOREB    EQU    0000dh     ;(R/O)
  376. AINDX_RESERVEDe        EQU    0000eh     ;(R/O)
  377. AINDX_RESERVEDf        EQU    0000fh     ;(R/O)
  378. AINDX_HORZTOTALLO    EQU    00010h     ;(R/W)
  379. AINDX_HORZTOTALHI    EQU    00011h     ;(R/W)
  380. AINDX_HORZDISPENDLO    EQU    00012h     ;(R/W)
  381. AINDX_HORZDISPENDHI    EQU    00013h     ;(R/W)
  382. AINDX_HORZBLANKINGSTARTLO    EQU    00014h     ;(R/W)
  383. AINDX_HORZBLANKINGSTARTHI    EQU    00015h     ;(R/W)
  384. AINDX_HORZBLANKINGENDLO        EQU    00016h     ;(R/W)
  385. AINDX_HORZBLANKINGENDHI        EQU    00017h     ;(R/W)
  386. AINDX_HORZSYNCPULSESTARTLO    EQU    00018h     ;(R/W)
  387. AINDX_HORZSYNCPULSESTARTHI    EQU    00019h     ;(R/W)
  388. AINDX_HORZSYNCPULSEENDLO    EQU    0001ah     ;(R/W)       132 Column Reg
  389. AINDX_HORZSYNCPULSEENDHI    EQU    0001bh     ;(R/W)       132 Column Reg
  390. AINDX_HORZSYNCPOSITION1        EQU    0001ch     ;(W/O)
  391. AINDX_RESERVED1d    EQU    0001dh     ;(R/O)
  392. AINDX_HORZSYNCPOSITION2        EQU    0001eh     ;(W/O)
  393. AINDX_RESERVED1f    EQU    0001fh     ;(R/O)
  394. AINDX_VERTTOTALLO    EQU    00020h     ;(R/W)
  395. AINDX_VERTTOTALHI    EQU    00021h     ;(R/W)
  396. AINDX_VERTDISPENDLO    EQU    00022h     ;(R/W)
  397. AINDX_VERTDISPENDHI    EQU    00023h     ;(R/W)
  398. AINDX_VERTBLANKINGSTARTLO    EQU    00024h     ;(R/W)
  399. AINDX_VERTBLANKINGSTARTHI    EQU    00025h     ;(R/W)
  400. AINDX_VERTBLANKINGENDLO        EQU    00026h     ;(R/W)
  401. AINDX_VERTBLANKINGENDHI        EQU    00027h     ;(R/W)
  402. AINDX_VERTSYNCPULSESTARTLO    EQU    00028h     ;(R/W)
  403. AINDX_VERTSYNCPULSESTARTHI    EQU    00029h     ;(R/W)
  404. AINDX_VERTSYNCPULSEEND    EQU    0002ah     ;(R/W)       132 Column Reg
  405. AINDX_RESERVED2b    EQU    0002bh     ;(R/O)
  406. AINDX_VERTLINECOMPLO    EQU    0002ch     ;(R/W)
  407. AINDX_VERTLINECOMPHI    EQU    0002dh     ;(R/W)
  408. AINDX_RESERVED2e    EQU    0002eh     ;(R/O)
  409. AINDX_RESERVED2f    EQU    0002fh     ;(R/O)
  410. AINDX_SPRITEHORZSTARTLO        EQU    00030h     ;(R/W)
  411. AINDX_SPRITEHORZSTARTHI        EQU    00031h     ;(R/W)
  412. AINDX_SPRITEHORZPRESET    EQU    00032h     ;(R/W)
  413. AINDX_SPRITEVERTSTARTLO        EQU    00033h     ;(R/W)
  414. AINDX_SPRITEVERTSTARTHI        EQU    00034h     ;(R/W)
  415. AINDX_SPRITEVERTPRESET    EQU    00035h     ;(R/W)
  416. AINDX_SPRITECONTROL    EQU    00036h     ;(R/W)
  417. AINDX_RESERVED37    EQU    00037h     ;(R/O)
  418. AINDX_SPRITECOLOR0RED    EQU    00038h     ;(R/W)
  419. AINDX_SPRITECOLOR0GREEN        EQU    00039h     ;(R/W)
  420. AINDX_SPRITECOLOR0BLUE    EQU    0003ah     ;(R/W)
  421. AINDX_SPRITECOLOR1RED    EQU    0003bh     ;(R/W)
  422. AINDX_SPRITECOLOR1GREEN        EQU    0003ch     ;(R/W)
  423. AINDX_SPRITECOLOR1BLUE    EQU    0003dh     ;(R/W)
  424. AINDX_RESERVED3e    EQU    0003eh     ;(R/O)
  425. AINDX_RESERVED3f    EQU    0003fh     ;(R/O)
  426. AINDX_DISPPIXELMAPOFFSETLO    EQU    00040h     ;(R/W)
  427. AINDX_DISPPIXELMAPOFFSETMI    EQU    00041h     ;(R/W)
  428. AINDX_DISPPIXELMAPOFFSETHI    EQU    00042h     ;(R/W)
  429. AINDX_DISPPIXELMAPWIDTHLO    EQU    00043h     ;(R/W)
  430. AINDX_DISPPIXELMAPWIDTHHI    EQU    00044h     ;(R/W)
  431. AINDX_RESERVED45    EQU    00045h     ;(R/O)
  432. AINDX_RESERVED46    EQU    00046h     ;(R/O)
  433. AINDX_RESERVED47    EQU    00047h     ;(R/O)
  434. AINDX_RESERVED48    EQU    00048h     ;(R/O)
  435. AINDX_RESERVED49    EQU    00049h     ;(R/O)
  436. AINDX_RESERVED4a    EQU    0004ah     ;(R/O)
  437. AINDX_RESERVED4b    EQU    0004bh     ;(R/O)
  438. AINDX_RESERVED4c    EQU    0004ch     ;(R/O)
  439. AINDX_RESERVED4d    EQU    0004dh     ;(R/O)
  440. AINDX_RESERVED4e    EQU    0004eh     ;(R/O)
  441. AINDX_RESERVED4f    EQU    0004fh     ;(R/O)
  442. AINDX_DISPCONTROL1    EQU    00050h     ;(R/W)       132 Column Reg
  443. AINDX_DISPCONTROL2    EQU    00051h     ;(R/W)
  444. AINDX_DISPIDCOMPARATOR    EQU    00052h     ;(R/O)
  445. AINDX_MYSTERYREG    EQU    00053h     ;(R/O)       Referenced by AFI
  446. AINDX_CLOCKFREQSELECT    EQU    00054h     ;(R/W)       132 Column Reg
  447. AINDX_BORDERCOLOR    EQU    00055h     ;(R/W)
  448. AINDX_RESERVED56    EQU    00056h     ;(R/O)
  449. AINDX_RESERVED57    EQU    00057h     ;(R/O)
  450. AINDX_RESERVED58    EQU    00058h     ;(R/O)
  451. AINDX_RESERVED59    EQU    00059h     ;(R/O)
  452. AINDX_RESERVED5a    EQU    0005ah     ;(R/O)
  453. AINDX_RESERVED5b    EQU    0005bh     ;(R/O)
  454. AINDX_RESERVED5c    EQU    0005ch     ;(R/O)
  455. AINDX_RESERVED5d    EQU    0005dh     ;(R/O)
  456. AINDX_RESERVED5e    EQU    0005eh     ;(R/O)
  457. AINDX_RESERVED5f    EQU    0005fh     ;(R/O)
  458. AINDX_SPRITEPALETTEIDXLO    EQU    00060h     ;(R/W)
  459. AINDX_SPRITEIDXHI    EQU    00061h     ;(R/W)
  460. AINDX_SPRITEPALETTEIDXLOPREF    EQU    00062h     ;(R/W)
  461. AINDX_SPRITEIDXHIPREFETCH    EQU    00063h     ;(R/W)
  462. AINDX_PALETTEMASK    EQU    00064h     ;(R/W)
  463. AINDX_PALETTEDATA    EQU    00065h     ;(R/W)
  464. AINDX_PALETTESEQUENCE    EQU    00066h     ;(R/W)
  465. AINDX_PALETTEREDPREFETCH    EQU    00067h     ;(R/W)
  466. AINDX_PALETTEGREENPREFETCH    EQU    00068h     ;(R/W)
  467. AINDX_PALETTEBLUEPREFETCH    EQU    00069h     ;(R/W)
  468. AINDX_SPRITEDATA    EQU    0006ah     ;(R/W)
  469. AINDX_SPRITEPREFETCH    EQU    0006bh     ;(R/W)
  470. AINDX_RESERVED6c    EQU    0006ch     ;(R/O)
  471. AINDX_RESERVED6d    EQU    0006dh     ;(R/O)
  472. AINDX_RESERVED6e    EQU    0006eh     ;(R/O)
  473. AINDX_RESERVED6f    EQU    0006fh     ;(R/O)
  474. AINDX_EXTCLOCKSELECT    EQU    00070h     ;(R/W)       132 Column Reg
  475.  
  476. IRINDX_INDXTOTAL    EQU    00071h
  477. IRINDX_INDXMASK        EQU    000FFh
  478. IRINDX_DATAMASK        EQU    0FF00h
  479. IRINDX_DATASHIFT    EQU    8
  480.  
  481.  
  482. ;  Registers indexed via multi-register ports
  483. ;
  484. ;   All are W/O unless VGA or otherwise specified
  485. ;
  486.  
  487. REG_ATCPALETTE    EQU    000h        ;00h-0Fh are palette registers
  488. REG_ATCMODECTRL        EQU    010h        ;Compaq VGA: wait for vert retrace
  489. REG_ATCOVERSCAN        EQU    011h
  490. REG_ATCPLANEENABLE    EQU    012h
  491. REG_ATCPELPANNING    EQU    013h
  492. REG_ATCVGAREG    EQU    014h
  493. TOTAL_EGA_ATCREGS    EQU    014h
  494. TOTAL_IBM_ATCREGS    EQU    015h
  495. TOTAL_TSENG_ATCREGS    EQU    018h
  496.  
  497. REG_SEQRESET    EQU    000h
  498. REG_SEQCLKMODE    EQU    001h        ;reset sequencer before writing
  499. REG_SEQMAPMASK    EQU    002h
  500. REG_SEQCHARMAPSEL    EQU    003h
  501. REG_SEQMEMMODE    EQU    004h        ;reset sequencer before writing
  502. REG_SEQUNKNOWN_IBM1    EQU    007h
  503. TOTAL_IBM_SEQREGS    EQU    005h
  504. TOTAL_TSENG_SEQREGS    EQU    008h
  505.  
  506. REG_GDCSR    EQU    000h
  507. REG_GDCESR    EQU    001h
  508. REG_GDCCLRCMP    EQU    002h
  509. REG_GDCROTATE    EQU    003h
  510. REG_GDCREADMAP    EQU    004h
  511. REG_GDCMODE    EQU    005h
  512. REG_GDCMISC    EQU    006h        ;reset sequencer before writing
  513. REG_GDCDONTCARE        EQU    007h
  514. REG_GDCBITMASK    EQU    008h
  515. TOTAL_IBM_GDCREGS    EQU    009h
  516. TOTAL_TSENG_GDCREGS    EQU    00Fh
  517.  
  518. REG_CRTHORZTOTAL    EQU    000h
  519. REG_CRTHORZDSPEND    EQU    001h
  520. REG_CRTHORZSTBLNK    EQU    002h
  521. REG_CRTHORZENDBLNK    EQU    003h
  522. REG_CRTHORZSTRTRC    EQU    004h
  523. REG_CRTHORZENDRTRC    EQU    005h
  524. REG_CRTVERTTOTAL    EQU    006h
  525. REG_CRTOVERFLOW        EQU    007h
  526. REG_CRTPRESETROW    EQU    008h
  527. REG_CRTMAXSCAN    EQU    009h
  528. REG_CRTCURSTSCAN    EQU    00Ah
  529. REG_CRTCURENDSCAN    EQU    00Bh
  530. REG_CRTSTARTADDRHI    EQU    00Ch        ;R/W (W/O on CGA???)
  531. REG_CRTSTARTADDRLO    EQU    00Dh        ;R/W (W/O on CGA???)
  532. REG_CRTCURLOCHI        EQU    00Eh        ;R/W
  533. REG_CRTCURLOCLO        EQU    00Fh        ;R/W
  534. REG_CRTVERTSTRTRC    EQU    010h
  535. REG_CRTLPENHI    EQU    010h        ;R/O (dual-purpose register index)
  536. REG_CRTVERTENDRTRC    EQU    011h
  537. REG_CRTLPENLO    EQU    011h        ;R/O (dual-purpose register index)
  538. REG_CRTVERTDSPEND    EQU    012h
  539. REG_TSENG_CRTLPEN2    EQU    012h        ;R/O (dual-purpose register index)
  540. REG_CRTOFFSET    EQU    013h
  541. REG_CRTUNDLINELOC    EQU    014h
  542. REG_CRTVERTSTBLNK    EQU    015h
  543. REG_CRTVERTENDBLNK    EQU    016h
  544. REG_CRTMODECTRL        EQU    017h
  545. REG_CRTLINECMP    EQU    018h
  546. REG_CRTUNKNOWN_IBM1    EQU    03Fh
  547. TOTAL_CGA_CRTREGS    EQU    013h
  548. TOTAL_IBM_CRTREGS    EQU    019h
  549. TOTAL_TSENG_CRTREGS    EQU    026h
  550.  
  551. TOTAL_DACREGS    EQU    256        ;on VGA, there are 256 color registers
  552.  
  553.  
  554. ; Individual bits for registers
  555. ;
  556.  
  557. ATCPAL_ADDRMASK        EQU    001Fh
  558. ATCPAL_ENABLE    EQU    0020h
  559.  
  560. SEQRESET_ASYNC    EQU    0001h
  561. SEQRESET_SYNC    EQU    0002h
  562.  
  563. SEQCLK_8DOTS    EQU    0001h        ;reset sequencer before writing
  564. SEQCLK_CYCLES    EQU    0002h
  565. SEQCLK_SHIFTLOAD    EQU    0004h
  566. SEQCLK_DOTCLOCK        EQU    0008h        ;reset sequencer before writing
  567. SEQCLK_VGASHIFT4    EQU    0010h
  568. SEQCLK_VGASCREENOFF    EQU    0020h
  569.  
  570. SEQMAP_PLANE0    EQU    0001h
  571. SEQMAP_PLANE1    EQU    0002h
  572. SEQMAP_PLANE2    EQU    0004h
  573. SEQMAP_PLANE3    EQU    0008h
  574. SEQMAP_ALL    EQU    (SEQMAP_PLANE0 OR SEQMAP_PLANE1 OR  \
  575.                  SEQMAP_PLANE2 OR SEQMAP_PLANE3)
  576.  
  577. SEQMEM_ALPHA    EQU    0001h
  578. SEQMEM_EXTENDED        EQU    0002h
  579. SEQMEM_ODDEVENSAME    EQU    0004h        ;otherwise, even->0/2, odd->1/3
  580. SEQMEM_CHAIN4    EQU    0008h        ;low 2 bits select plane
  581. SEQMEM_ALL    EQU    (SEQMEM_ALPHA OR SEQMEM_EXTENDED OR SEQMEM_ODDEVENSAME OR SEQMEM_CHAIN4)
  582.  
  583. GDCSR_PLANE0    EQU    0001h
  584. GDCSR_PLANE1    EQU    0002h
  585. GDCSR_PLANE2    EQU    0004h
  586. GDCSR_PLANE3    EQU    0008h
  587. GDCSR_ALL    EQU    (GDCSR_PLANE0 OR GDCSR_PLANE1 OR  \
  588.                  GDCSR_PLANE2 OR GDCSR_PLANE3)
  589. GDCESR_ALL    EQU    <GDCSR_ALL>
  590.  
  591. GDCCLRCMP_ALL    EQU    000Fh
  592.  
  593. GDCROTATE_COUNT        EQU    0007h
  594. GDCROTATE_AND    EQU    0008h
  595. GDCROTATE_OR    EQU    0010h
  596. GDCROTATE_XOR    EQU    0018h
  597. GDCROTATE_NOFUNC    EQU    0000h
  598. GDCROTATE_ALL    EQU    (GDCROTATE_COUNT OR GDCROTATE_AND OR GDCROTATE_OR OR  \
  599.                  GDCROTATE_XOR)
  600.  
  601. GDCREADMAP_ALL    EQU    (PLANE0 OR PLANE1 OR PLANE2 OR PLANE3)
  602.  
  603. GDCMODE_WRITE0    EQU    0000h
  604. GDCMODE_WRITE1    EQU    0001h
  605. GDCMODE_WRITE2    EQU    0002h
  606. GDCMODE_WRITE3    EQU    0003h        ;only on a VGA
  607. GDCMODE_TEST    EQU    0004h
  608. GDCMODE_READ0    EQU    0000h
  609. GDCMODE_READ1    EQU    0008h
  610. GDCMODE_ODDEVENDIFF    EQU    0010h
  611. GDCMODE_ODDEVENBITS    EQU    0020h
  612. GDCMODE_256COLOR    EQU    0040h        ;only on a VGA
  613. GDCMODE_ALL    EQU    (GDCMODE_WRITE3 OR GDCMODE_TEST OR GDCMODE_READ1 OR  \
  614.                  GDCMODE_ODDEVENDIFF OR GDCMODE_ODDEVENBITS OR GDCMODE_256COLOR)
  615.  
  616. GDCMISC_NOCHARGEN    EQU    0001h
  617. GDCMISC_ODDTOEVEN    EQU    0002h
  618. GDCMISC_64K_A0000    EQU    0004h
  619. GDCMISC_32K_B0000    EQU    0008h
  620. GDCMISC_32K_B8000    EQU    000Ch
  621. GDCMISC_128K_A0000    EQU    0000h
  622. GDCMISC_ADDRMASK    EQU    000Ch
  623. GDCMISC_ALL    EQU    (GDCMISC_NOCHARGEN OR GDCMISC_ODDTOEVEN OR GDCMISC_32K_B8000)
  624.  
  625. GDCDONTCARE_ALL        EQU    000Fh
  626.  
  627. GDCBITMASK_ALL    EQU    00FFh
  628.  
  629. CRTOVFL_VERTTOTAL    EQU    0001h
  630. CRTOVFL_VERTDSPEND    EQU    0002h
  631. CRTOVFL_VERTSTRTRC    EQU    0004h
  632. CRTOVFL_VERTSTBLNK    EQU    0008h
  633. CRTOVFL_LINECMP        EQU    0010h
  634. CRTOVFL_CURLOC    EQU    0020h
  635.  
  636. CRTMAXSCAN_200CONV    EQU    0080h        ;VGA bit for 200->400 conversion
  637.  
  638. CRTMCTRL_COMPAT        EQU    0001h        ;CRT compatibility mode (8K disp.)
  639.  
  640.  
  641. MISCOUT_COLRPORTS    EQU    0001h        ;select 3Dx (or possibly 2Dx) ports
  642. MISCOUT_ENABLERAM    EQU    0002h
  643. MISCOUT_CLKSELECT    EQU    000Ch        ;reset sequencer before writing
  644. MISCOUT_DISABLEDRV    EQU    0010h
  645. MISCOUT_HIGHPAGE    EQU    0020h
  646. MISCOUT_NEGHORZRTRC    EQU    0040h
  647. MISCOUT_NEGVERTRTRC    EQU    0080h
  648.  
  649. STATUS1_HORZRTRC    EQU    0001h        ;very frequent, but very short
  650. STATUS1_LPENSTROBE    EQU    0002h
  651. STATUS1_LPENSWITCH    EQU    0004h
  652. STATUS1_VERTRTRC    EQU    0008h        ;less frequent, but much longer
  653. STATUS1_ATCOUTPUT1    EQU    0010h
  654. STATUS1_ATCOUTPUT2    EQU    0020h
  655.  
  656.  
  657. MONOMODE_HIRES    EQU    0001h        ;must always be set
  658. MONOMODE_ENABLE        EQU    0008h
  659. MONOMODE_BLINK    EQU    0020h
  660.  
  661. CGAMODE_80X25    EQU    0001h
  662. CGAMODE_320X200        EQU    0002h
  663. CGAMODE_BW    EQU    0004h
  664. CGAMODE_ENABLE    EQU    0008h
  665. CGAMODE_640X200        EQU    0010h
  666. CGAMODE_BLINK    EQU    0020h
  667.  
  668. CGACOLOR_BORDER        EQU    000Fh        ;border in modes 0/1/2/3, bgnd in 4/5
  669. CGACOLOR_INTENSE    EQU    0010h
  670. CGACOLOR_SET    EQU    0020h
  671.  
  672. endif  ;INCL_VIDEOHW
  673.  
  674.  
  675. ifdef INCL_VIDEOPTR
  676.  
  677. ; Define current pointer-draw limitations
  678. ;
  679.  
  680. PTRSAVWD    EQU    (MAX_PTRWIDTH+1)
  681. PTRSAVHT    EQU    (MAX_PTRHEIGHT)
  682. PTRSAVSIZE    EQU    (PTRSAVWD*PTRSAVHT)
  683.  
  684. BYTEPTRSAVWD    EQU    (PTRSAVWD*8)
  685. BYTEPTRSAVHT    EQU    (PTRSAVHT*1)
  686. BYTEPTRSAVSIZE    EQU    (BYTEPTRSAVWD*BYTEPTRSAVHT)
  687.  
  688. SCRSAVWD    EQU    (PTRSAVWD+2)
  689. SCRSAVHT    EQU    (PTRSAVHT+4)
  690. SCRSAVSIZE    EQU    (SCRSAVWD*SCRSAVHT)
  691.  
  692. BYTESCRSAVWD    EQU    (SCRSAVWD*8)
  693. BYTESCRSAVHT    EQU    (SCRSAVHT*1)
  694. BYTESCRSAVSIZE    EQU    (BYTESCRSAVWD*BYTESCRSAVHT)
  695.  
  696.  
  697. ; Define EGA/VGA off-screen memory usage
  698. ;
  699.  
  700. OFFSCREEN0D    EQU    ((320/8)*200)
  701. OFFSCREEN0E    EQU    ((640/8)*200)
  702. OFFSCREEN10    EQU    ((640/8)*350)
  703. OFFSCREEN12    EQU    ((640/8)*480)
  704. OFFSCREEN13    EQU    ((320/1)*200)
  705.  
  706. SIZBASIC    EQU    00004h        ;reserved for BASIC
  707. SIZEGASYS    EQU    00001h        ;reserved for EGA.SYS
  708. SIZMOUSE    EQU    00001h        ;reserved for MOUSE drivers
  709. SIZMICROSOFT    EQU    00010h        ;reserved for use by Microsoft
  710. SIZRESERVED    EQU    (SIZBASIC+SIZEGASYS+SIZMOUSE+SIZMICROSOFT)
  711.  
  712. OFFBASIC    EQU    00000h
  713. OFFEGASYS    EQU    (OFFBASIC  + SIZBASIC)
  714. OFFMOUSE    EQU    (OFFEGASYS + SIZEGASYS)
  715. OFFMICROSOFT    EQU    (OFFMOUSE  + SIZMOUSE)
  716.  
  717. OFFPTRSAV0D    EQU    (OFFSCREEN0D + SIZRESERVED)
  718. OFFSCRSAV0D    EQU    (OFFPTRSAV0D + PTRSAVSIZE)
  719.  
  720. OFFPTRSAV0E    EQU    (OFFSCREEN0E + SIZRESERVED)
  721. OFFSCRSAV0E    EQU    (OFFPTRSAV0E + PTRSAVSIZE)
  722.  
  723. OFFPTRSAV10    EQU    (OFFSCREEN10 + SIZRESERVED)
  724. OFFSCRSAV10    EQU    (OFFPTRSAV10 + PTRSAVSIZE)
  725.  
  726. OFFPTRSAV12    EQU    (OFFSCREEN12 + SIZRESERVED)
  727. OFFSCRSAV12    EQU    (OFFPTRSAV12 + PTRSAVSIZE)
  728.  
  729. OFFPTRSAV13    EQU    (OFFSCREEN13 + SIZRESERVED)
  730. OFFSCRSAV13    EQU    (OFFPTRSAV13 + BYTEPTRSAVSIZE)
  731.  
  732.  
  733. endif  ;INCL_VIDEOPTR
  734.  
  735.  
  736. VVD_NAME1    EQU    "VVIDEO1$"  ;registered name of primary VVD
  737. VVD_NAME2    EQU    "VVIDEO2$"  ;registered name of secondary VVD
  738.  
  739.  
  740. ifdef  INCL_VIDEOSYSREQ
  741.  
  742. ;***    VVD constants for system communication
  743. ;
  744. ifndef CF_TEXT
  745. CF_TEXT        EQU    1        ;clipboard formats
  746. CF_BITMAP    EQU    2        ;(see PMWIN.INC)
  747. endif
  748.  
  749. ADAPTER_MONO    EQU    0    ;adapters supported
  750. ADAPTER_CGA    EQU    1    ;(same as VioGetConfig constants)
  751. ADAPTER_EGA    EQU    2
  752. ADAPTER_VGA    EQU    3
  753. ADAPTER_8514A    EQU    7
  754.  
  755. ifndef MONITOR_8503           ;BUGBUG: avoid conflicts with bsesub.inc
  756. MONITOR_MONO    EQU    0    ;monitors supported
  757. MONITOR_RGB    EQU    1    ;(typical for CGAs)
  758. MONITOR_ECD    EQU    2    ;(typical for EGAs)
  759. MONITOR_8503    EQU    3    ;(VGA or 8514/A monochrome)
  760. MONITOR_8512_3    EQU    4    ;(VGA or 8514/A color)
  761. MONITOR_8514    EQU    9    ;(VGA or 8514/A 1024x768 color, interlaced)
  762. endif
  763.  
  764. FORMAT_CGA    EQU    2    ;LVB formats supported
  765. FORMAT_4BYTE    EQU    4
  766. FORMAT_BITMAP    EQU    0
  767.  
  768. DDFORMAT_4PLANE        EQU    1    ;display driver formats supported
  769. ifdef  ATLAS                                   ;J-TS00V
  770. DDFORMAT_8PLANE        EQU    2    ;display driver 8 plane formats supported ;j-ni*/
  771. DDFORMAT_8PLANE_PALETTE        EQU    3                    ;j-hm
  772.         ;display driver 8 plane with palette supported        ;j-hm*/
  773. endif  ;ATLAS                                  //J-TS00V
  774.  
  775. MODE_MONO    EQU    00001h ;monochrome mode in effect
  776. MODE_UNDERLINE    EQU    00002h ;underlining in effect
  777. MODE_SUP_XSCALE2    EQU    01000h ;X scaling supported by factor of 2
  778. MODE_SUP_YSCALE2    EQU    02000h ;Y scaling supported by factor of 2
  779. MODE_SUP_PARTIALSCAN    EQU    04000h ;partial scanline copy requests supported
  780.  
  781. SUSPEND_NONE    EQU    0 ;VDM running normally
  782. SUSPEND_OUT_OF_MEMORY    EQU    1 ;VDM suspended due to low memory
  783. SUSPEND_UNSUPPORTED_MODE    EQU    2 ;VDM suspended due to unsupported mode
  784.  
  785. ACCESS_RELEASE    EQU    0 ;values for SETACCESS request
  786. ACCESS_REQUEST    EQU    1
  787. ACCESS_PMREQUEST    EQU    2
  788.  
  789. CONTROL_RELEASE        EQU    0 ;Release event thread
  790. CONTROL_VDMMINIMIZED    EQU    1 ;Disable video events for VDM
  791. CONTROL_VDMUNMINIMIZED    EQU    2 ;Enable video events for VDM
  792.  
  793.  
  794. ; VVD system functions
  795. ;
  796. VVDSYSREQ_SETACCESS    EQU    1   ;Obtain exclusive event access
  797. VVDSYSREQ_SETFOCUS    EQU    2   ;Notify VDM gaining/losing focus
  798. VVDSYSREQ_SETLOCK    EQU    3   ;Lock/unlock VDM's video state 
  799. VVDSYSREQ_QUERYMODE    EQU    4   ;Query VDM's current mode 
  800. VVDSYSREQ_QUERYCURSOR    EQU    5   ;Query VDM's current mode 
  801. VVDSYSREQ_QUERYPALETTE    EQU    6   ;Query VDM's palette settings 
  802. VVDSYSREQ_COPYLVB    EQU    7   ;Copy LVB data
  803. VVDSYSREQ_COPYBITMAP    EQU    8   ;Copy bitmap data
  804. VVDSYSREQ_WAITEVENT    EQU    9   ;Wait for VDM video update event
  805. VVDSYSREQ_CONTROLEVENT    EQU    10  ;Perform event control operations
  806.  
  807. VVDSYSREQ_SETDRQ    EQU    11  ;Set display requirements
  808. VVDSYSREQ_REQMEM    EQU    12  ;Request off-screen video memory
  809. VVDSYSREQ_FREEMEM    EQU    13  ;Free off-screen video memory
  810. VVDSYSREQ_REQCTRL    EQU    14  ;Request video controller ownership
  811. VVDSYSREQ_FREECTRL    EQU    15  ;Free video controller ownership
  812.  
  813. VVDSYSREQ_QUERYVRAMSTATUS    EQU    16;Return VRAM status since last call
  814. VVDSYSREQ_SETOEMFLAG    EQU    17  ;Set OEM Status Flag
  815.  
  816. VVDSYSREQ_MAX    EQU    17
  817.  
  818.  
  819. ; VVD event IDs for VVDSYSREQ_WAITEVENT
  820. ;
  821. VVDEVENT_NONE    EQU    0   ;No change
  822. VVDEVENT_MODE    EQU    1   ;Change in VDM's mode 
  823. VVDEVENT_PALETTE    EQU    2   ;Change in VDM's palette 
  824. VVDEVENT_LVB    EQU    3   ;Change in VDM's LVB 
  825. VVDEVENT_SCROLL        EQU    4   ;Scroll of VDM's LVB 
  826. VVDEVENT_STRING        EQU    5   ;String output
  827. VVDEVENT_CURSOR        EQU    6   ;Cursor position/type change
  828. VVDEVENT_INPUT    EQU    7   ;VDM is checking for input data
  829. VVDEVENT_ENDPASTE    EQU    8   ;VDM has cancelled pasting
  830. VVDEVENT_PASTE    EQU    9   ;VDM is ready for additional pasting
  831. VVDEVENT_SWITCHERROR    EQU    10  ;VDM cannot be switched foreground
  832. VVDEVENT_TITLECHANGE    EQU    11  ;VDM title has changed
  833. VVDEVENT_DDE    EQU    12  ;Set/Clear DDE flag            ;@DDE*/
  834.  
  835. VVDEVENT_MAX    EQU    12                    ;@DDE
  836.  
  837.  
  838.  
  839. ;***    VVD DosRequestVDD communication structures
  840. ;
  841. DefStruc ,vvm_s            ;vvm (output for MODE event)
  842.     ULONG  vvm_ulAdapter       ;see the ADAPTER_* constants
  843.     ULONG  vvm_ulFormat           ;see the FORMAT_* constants
  844.     ULONG  vvm_ulDDFormat      ;see the DDFORMAT_* constants
  845.     ULONG  vvm_flMode           ;mode descriptors (see MODE_* constants)
  846.     ULONG  vvm_nRows           ;height of screen in rows (or y pixels)
  847.     ULONG  vvm_nCols           ;width of screen in columns (or x pixels)
  848.     ULONG  vvm_nPlanes           ;# of planes (must be 1 for Cruiser)
  849.     ULONG  vvm_nBitCount       ;if TEXT, zero;    if BITMAP, bits per pixel
  850.     ULONG  vvm_ulCellWidth     ;width of cells (normally 8;  1 for BITMAPs)
  851.     ULONG  vvm_ulCellHeight    ;height of cells (1 for BITMAPs)
  852.     ULONG  vvm_fSuspended      ;see the SUSPEND_* constants
  853.     ULONG  vvm_cpID           ;current code-page ID
  854.     ULONG  vvm_FormatID           ;current format ID
  855. ifdef ATLAS_GALE                               ;J-TS00V
  856.     ULONG  vvm_GridColor       ;current grid color               j-ys0702
  857.     ULONG  vvm_AttrFlag           ;current screen intensity           j-ys0702
  858.     ULONG  vvm_nRows2           ;height of screen in rows for superimpose text     j-ys0702
  859.     ULONG  vvm_nCols2           ;width of screen in columns for superimpose text     j-ys0702
  860.     ULONG  vvm_ulCellWidth2    ;width of cells for superimpose text    j-ys0702
  861.     ULONG  vvm_ulCellHeight2   ;height of cells for superimpose text   j-ys0702
  862.     ULONG  vvm_ulFormat2       ;4 for superimpose, otherwise 0           j-ys0702
  863. endif  ;ATLAS_GALE                              //J-TS00V
  864. EndStruc VVMODE
  865. DefType NPVVMODE,dd
  866. DefType PVVMODE,dd
  867.  
  868. ifdef  ATLAS_GALE                               ;J-TS00V
  869. FORMATID_EPOCHColor    EQU    041h                    ;J-TS00V
  870. FORMATID_EPOCHMono    EQU    081h                    ;J-TS00V
  871. FORMATID_MckColor    EQU    020h                    ;J-TS00V
  872. FORMATID_CommonFMT    EQU    070h                    ;J-TS00V
  873. endif  ;ATLAS_GALE                              //J-TS00V
  874.  
  875. DefStruc ,vvr_s            ;vvr (input for COPYBITMAP request)
  876.     ULONG  vvr_ulDDFormat      ;display driver format (0 if DIB used)
  877.     ULONG  vvr_cx           ;target bitmap width
  878.     ULONG  vvr_cy           ;target bitmap height
  879.     RECTL  vvr_rcl           ;rectangle being requested
  880.     PBYTE  vvr_pbColorXlate    ;display driver color translation table
  881. EndStruc VVRECT
  882. DefType NPVVRECT,dd
  883. DefType PVVRECT,dd
  884.  
  885. DefStruc ,vvl_s            ;vvl (output for LVB event)
  886.     RECTL  vvl_rcl           ;rectangle being scrolled
  887.     ULONG  vvl_fCertain           ;TRUE if entire area changed, FALSE if unknown
  888. ifdef ATLAS_GALE                               ;J-TS00V
  889.     ULONG  vvl_pFlags           ;LSB indicate which page (text or graphics) is    j-ys0702
  890.                 ;updated. 0 means graphics, 1 does text.       *;/J-TS00V
  891. endif  ;ATLAS_GALE                              //J-TS00V
  892. EndStruc VVLVB
  893. DefType NPVVLVB,dd
  894. DefType PVVLVB,dd
  895.  
  896. DefStruc ,vvs_s            ;vvs (output for SCROLL event)
  897.     RECTL  vvs_rcl           ;rectangle being scrolled
  898.     LONG   vvs_fill           ;fill value
  899.     LONG   vvs_nRows           ;# rows (negative means reverse scroll)
  900.     LONG   vvs_nCols           ;# columns (0,0 means rectangle blankfilled)
  901. EndStruc VVSCROLL
  902. DefType NPVVSCROLL,dd
  903. DefType PVVSCROLL,dd
  904.  
  905. DefStruc ,vva_s            ;vva (output for STRING event)
  906.     ULONG  vva_row           ;beginning row of string
  907.     ULONG  vva_col           ;beginning column of string
  908.     ULONG  vva_nChars           ;# characters in string
  909. EndStruc VVSTRING
  910. DefType NPVVSTRING,dd
  911. DefType PVVSTRING,dd
  912.  
  913. DefStruc ,vvc_s            ;vvc (output for CURSOR event)
  914.     ULONG  vvc_row           ;row (y position) of VDM's cursor 
  915.     ULONG  vvc_col           ;column (x position) of VDM's cursor 
  916.     ULONG  vvc_ulScanStart     ;starting scan-line for VDM's cursor 
  917.     ULONG  vvc_ulScanEnd       ;ending scan-line for VDM's cursor 
  918.     ULONG  vvc_fVisible           ;TRUE if VDM cursor visible, FALSE if not
  919. EndStruc VVCURSOR
  920. DefType NPVVCURSOR,dd
  921. DefType PVVCURSOR,dd
  922.  
  923. DefStruc ,vve_s            ;vve (output for VVDSYSREQ_GET/WAITEVENT)
  924.     LONG   vve_iEvent           ;one of the VVDEVENT_* constants
  925.     ULONG  vve_sgID           ;screen group ID of VDM
  926.     ULONG  vve_nData           ;# of entries of information returned
  927. EndStruc VVEVENT
  928. DefType NPVVEVENT,dd
  929. DefType PVVEVENT,dd
  930.  
  931. DefStruc ,vvreg_s            ;vvreg (shadow entry for VVDSYSREQ_SETDRQ)
  932.     USHORT vvreg_port           ;port #
  933.     CHAR   vvreg_indx           ;register index # (-1 if index reg)
  934.     _BYTE   vvreg_value        ;last value written to register by VDD
  935. EndStruc VVREG
  936. DefType NPVVREG,dd
  937. DefType PVVREG,dd
  938.  
  939.  
  940. ;*** In the DRQ structure, all pointers are 16:16, and as such, cannot be
  941. ;    dereferenced directly from C.  The selector portions are GDT aliases to
  942. ;    the PM display driver's resident data, and are valid in any context, even
  943. ;    interrupt-time.
  944. ;
  945. ALL_RESERVED    EQU    0ffffffffh
  946.  
  947. DRQ_DIRTYREGS    EQU    001h    ;video controller registers have been modified
  948.  
  949. DefStruc ,vvdrq_s            ;vvdrq (main structure for VVDSYSREQ_SETDRQ)
  950.     PBYTE  vvd_pPhysVRAM       ;physical address of VRAM
  951.     ULONG  vvd_nbReserved      ;# of reserved bytes
  952.     ULONG  vvd_offLatchByte    ;offset of available latch storage
  953.     PBYTE  vvd_pfbDRQFlags     ;pointer to flags (see DRQ_* constants)
  954.     PBYTE  vvd_pfCtrlOwned     ;address of display.dll's fCtrlOwned flag 
  955.     PBYTE  vvd_pfCtrlNotify    ;address of display.dll's fCtrlNotify flag 
  956.     ULONG  vvd_nShadowRegs     ;# of registers to shadow
  957.     PVVREG vvd_pShadowData     ;address of first entry in shadow list
  958. EndStruc VVDRQ
  959. DefType NPVVDRQ,dd
  960. DefType PVVDRQ,dd
  961.  
  962.  
  963. endif  ;INCL_VIDEOSYSREQ
  964.  
  965.  
  966. ifdef  INCL_VIDEODEVREQ
  967.  
  968. ;***    VVD constants for inter-VDD communication
  969. ;
  970.  
  971. VVDDEVREQ_POSTPEEK    EQU    1   ;VDM peeking for keyboard data
  972. VVDDEVREQ_POSTREAD    EQU    2   ;VDM reading for keyboard data
  973. VVDDEVREQ_POSTPASTE    EQU    3   ;VDM ready for more paste data
  974. VVDDEVREQ_POSTMOUSE    EQU    4   ;VDM mouse activity notification
  975. VVDDEVREQ_DEVACCEPT    EQU    5   ;request VVD to manage adapter
  976. VVDDEVREQ_DEVRELEASE    EQU    6   ;request VVD to free adapter
  977. VVDDEVREQ_DSPACCEPT    EQU    7   ;request VVD to manage display
  978. VVDDEVREQ_DSPRELEASE    EQU    8   ;request VVD to free display
  979. VVDDEVREQ_POSTEVENT    EQU    9   ;post a VDM event to the Shield
  980. VVDDEVREQ_SAVERESTORE    EQU    10   ;enable/disable save/restore    ;XGA
  981. VVDDEVREQ_REPAINT    EQU    11   ;keep VRAMISTOAST bit set         ;XGA
  982. VVDDEVREQ_REQCTRL    EQU    12   ;Request controller ownership    D1545
  983. VVDDEVREQ_FREECTRL    EQU    13   ;Free video controller ownership D1545
  984. VVDDEVREQ_PM_WINDOW    EQU    14   ;Set         on PM DeskTop state D1545
  985. VVDDEVREQ_ENABLE_DDE    EQU    15   ;Set/Clear DDE flag           @DDE
  986. VVDDEVREQ_XGAPRESENT    EQU    16   ;VXGA installed               @054
  987. VVDDEVREQ_UNMAPVRAM    EQU    17   ;Unmap A0000 aperture           @054
  988. VVDDEVREQ_8514PRESENT    EQU    18   ;V8514 installed               @055
  989.  
  990. VVDDEVREQ_MAX    EQU    18                     ;D1545
  991.  
  992. ifdef  ATLAS_GALE                               ;J-TS00V
  993. VVDDEVREQ_VIDEOBUFFER equ  VVDDEVREQ_MAX+1
  994. endif  ;ATLAS_GALE                              //J-TS00V
  995. ifdef  VTEXT                                   ;J-TS00V
  996. VVDDEVREQ_NOTIFYVTEXT equ  VVDDEVREQ_MAX+2
  997. endif  ;VTEXT                                  //J-TS00V
  998.  
  999.  
  1000. POSTEVENT_ADD    EQU    00001h     ;add given event
  1001. POSTEVENT_FLUSH        EQU    00002h     ;flush given (or existing) event
  1002. POSTEVENT_DELETE    EQU    00004h     ;delete existing event
  1003.  
  1004.  
  1005. ;***    VVD VDHRequestVDD communication structures
  1006. ;
  1007. DefStruc ,vvp_s            ;vvp (input for POSTEVENT request)
  1008.     LONG   vvp_iEvent           ;see the VVDEVENT_* constants
  1009.     PVOID  vvp_pEvent           ;event data (varies from one event to another)
  1010.     ULONG  vvp_flEvent           ;event posting flags (see POSTEVENT_* constants)
  1011. EndStruc VVPOST
  1012. DefType NPVVPOST,dd
  1013. DefType PVVPOST,dd
  1014.  
  1015.  
  1016. endif  ;INCL_VIDEODEVREQ
  1017.  
  1018.  
  1019. ;*** VVD exported function prototypes
  1020. ;
  1021.  
  1022. ifdef INCL_VIDEOINTERFACES                        ;@025
  1023.  
  1024. DefType PFNINT2FP,dd            ;@025
  1025.  
  1026. ;*** ULONG value sent to the registered _INT 2F routine **        ;@025*/
  1027. VDHVVD_INT2F_OFF    EQU    0                       ;@025
  1028. VDHVVD_INT2F_ON        EQU    1                       ;@025
  1029. VDHVVD_INT2F_FG_START    EQU    2                       ;@025
  1030. VDHVVD_INT2F_FG_END    EQU    3                       ;@025
  1031. VDHVVD_INT2F_BG_START    EQU    4                       ;@025
  1032. VDHVVD_INT2F_BG_END    EQU    5                       ;@025
  1033.  
  1034. ifndef VDHENTRY                                ;@025
  1035. DefEntry VDHENTRY PASCAL NEAR                          ;@025
  1036. endif                                    ;@025
  1037.  
  1038. VDHENTRY VDHRegisterInt2FProc        <FLAGS, PFNINT2FP>          ;@025
  1039.  
  1040. ;*** BOOL value indicates the type of notifications required **       ;@025*/
  1041. VDHVVD_NOTIFY_ON_OFF    EQU    1                       ;@025
  1042. VDHVVD_NOTIFY_START    EQU    2                       ;@025
  1043. VDHVVD_NOTIFY_END    EQU    4                       ;@025
  1044.  
  1045. endif    ;INCL_VIDEOINTERFACES                    ;@025*/
  1046.  
  1047. ; None
  1048.