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

操作系统开发

开发平台:

Asm

  1. ;    File              : $FDOS.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. ;
  33. ;    ENDLOG
  34. ;    Structure of Buffer Control Blocks
  35. ;    ----------------------------------
  36. ; These BCBs immediately preceed the data buffers. BCBs are
  37. ; always  shared  for all drives and therefore  must be big
  38. ; enough for the largest drive.
  39. ;
  40. BCB_NEXT equ word ptr  00h ; link to next buffer
  41. BCB_PREV equ word ptr  02h ; link to previous buffer
  42. BCB_DRV equ byte ptr  04h ; drive of this buffer or 0FFh
  43. BCB_FLAGS equ byte ptr  05h ; buffer flags
  44. BCB_REC equ word ptr  06h ; low 16 bits of sector address
  45. BCB_REC2 equ byte ptr  08h ; top 8 bits of record address
  46. BCB_COPIES equ byte ptr  0Ah ; number of copies to write
  47. BCB_SEPARATION equ word ptr  0Bh ; # sectors copies are apart
  48. BCB_DDSC equ dword ptr 0Dh ; DWORD ptr to DDSC_
  49. BCB_REMOTE equ word ptr  11h ; remote in-use count
  50. BCB_DATA equ byte ptr  14h ; buffer data
  51. BF_ISFAT equ 0002h ; buffer marked as FAT sector
  52. BF_ISDIR equ 0004h ; buffer marked as Directory sector
  53. BF_ISDAT equ 0008h ; buffer marked as Data sector
  54. BF_DIRTY equ 0040h ; buffer marked as modified
  55. BF_REMOTE equ 0080h ; buffer is remote
  56. MAX12 equ 0FF6h ; max. disk size w/ 12-bit media
  57. ;      Structure of Hash Control Block
  58. ;      -------------------------------
  59. ; Each hash control  block refers  to the hash codes of one
  60. ; disrectory cluster or a root directory.
  61. HCB_LINK equ word ptr 0 ; link to next control block
  62. HCB_DRV equ byte ptr 2 ; drive for this entry or 0FFh
  63. HCB_CLU equ word ptr 4 ; cluster number or 0000 if root
  64. HCB_CNT equ word ptr 6 ; number of hashed entries
  65. HCB_DATA equ word ptr 8 ; hash buffer data
  66. ;       Structure of DOS FCB
  67. ;       --------------------
  68. MSF_EXTFLG equ byte ptr 0 ; if this is 0xFF, skip 1st 7 byte
  69. MSF_ATTRIB equ byte ptr 6 ; file attributes if MSF_EXTFLG
  70. MSF_DRIVE equ byte ptr 0 ; 1st byte normally drive code
  71. MSF_NAME equ byte ptr 1 ; 8-bit ASCII file name, 11 characters
  72. MSF_BLOCK equ word ptr 12 ; current block number
  73. MSF_RECSIZE equ word ptr 14 ; current logical record size
  74. MSF_SIZE equ word ptr 16 ; 32-bit file size
  75. MSF_DATE equ word ptr 20 ; last date stamp
  76. MSF_TIME equ word ptr 22 ; last time stamp
  77. MSF_IFN equ byte ptr 24 ;; internal file number
  78. MSF_IOCTL equ byte ptr 25 ;; file status
  79. MSF_BLOCK1 equ word ptr 26 ;; 1st block of file
  80. MSF_DBLK equ word ptr 28 ;; directory block
  81. MSF_DEVPTR equ dword ptr 28 ;; address of device driver
  82. MSF_DCNT equ word ptr 30 ;; directory count
  83. MSF_CR equ byte ptr 32 ; current sequential record
  84. MSF_RR equ word ptr 33 ; random record address (3 or 4 byte)
  85. MSF_RR2 equ byte ptr 35 ; random record overflow
  86. ;       Structure of DOS DPB
  87. ;       --------------------
  88. DDSC_UNIT equ byte ptr 0 ; absolute drive number
  89. DDSC_RUNIT equ byte ptr 1 ; relative unit number
  90. DDSC_SECSIZE equ word ptr 2 ; sector size in bytes
  91. DDSC_CLMSK equ byte ptr 4 ; sectors/cluster - 1
  92. DDSC_CLSHF equ byte ptr 5 ; log2 (sectors/cluster)
  93. DDSC_FATADDR equ word ptr 6 ; sector address of FAT
  94. DDSC_NFATS equ byte ptr 8 ; # of FAT copies
  95. DDSC_DIRENT equ word ptr 9 ; size of root directory
  96. DDSC_DATADDR equ word ptr 11 ; sector address of cluster #2
  97. DDSC_NCLSTRS equ word ptr 13 ; # of clusters on disk
  98. DDSC_NFATRECS equ word ptr 15 ; # of sectors per FAT
  99. DDSC_DIRADDR equ word ptr 17 ; sector address of root dir
  100. DDSC_DEVHEAD equ dword ptr 19 ; device driver header
  101. DDSC_DEVOFF equ word ptr 19
  102. DDSC_DEVSEG equ word ptr 21
  103. DDSC_MEDIA equ byte ptr 23 ; current media byte
  104. DDSC_FIRST equ byte ptr 24 ; "drive never accessed" flag
  105. DDSC_LINK equ dword ptr 25 ; next drive's DDSC
  106. DDSC_BLOCK equ word ptr 29 ; next block to allocate
  107. DDSC_FREE equ word ptr 31 ; total free clusters on drive
  108. DDSC_LEN equ 33
  109. ; DELWATCH hooks called by OS
  110. DELW_RDMASK equ 0 ; delete dir search mask
  111. DELW_DELETE equ 2 ; delete this dir entry
  112. DELW_FREECLU equ 3 ; free some clusters
  113. DELW_FREERD equ 4 ; free root dir entry
  114. DELW_SPACE equ 5 ; add "deletes" to free space
  115. DELW_NEWDISK equ 7 ; new disk logged in
  116. DELW_PURGE equ 14 ; perge pd file
  117. DELW_UNDEL equ 15 ; undelete pd file
  118. ;  SuperStore hook called by OS
  119. SSTOR_SPACE equ 10h ; enquire # physical free space
  120. ; Password hooks called by OS
  121. PASSWD_CREAT equ 20h ; initialise an entry
  122. PASSWD_CHMOD equ 21h ; change an entry
  123. PASSWD_CHECK equ 22h ; check an entry
  124. ; Share hooks in PCMODE data segment
  125. ;
  126. ; These point to a stub which does a "STC, RETF"
  127. ;
  128. NUM_SHARE_STUB_ENTRIES equ 15
  129. S_LOCKS equ DWORD*0 ; share lock/unlock region
  130. S_UPDATE equ DWORD*1 ; update DHNDL from share
  131. S_RECORD equ DWORD*2 ; update share from DHNDL
  132. S_FDOSRW equ DWORD*3 ; validate proposed operation
  133. S_DISCARD equ DWORD*4 ; discard all files on drive
  134. S_OPEN equ DWORD*5 ; files is opening, remember it
  135. S_CLOSE equ DWORD*6 ; files is closing, forget it
  136. S_OM_COMPAT equ DWORD*7 ; check open mode compatible
  137. S_CLOSE_IF_OPEN equ DWORD*8 ; close if compat open, else deny
  138. S_DENY_IF_OPEN equ DWORD*9 ; deny if open shared/by others
  139. S_GET_LIST_ENTRY equ DWORD*10 ; get open file list entry
  140. S_CLOSE_FILES equ DWORD*11 ; close all files for given PSP/UID
  141. ; struct dirfcb
  142. DNAME equ byte ptr 0 ;file name & type
  143. DATTS       equ byte ptr 11 
  144.   DA_RO equ 01h ; 0x01 - read/only
  145.   DA_HIDDEN equ 02h ; 0x02 - hidden
  146.   DA_SYSTEM equ 04h ; 0x04 - system
  147.   DA_VOLUME equ 08h ; 0x08 - volume label
  148.   DA_DIR equ 10h ; 0x10 - sub-directory
  149.   DA_ARCHIVE equ 20h ; 0x20 - archive
  150.   DA_CLUSTER equ 80h ; 0x80 - return starting cluster from search (API extention)
  151.   DA_DELWATCH equ 80h ; 0x88 - return pending delete files
  152.   DA_FIXED equ 11011000b ; can't CHMOD label, dir, unused bits
  153.   DA_CHANGE equ not DA_FIXED ; all others are changeable
  154. ;DATTS2 equ 12 ;CP/M attributes
  155. ; ; 0x80 - f1' modify default open rules
  156. ; ; 0x40 - f2' partial close default
  157. ; ; 0x20 - f3' ignore close checksum errors
  158. ; ; 0x10 - f4' disable checksums
  159. ; ; 0x08 - (reserved)
  160. ; ; 0x04 - DELETE password
  161. ; ; 0x02 - WRITE password
  162. ; ; 0x01 - READ password
  163. DUNDEL equ 13 ;1st letter of deleted file
  164. DPWD equ word ptr 14 ;16-bit password hash code
  165. DMODTIME     equ word ptr 16 ;delwatch time (hhhhhmmmmmmsssss)
  166. DMODDATE     equ word ptr 18 ;delwatch date (yyyyyyymmmmddddd)
  167. ;DRECSIZE equ 16 ;FlexOS record size
  168. ;DUSER equ 18 ;FlexOS user ID of creator
  169. ;DGROUP equ 19 ;FlexOS group ID of creator
  170. DPWM equ word ptr 20 ;FlexOS access rights
  171. DTIME equ 22 ;time (hhhhhmmmmmmsssss)
  172. DDATE equ 24 ;date (yyyyyyymmmmddddd)
  173. DBLOCK1 equ 26 ;first block in file
  174. DSIZE equ 28 ;current file size
  175. ;  DOS Media Password Definitions
  176. ;  ------------------------------
  177. PWM_OWNER equ 000Fh ; PWD Owner mask
  178. PWM_GROUP equ 00F0h ; PWD Group mask
  179. PWM_WORLD equ 0F00h ; PWD World mask
  180. PWM_R equ 0888h ; PWD required for reading
  181. PWM_W equ 0444h ; PWD required for writing
  182. PWM_E equ 0222h ; PWD req'd for executing
  183. PWM_D equ 0111h ; PWD required for deleting
  184. PWM_ANY equ PWM_R+PWM_W+PWM_D ; PWD required for anything
  185. ; literal constants
  186. FAT12 equ 00fffh ; 12 bit fat
  187. FAT16 equ 0ffffh ; 16 bit fat
  188. ENDDIR equ 0ffffh ;end of directory