home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v2.zip / DDKX86 / DBCSDD / SRC_DBCS / VDHWNDW / VDHSTRUC.INC < prev    next >
Text File  |  1995-04-14  |  13KB  |  247 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. ;/*****************************************************************************
  13. ;*
  14. ;* SOURCE FILE NAME = VDHSTRUCT.INC
  15. ;*
  16. ;* DESCRIPTIVE NAME = Structure definitions for base video
  17. ;*
  18. ;*
  19. ;* VERSION      V2.0
  20. ;*
  21. ;* DATE
  22. ;*
  23. ;* DESCRIPTION  Structure definitions for base video
  24. ;*
  25. ;* FUNCTIONS    NONE
  26. ;*
  27. ;* NOTES        NONE
  28. ;*
  29. ;* STRUCTURES   NONE
  30. ;*
  31. ;* EXTERNAL REFERENCES
  32. ;*
  33. ;*              NONE
  34. ;*
  35. ;* EXTERNAL FUNCTIONS
  36. ;*
  37. ;*              NONE
  38. ;*
  39. ;* CHANGE ACTIVITY =
  40. ;*   DATE      FLAG        APAR   CHANGE DESCRIPTION
  41. ;*   --------  ----------  -----  --------------------------------------
  42. ;*   mm/dd/yy  @Vr.mpppxx  xxxxx  xxxxxxx
  43. ;*   03/25/89              132    DCR 132 changes
  44. ;*   04/11/91              1348   NAKADA, Enable DBCS support in Vio-Window, DCR 1348
  45. ;*
  46. ;*****************************************************************************/
  47.  
  48. VDHBUF  STRUC                           ; VDH BufferUpdate stack frame
  49.  
  50. ;/*
  51. ;** this is the saved BP from the caller                                ;          
  52. ;*/
  53.                 dw      ?               ; BP of BVS
  54.  
  55. ;/*
  56. ;** these are local variables used by Buffer updated functions          ;          
  57. ;*/
  58.  
  59. PVB_Sel         dw      ?               ; Selector to the PVB or 0      ;          
  60. LVB_Sel         dw      ?               ; Selector to the LVB or 0      ;          
  61.  
  62. IFDEF D1348                             ;/prepare the 2nd LVB for DBCS flag
  63. j_dbcslvbsel    dw      0               ; DBCS flag LVB selector
  64.                                         ; save LVB size
  65. j_lvbsize       dw      0               ; LVB size (LVB and PS)
  66.                                         ; if 64K, set 0FFFFh
  67. j_funcindx      dw      0               ; function index for DBCS BufferUpdate
  68.                                         ;/DBCS BufferUpdate (bisecting DBCS
  69.                                         ; character status)
  70. j_dbcsstatus    dw      0               ; bisecting DBCS character status
  71. flgDBCS         dw      ?               ; flag to indicate some DBCS exists
  72. shadow_Flags    dw      ?               ; to see it's from wrttty
  73. lpNLSExt        dd      ?               ; pointer to NLS extended env.
  74. wSaveCpAttr1    dw      ?
  75. wSaveAttr2Attr3 dw      ?
  76. IFDEF EPOCH
  77. shadowFMTID     dw      ?
  78. shadowColor     dw      ?
  79. shadowAttribute dw      ?               ; This word is used only when   ;@A1
  80.                                         ; the request is ANSIcall's     ;@A1
  81.                                         ; WrtTTY and Scroll.            ;@A1
  82.                                         ; In those cases, common format ;@A1
  83.                                         ; attr. to epoch format attr    ;@A1
  84.                                         ; conversion is needed.         ;@A1
  85. ENDIF
  86. ENDIF ;D1348
  87.  
  88. mincol          dw      ?               ; left most column of the LVB   ;          
  89. minrow          dw      ?               ; top most row of the LVB       ;          
  90. maxcol          dw      ?               ; rigth most column of the LVB  ;          
  91. maxrow          dw      ?               ; bottom most row of the LVB    ;          
  92.  
  93. cellsize        dw      ?               ; number of bytes per cell in LVB ;          
  94. lvb_width       dw      ?               ; number of cells wide the LVB is ;          
  95.  
  96. ScrollFlags     dw      ?               ; flags for Scroll functions    ;          
  97. FillCellLow     dw      ?               ; low word of the default cell  ;          
  98. FillCellHigh    dw      ?               ; high word of the default cell ;          
  99.  
  100. RowsToFill      dw      ?               ; number of rows left blank by scroll ;          
  101.  
  102. LVBFillCount    dw      ?               ; number of bytes per fill row in LVB ;          
  103. LVBFillSkip     dw      ?               ; number of bytes to next line in LVB ;          
  104. LVBFillOff      dw      ?               ; beginning offset of fill rect in LVB ;          
  105.  
  106. PVBFillCount    dw      ?               ; number of bytes per fill row in PVB ;          
  107. PVBFillSkip     dw      ?               ; number of bytes to next line in PVB ;          
  108. PVBFillOff      dw      ?               ; beginning offset of fill rect in PVB ;          
  109.  
  110. RowsToMove      dw      ?               ; number of rows in rectangle to move ;          
  111.  
  112. LVBMoveCount    dw      ?               ; number of bytes per move row in LVB ;          
  113. LVBMoveSkip     dw      ?               ; number of bytes to next row in LVB ;          
  114. LVBMoveSrcOff   dw      ?               ; beginning of source move rect in LVB ;          
  115. LVBMoveDestOff  dw      ?               ; beginning of dest move rect in LVB ;          
  116.  
  117. PVBMoveCount    dw      ?               ; number of bytes per move row in LVB ;          
  118. PVBMoveSkip     dw      ?               ; number of bytes to next row in LVB ;          
  119. PVBMoveSrcOff   dw      ?               ; beginning of source move rect in LVB ;          
  120. PVBMoveDestOff  dw      ?               ; beginning of dest move rect in LVB ;          
  121.  
  122. leftfill        dw      ?               ; left most column of fill rectangle ;          
  123. topfill         dw      ?               ; top most row of fill rectangle   ;          
  124. rightfill       dw      ?               ; right most column of fill rectangle ;          
  125. bottomfill      dw      ?               ; bottom most row of fill rectangle ;          
  126.  
  127. leftscroll      dw      ?               ; left most column of source rectangle ;          
  128. topscroll       dw      ?               ; top most row of source rectangle ;          
  129. rightscroll     dw      ?               ; right most column of source rectangle ;          
  130. bottomscroll    dw      ?               ; bottom most row of source rectangle ;          
  131.  
  132. leftdest        dw      ?               ; left most column of destination rect ;          
  133. topdest         dw      ?               ; top most row of destination rect ;          
  134. rightdest       dw      ?               ; right most column of destination rect ;          
  135. bottomdest      dw      ?               ; bottom most row of destination rect ;          
  136.  
  137. ;/*
  138. ;** this was on the stack before we got here
  139. ;*/
  140.                 dw      ?               ; IP of BVS                     ;          
  141.                 dw      ?               ; CS of BVS                     ;          
  142. FuncNumLo       dw      ?               ; BufferUpdate function number  ;          
  143. FuncNumHi       dw      ?               ; 
  144. ParmBuf         dd      ?               ; Selector:offset of paramter buffer ;          
  145. EnvBufParm      dd      ?               ; Selector:offset of environment buffer ;          
  146.  
  147. VDHBUF  ENDS
  148.  
  149. ;/*
  150. ;**   The Read and Write routines use a different set or local variables  ;          
  151. ;**   than the Scroll functions do.  The following are aliases for elements ;          
  152. ;**   of the local variable frame used by the Read and Write routines.    ;          
  153. ;*/
  154.  
  155. lvb_height      equ     ScrollFlags     ; number of rows in LVB         ;          
  156. FirstRow        equ     RowsToFill      ; number of cells or bytes in first row ;          
  157. RowLength       equ     LVBFillSkip     ; number of cells or bytes in later rows ;          
  158. LVBCount        equ     LVBFillCount    ; number of cells or bytes to move, LVB ;          
  159. LVBOff          equ     LVBFillOff      ; offset for read or write in LVB ;          
  160. PVBSkip         equ     PVBFillSkip     ; number of bytes to next row in PVB ;          
  161. PVBCount        equ     PVBFillCount    ; number of cells or bytes to move, PVB ;          
  162. PVBOff          equ     PVBFillOff      ; offset for read or write in LVB ;          
  163.  
  164. ;/*
  165. ;**   The following are equates used for the archaic CGA routines.        ;          
  166. ;**   This is only to avoid build problems until the routines get updated.;          
  167. ;*/
  168.  
  169. BottomRow       equ     ScrollFlags                                       ;          
  170. LeftCol         equ     RowsToFill                                        ;          
  171. LineLength      equ     LVBFillSkip                                       ;          
  172. Retrace         equ     LVBFillCount                                      ;          
  173. RightCol        equ     LVBFillOff                                        ;          
  174. ScrollCount     equ     PVBFillSkip                                       ;          
  175. SkipLength      equ     PVBFillCount                                      ;          
  176. TopRow          equ     PVBFillOff                                        ;          
  177.  
  178. IFDEF D1348
  179. defaultDBCS     equ     00000001b       ; default code page is of DBCS
  180. AvioDBCS        equ     00000010b       ; a code page for Avio lcid 1 to 3 is
  181.                                         ; of DBCS
  182. anyDBCS         equ     defaultDBCS+AvioDBCS
  183. ENDIF ;D1348
  184.  
  185.  
  186. VDHPARM STRUC                           ; VDH BufferUpdate parameter structure
  187.  
  188. ParmLength      dw      ?               ; Length parameter block buffer
  189. Flags           dw      ?               ; Source/target buffer (LVB, PVB)
  190. AppDataAddr     dd      ?               ; Address of application data buffer
  191. AppCellAddr     dd      ?               ; Address of char, attr, or cell
  192. FuncIndex       dw      ?               ; Sub-function number
  193. Row             dw      ?               ; Starting row
  194. Col             dw      ?               ; Starting column
  195. Row2            dw      ?               ; Secondary row or ending row
  196. Col2            dw      ?               ; Secondary column or ending column
  197. RepeatFactor    dw      ?               ; # of chars, cells, rows, or cols
  198. LogicalBufSel   dw      ?               ; LVB selector
  199. TouchXLeft      dw      ?               ; left most col touched by the write)   ;          
  200. TouchYTop       dw      ?               ; top most col touched by the write)    ;          
  201. TouchXRight     dw      ?               ; right most col touched by the write)  ;          
  202. TouchYBottom    dw      ?               ; bottom most col touched by the write) ;          
  203. LVBRowOff       dw      ?               ; row offset of the LVB relative to PVB ;          
  204. LVBColOff       dw      ?               ; col offset of the LVB relative to PVB ;          
  205. LVBWidth        dw      ?               ; width of the LVB in cells             ;          
  206. LVBHeight       dw      ?               ; height of the LVB in cells            ;          
  207. LVBFormatID     db      ?               ; format id of the LVB                  ;          
  208. LVBAttrCount    db      ?               ; number of attributes in the LVB       ;          
  209.  
  210. VDHPARM ENDS
  211.  
  212.  
  213. VDHENV  STRUC                           ; VDH environment buffer structure
  214.  
  215. ModeDataOff     dw      ?               ; Offset to mode data in env. buffer
  216.  
  217. VDHENV  ENDS
  218.  
  219.  
  220. MODEDAT STRUC                           ; VDH mode data structure
  221.  
  222. ModeLength      dw      ?               ; Length of parameter buffer
  223. ModeType        db      ?               ; Mode type bits
  224. Color           db      ?               ; Color value
  225. TextCols        dw      ?               ; # of text columns in current mode
  226. TextRows        dw      ?               ; # of text rows in current mode
  227. HorizRes        dw      ?               ; Horizontal pel resolution
  228. VertRes         dw      ?               ; Vertical pel resolution
  229. AttrFormat      db      ?               ; Attribute format
  230. NAttributes     db      ?               ; # of attribute in character cell
  231. BufferAddrLo    dw      ?               ; Physical address of PVB
  232. BufferAddrHi    dw      ?               ; 
  233. BufferLenLo     dw      ?               ; Length of PVB in current mode
  234. BufferLenHi     dw      ?               ; 
  235. FullBufSizeLo   dw      ?               ; Size of LVB for PVB save
  236. FullBufSizeHi   dw      ?               ; 
  237. PartBufSize     dd      ?               ;          
  238. ExtData         dd      ?               ;          
  239. ScrlRectLeft    dw      ?               ;          
  240. ScrlRectTop     dw      ?               ;          
  241. ScrlRectRight   dw      ?               ;          
  242. ScrlRectBottom  dw      ?               ;          
  243.  
  244. MODEDAT ENDS
  245.  
  246. ;@A1  = 11/06/91  NAKADA, ANSI's request in Epoch format
  247.