home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / PRINTER / PRTDD2.INC < prev    next >
Text File  |  1995-04-14  |  10KB  |  205 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. ; SCCSID = @(#)prtdd2.inc       6.17 92/01/07
  14. ;/**********************************************************************
  15. ;/*                                                                    *
  16. ;/*                                                                    *
  17. ;/*                                                                    *
  18. ;/**********************************************************************
  19. ;/********************** START OF SPECIFICATIONS ***********************/
  20. ;/*                                                                    */
  21. ;/* SUBROUTINE NAME: PRTDATA                                           */
  22. ;/*                                                                    */
  23. ;/* DESCRIPTIVE NAME: PRINTER DEVICE DRIVER EQUATES AND STRUCTURES     */
  24. ;/*                                                                    */
  25. ;/*********************** END OF SPECIFICATIONS ************************/
  26. ;
  27. ; EQUATES FOR PS /2 DEVICE DRIVER
  28. ;
  29. ; FLAG2 EQUATES
  30. PDDABIOSPS2FIX  EQU     01H             ; ABIOS SUPPORT PS/2 FIX
  31. NEEDIRQ         EQU     02H             ; NEED TO DO SETIRQ FLAG
  32.  
  33. START_EPT       EQU     0               ; ABIOS START ENTRY POINT
  34. INTERRUPT_EPT   EQU     1               ; ABIOS INTERRUPT ENTRY POINT
  35. TIMEOUT_EPT     EQU     2               ; ABIOS TIMEOUT ENTRY POINT
  36. DEVICESTATE     EQU     0               ; USED WITH GETLIDENTRY
  37.  
  38. DMAREQ          EQU     02H             ; ABIOS USING DMA ON PRTBLK REQ
  39. ;
  40. ; LID FLAGS - RETURN LID PARAMETERS
  41. ;
  42. DMA32BIT        EQU     20H             ; 32 BIT DMA SUPPORTED (4 GB)
  43.  
  44. ;
  45. ; SUPPLEMENTATL FLAGS - READ DEVICE PARMS
  46. ;
  47. DMAPRESENT      EQU     80H             ; DMA IS AVAILABLE
  48.  
  49. ;
  50. ; REQUEST FLAGS - PRINT BLOCK
  51. ;
  52. ARBDEALLOC      EQU     80h             ; DEALLOCATE ARBITRATION LEVEL
  53. ARBNODEALLOC    EQU     7Fh             ; DO NOT DEALLOCATE ARBITRATION LEVEL
  54.  
  55. ; ABIOS FUNCTION CODES
  56.  
  57. RESUMEPRTBLK    EQU     0EH             ; RESUME PRINT BLOCK
  58. RETDYNSTAT      EQU     0DH             ; RETURN DYNAMIC STATUS
  59. RETPRTSTAT      EQU     0CH             ; RETURN PRINTER STATUS ABIOS FUNC
  60. CANPRTBLK       EQU     0BH             ; CANCEL PRINT BLOCK ABIOS FUNC
  61. PRTBLK          EQU     09H             ; PRINT BLOCK ABIOS FUNC
  62. RESETINIT       EQU     05H             ; INITIALIZE PRINTER ABIOS FUNC
  63. READDEVPARMS    EQU     03H             ; READ DEVICE PARAMETERS
  64. RETLIDPARMS     EQU     01H             ; RETURN LID PARAMETERS
  65. DEFAULTINT      EQU     00H             ; DEFAULT INTERRUPT HANDLER
  66.  
  67. ; ABIOS RETURN CODES
  68.  
  69. COMPLETEDOK     EQU     0000H           ; COMPLETED OK
  70. STAGEONINT      EQU     0001H           ; STAGE ON INT
  71. STAGEONTIME     EQU     0002H           ; STAGE ON TIME
  72. NOTMYINT        EQU     0005H           ; NOT MY INT
  73. DEVICEINUSE     EQU     8000H           ; DEVICE IN USE
  74. PRTDEVBUSY      EQU     8001H           ; DEVICE BUSY
  75. DEVICEERROR     EQU     9000H           ; DEVICE ERROR
  76.  
  77. ; DMA ABIOS RETURN CODES
  78.  
  79. DMANOTSUPP      EQU     8008H           ; DMA NOT SUPPORTED
  80. ARBNOTAVAIL     EQU     8081H           ; ARBITRATION LEVEL NOT AVAILABLE
  81. ARBNOTALLOC     EQU     8082H           ; ARBITRATION LEVEL NOT ALLOCATED
  82. ARBDISABLED     EQU     8083H           ; ARBITRATION LEVEL DISABLED
  83. TRANSINPROG     EQU     8084H           ; TRANSFER IN PROGRESS
  84. NOTRANSINPROG   EQU     8085H           ; NO TRANSFER IN PROGRESS
  85. NODMACHANNL     EQU     8086H           ; NO DMA CHANNEL AVAILABLE
  86. ARBNOTDISABLED  EQU     8087H           ; ARBITRATION LEVEL NOT DISABLED
  87. INVALIDPTRS     EQU     0C007H          ; INVALID DATA POINTERS
  88.  
  89. ;
  90. ; STRUCTURES FOR PS /2 DEVICE DRIVER
  91. ;
  92.  
  93. ; Functional parameters of the ABIOS request block
  94.  
  95. requestblk      STRUC
  96. rblength        dw      0               ; LENGTH OF REQUEST BLOCK
  97. logicalid       dw      0               ; DEVICE ADDRESSED BY REQUEST
  98. unit            dw      0               ; COUNT OF UNITS ATTACHED
  99. function        dw      0               ; REQUESTED OPERATION
  100. rbflags         dw      0               ; ABIOS CALL INFORMATION
  101. elaoffset       dw      0               ; ERROR LOGGING AREA OFFSET
  102. retcode         dw      0               ; RESULT OF CURRENT STAGE
  103. timeout         dw      0               ; EXPECTED DURATION OF INT (SECS)
  104. srvspec         db      36 DUP (0)      ; SERVICE SPECIFIC INFO
  105. requestblk      ENDS
  106.  
  107. ; Service specific for function 'return LID parameters'
  108.  
  109. returnlidparms  STRUC
  110.                 db      16 DUP (?)      ; FUNCTIONAL PARAMETERS
  111. intlvl          db      ?               ; HARDWARE INT LEVEL
  112.                 db      ?               ; ARBITRATION LEVEL
  113. devidnum        dw      ?               ; DEVICE ID
  114.                 dw      ?               ; UNITS PER LID
  115. lidflags        dw      ?               ; LID BIT LEVEL INFO
  116. rblen           dw      ?               ; REQUEST BLOCK LENGTH
  117. subid           db      ?               ; SUB DEVICE IDENTIFIER
  118. revnum          db      ?               ; REVISION NUMBER
  119.                 db      4 dup (?)       ; RESERVED
  120. returnlidparms  ENDS
  121.  
  122. ; Service specific for function 'read device parameters'
  123.  
  124. readevparms     STRUC
  125.                 db      22 dup (?)      ; FUNCTIONAL PARAMETERS
  126. suppflags       db      ?               ; SUPPLEMENTAL FLAGS
  127.                 db      9 dup (?)       ; WORK AREA
  128. inittime        dd      ?               ; DEVICE INITIALIZATION TIME
  129.                 db      6 DUP (?)       ; WORK AREA
  130. tovalue         dw      ?               ; TIMEOUT VALUE
  131.                 db      8 DUP (?)       ; WORK AREA
  132. readevparms     ENDS
  133.  
  134. ; Service specific for function 'initialize printer'
  135.  
  136. initprt         STRUC
  137.                 db      32 DUP (?)      ; FUNCTIONAL PARAMETERS
  138. init_time_l     dw      ?               ; INITIALIZATION WAIT TIME LOW
  139. init_time_h     dw      ?               ; INITIALIZATION WAIT TIME HIGH
  140.                 db      4 DUP (?)       ; RESERVED
  141. initstatus      db      ?               ; PRINTER STATUS
  142.                 db      11 DUP (?)      ; RESERVED
  143. initprt         ENDS
  144.  
  145. ; Service specific for function 'print block'
  146.  
  147. printblk        STRUC
  148.                 db      16 DUP (?)      ; FUNCTIONAL PARAMETERS
  149. dataoff32       dw      ?               ; 32 BIT OFFSET ENABLED
  150. dataoff         dw      ?               ; DATA POINTER OFFSET
  151. dataseg         dw      ?               ; DATA POINTER SEGMENT
  152. reqflags        db      ?               ; REQUEST FLAGS
  153.                 db      3 DUP (?)       ; RESERVED
  154. dataoff1        dw      ?               ; DMA DATA POINTER OFFSET
  155. dataseg1        dw      ?               ; DMA DATA POINTER SEGMENT
  156.                 db      6 DUP (?)       ; RESERVED
  157. count           dw      ?               ; # OF BYTES TO PRINT
  158. countsent       dw      ?               ; # OF BYTES PRINTED
  159. blkstatus       db      ?               ; PRINTER PORT STATUS
  160.                 db      3 DUP (?)       ; RESERVED
  161. errlength       db      ?               ; ERROR LOGGING AREA LENGTH
  162. prtint          db      ?               ; HARDWARE INT LEVEL
  163. prtarb          db      ?               ; ARBITRATION LEVEL
  164. prtdevid        dw      ?               ; DEVICE ID
  165. prtdiag1        db      ?               ; PRINTER STATUS PORT STATUS
  166.                 db      2 DUP (?)       ; WORK AREA
  167. printblk        ENDS
  168.  
  169. ; Service specific for function 'return printer status'
  170.  
  171. retstatus       STRUC
  172.                 db      40 DUP (?)      ; FUNCTIONAL PARAMETERS
  173. returnstatus    db      ?               ; PRINTER PORT STATUS
  174.                 db      11 DUP (?)      ; RESERVED
  175. retstatus       ENDS
  176.  
  177. hardware_specific       STRUC           ; HARDWARE SPECIFIC DATA AREA
  178.  
  179. ;*****************************************************************************
  180. ;*  N O T E !!!!: The following DUP must be exactly enough to "overlay"      *
  181. ;*                the printer_database common vars in prtdd.inc              *
  182. ;*****************************************************************************
  183.  
  184.                 db      40 DUP (0)      ; DEVICE DRIVER INDEPENDENT VARAIBLES
  185.  
  186. ;*****************************************************************************
  187. ;*  N O T E !!!!: Do not add any members below without checking that it      *
  188. ;*                does not "overflow" the hardware_specific "hole" in        *
  189. ;*                prtdd.inc's printer_database structure                     *
  190. ;*****************************************************************************
  191.  
  192. nextppda        dw      0               ; NEXT PERPRTDATA AREA
  193. abiosrb_off     dw      0               ; OFFSET OF ABIOS REQUEST BLOCK
  194. initialcount    dw      0               ; INITIAL COUNT OF CHARACTERS TO PRINT
  195. printedcnt      dw      0               ; # OF CHARACTERS PRINTED
  196. intlevel        db      0               ; HARDWARE INTERRUPT LEVEL
  197.                 db      0               ; FUTURE USE - KEEPS WORD ALIGNMENT
  198. retryctr        dw      0               ; RETRY IF DEVICE IS BUSY
  199. kstimercnt      dw      0               ; WAIT COUNT BEFORE LOST IRQ7
  200. inittime_lo     dw      0               ; LOW WORD DEVICE INITIALIZE TIME IN MS
  201. inittime_hi     dw      0               ; HIGH WORD DEVICE INITIALIZE TIME IN MS
  202. prfvw_off       dw      0               ; OFFSET OF PERFVIEW COUNTERS
  203. hardware_specific       ENDS
  204.  
  205.