REQUEST.EQU
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:6k
源码类别:

操作系统开发

开发平台:

Asm

  1. ;    File              : $REQUEST.EQU$
  2. ;
  3. ;    Description       :
  4. ;
  5. ;    Original Author   : DIGITAL RESEARCH
  6. ;
  7. ;    Last Edited By    : $CALDERA$
  8. ;
  9. ;-----------------------------------------------------------------------;
  10. ;    Copyright Work of Caldera, Inc. All Rights Reserved.
  11. ;      
  12. ;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
  13. ;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
  14. ;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
  15. ;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
  16. ;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
  17. ;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
  18. ;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
  19. ;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
  20. ;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
  21. ;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
  22. ;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
  23. ;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
  24. ;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
  25. ;    CIVIL LIABILITY.
  26. ;-----------------------------------------------------------------------;
  27. ;
  28. ;    *** Current Edit History ***
  29. ;    *** End of Current Edit History ***
  30. ;
  31. ;    $Log$
  32. ;    ENDLOG
  33. P_DSTRUC struc
  34. dw ?
  35. REQUEST dd ?
  36. P_DMA dd ?
  37. P_DSTRUC ends
  38. P_STRUC struc
  39. dw ? ; saved BP
  40. REQUEST_OFF dw ? ; request header offset
  41. REQUEST_SEG dw ? ; request header segment
  42. P_DMAOFF dw ? ; transfer offset
  43. P_DMASEG dw ? ; transfer segment
  44. P_RETRY db ? ; retry count for disk errors
  45. P_DIRECT db ? ; 0 if DMA deblocking required
  46. P_ROSCMD db ? ; 2 = read, 3 = write, 4 = verify
  47. P_SETTLE db ? ; for fast settle on reads
  48. P_SECTOR db ? ; sector # (0..BPB_SPT-1)
  49. P_HEAD db ? ; head # (0..BPB_HEADS-1)
  50. P_CYL dw ? ; cylinder # (0..1023)
  51. P_COUNT dw ? ; requested sector count
  52. P_MCNT dw ? ; physical sector count
  53. P_STRUC ends
  54. CMD_INIT equ  0 ; Initialize the Device Driver
  55. CMD_MEDIA_CHECK equ  1 ; Request Media Check
  56. CMD_BUILD_BPB equ  2 ; Build Drive BPB
  57. CMD_INPUT_IOCTL equ  3 ; IOCTL input
  58. CMD_INPUT equ  4 ; Input
  59. CMD_INPUT_NOWAIT equ  5 ; Non destructive input no wait
  60. CMD_INPUT_STATUS equ  6 ; Input status
  61. CMD_INPUT_FLUSH equ  7 ; Input flush
  62. CMD_OUTPUT equ  8 ; Output
  63. CMD_OUTPUT_VERIFY equ  9 ; Output with verify
  64. CMD_OUTPUT_STATUS equ 10 ; Output status
  65. CMD_OUTPUT_FLUSH equ 11 ; Output flush
  66. CMD_OUTPUT_IOCTL equ 12 ; IOCTL output
  67. CMD_DEVICE_OPEN equ 13 ; Device OPEN
  68. CMD_DEVICE_CLOSE equ 14 ; Device CLOSE
  69. CMD_FIXED_MEDIA equ 15 ; Removeable Media Check
  70. CMD_GENERIC_IOCTL equ 19 ; Generic IOCTL
  71. CMD_GET_DEVICE equ 23 ; Get the Logical Device
  72. CMD_SET_DEVICE equ 24 ; Set the Logical Device
  73. CMD_QUERY_IOCTL equ 25 ; query ioctl support
  74. ; Generic Request Header Format
  75. RH_LEN equ byte ptr 0
  76. RH_UNIT equ byte ptr 1
  77. RH_CMD equ byte ptr 2
  78. RH_STATUS equ word ptr 3
  79.   RHS_DONE equ 0100h
  80.   RHS_BUSY equ 0200h
  81.   RHS_IC equ 0400h ; Interim Character
  82.   RHS_RM equ 0800h
  83.   RHS_ERROR equ 8000h
  84. ;******
  85. ;* No longer safe to use - some device drivers trample on them....
  86. ;*
  87. ;* RH_STRATEGY equ dword ptr 5 ; Device Strategy Routine
  88. ;* RH_STRATOFF equ word ptr  5 ; Strategy Offset
  89. ;* RH_STRATSEG equ word ptr  7 ; Strategy Segment
  90. ;* RH_INTERRUPT equ dword ptr 9 ; Device Interrupt Routine
  91. ;* RH_INTOFF equ word ptr  9 ; Intterupt Offset
  92. ;* RH_INTSEG equ word ptr 11 ; Interrupt Segment
  93. ;*****
  94. ; Request header for initialization
  95. RH0_NUNITS equ byte ptr 13
  96. RH0_RESIDENT equ word ptr 14
  97. RH0_BPBOFF equ word ptr 18
  98. RH0_BPBSEG equ word ptr 20
  99. RH0_DRIVE equ byte ptr 22
  100. RH0_LEN equ 22
  101. ; Request header for media check
  102. RH1_MEDIA equ byte ptr 13 ; BDOS: current media byte
  103. RH1_RETURN equ byte ptr 14 ; driver: return code (00, 01, FF)
  104. RH1_VOLID equ dword ptr 15 ; driver: volume label address
  105. RH1_LEN equ 15
  106. ; Request header for "build BPB"
  107. RH2_MEDIA equ byte ptr 13 ; BDOS or driver?
  108. RH2_BUFFER equ dword ptr 14 ; BDOS: scratch buffer for driver use
  109. RH2_BPB equ dword ptr 18 ; same as the following:
  110. RH2_BPBOFF equ word ptr 18 ; driver: address of new BPB
  111. RH2_BPBSEG equ word ptr 20
  112. RH2_LEN equ 24
  113. ; Request header for input/output
  114. RH4_MEDIA equ byte ptr 13 ; BDOS: current media byte
  115. RH4_RIC equ byte ptr 13 ; BDOS: Return Interim Char flg
  116. RH4_BUFFER equ dword ptr 14 ; BDOS: disk transfer address
  117. RH4_BUFOFF equ word ptr 14 ; BDOS: Buffer Offset
  118. RH4_BUFSEG equ word ptr 16 ; BDOS: Buffer Segment
  119. RH4_COUNT equ word ptr 18 ; BDOS: sector count
  120. RH4_SECTOR equ word ptr 20 ; BDOS: starting sector
  121. RH4_VOLID equ dword ptr 22 ; driver: volume if illegal disk change
  122. RH4_BIGSECTOR   equ dword ptr 26   
  123. RH4_BIGSECTORLO equ word ptr 26
  124. RH4_BIGSECTORHI equ word ptr 28
  125. RH4_LEN equ 30
  126. ; Request Header for Non-Destructive Input
  127. RH5_CHAR equ byte ptr 13 ; Character Read from Device
  128. RH5_RIC equ byte ptr 13 ; BDOS: Return Interim Char flg
  129. RH5_LEN equ 14
  130. ; Request Header for Device Open
  131. RH13_LEN equ 13
  132. ; Request Header for Device Close
  133. RH14_LEN equ 13
  134. ; Request header for generic IOCTL
  135. RH19_CATEGORY equ word ptr 13 ; BDOS: major/minor function number
  136. RH19_MAJOR equ byte ptr 13 ; BDOS: Major Function Number
  137. RH19_MINOR equ byte ptr 14 ; BDOS: Minor Function Number
  138. RH19_SI equ word ptr 15 ; BDOS: User SI
  139. RH19_DI equ word ptr 17 ; BDOS: User DI
  140. RH19_GENPB equ dword ptr 19 ; BDOS: extra parameters
  141. RH19_LEN equ 23
  142. RQ19_SET equ 40h ; set device parameters
  143. RQ19_GET equ 60h ; get device parameters
  144. RQ19_WRITE equ 41h ; write tracks
  145. RQ19_READ equ 61h ; read tracks
  146. RQ19_FORMAT equ 42h ; format tracks
  147. RQ19_VERIFY equ 62h ; verify tracks
  148. RQ19_SETMEDIA equ 46h ; set media ID
  149. RQ19_GETMEDIA equ 66h ; get media ID
  150. RQ19_PRP_START equ 4Ch ; start of codepage prepare
  151. RQ19_PRP_END equ 4Dh ; end of codepage prepare
  152. RQ19_SELECT equ 4Ah ; select code page
  153. RQ19_QRY_SEL equ 6Ah ; query selected code page
  154. RQ19_QRY_PRP equ 6Bh ; query prepared code page(s)
  155. RQ19_DSP_SET equ 5Fh ; set display information
  156. RQ19_DSP_GET equ 7Fh ; get display information
  157. ; Request header for get/set drive
  158. RH24_CMD equ byte ptr 14 ; BDOS: Command Code
  159. RH24_STATUS equ word ptr 15 ; BDOS: Status
  160. RH24_RESVD equ dword ptr 17 ; BDOS: Reserved
  161. RH24_LEN equ 21
  162. RH_SIZE equ 30 ; maximum size of request header