home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / dos_util / v12n19.zip / DRVASM.ZIP / DRVSTRUC.INC < prev    next >
Text File  |  1993-10-11  |  10KB  |  221 lines

  1. ;---------------------------------------------------------------    
  2. ;drvstruc.inc - structures for DRVLOAD Utility                 |
  3. ;--------------------------------------------------------------|
  4. ;DRVLOAD Copyright (c) 1993                                    |
  5. ;                                                              |
  6. ;Rick Knoblaugh All rights reserved.                           |
  7. ;First Appeared in PC MAGAZINE, US Edition,                    |
  8. ;November 9, 1993                                              |
  9. ;--------------------------------------------------------------|
  10. ; 7/04/93                      Rick Knoblaugh                  |
  11. ;--------------------------------------------------------------|
  12.  
  13. doub_word       struc   
  14. d_offset        dw      ?
  15. d_segment       dw      ?
  16. doub_word       ends    
  17.  
  18. psp             struc
  19. psp_int20       dw      ?
  20. psp_nextpar     dw      ?
  21.                 db      ?
  22. psp_farcall     db      5 dup(?)
  23. psp_termadrs    dd      ?               ;int 22h  address
  24. psp_cntrlc      dd      ?               ;int 23h  address
  25. psp_crit_err    dd      ?               ;int 24h  address
  26.                 dw      11 dup(?)
  27. psp_environ_seg dw      ?
  28.                 dw      23 dup(?)
  29. psp_fcb1        db      16 dup(?)
  30. psp_fcb2        db      16 dup(?)
  31.                 dd      ?
  32. psp_cmd_len     db      ?               ;length of cmd tail
  33. psp_cmd_tail    db      ?
  34. psp             ends
  35.  
  36. list_lists30    struc                   ;list of lists info (DOS 3.0)
  37. dpb_ptr30       dd      ?               ;ptr 1st DOS DPB
  38. file_tab30      dd      ?               ;ptr DOS file tables
  39. clock_ptr30     dd      ?               ;ptr to CLOCK$ device
  40. con_ptr30       dd      ?               ;ptr to CON device
  41. num_blk30       db      ?               ;number block devices
  42. max_byte30      dw      ?               ;max bytes/block
  43. dsk_buf30       dd      ?               ;ptr 1st disk buffer
  44. cds_ptr30       dd      ?               ;ptr to current disk struc
  45. last_drv30      db      ?               ;LASTDRIVE value
  46. strg_wrk30      dd      ?               ;STRING workspace area
  47. srg_size30      dw      ?               ;size of STRING area
  48. fcb_tab30       dd      ?               ;ptr to FCB table
  49. fcb_y_30        dw      ?               ;y in FCBs=x,y
  50. nul_dev30       db      18 dup(?)       ;NUL device header                                
  51. list_lists30    ends 
  52.  
  53.  
  54. list_lists31    struc                   ;list of lists info (DOS 3.1)
  55. dpb_ptr31       dd      ?               ;ptr 1st DOS DPB
  56. file_tab31      dd      ?               ;ptr DOS file tables
  57. clock_ptr31     dd      ?               ;ptr to CLOCK$ device
  58. con_ptr31       dd      ?               ;ptr to CON device
  59. max_byte31      dw      ?               ;max bytes/block
  60. dsk_buf31       dd      ?               ;ptr 1st disk buffer
  61. cds_ptr31       dd      ?               ;ptr to current disk struc
  62. fcb_tab31       dd      ?               ;ptr to FCB table
  63. fcb_y_31        dw      ?               ;y in FCBs=x,y
  64. num_blk31       db      ?               ;number block devices
  65. last_drv31      db      ?               ;LASTDRIVE value
  66. nul_dev31       db      18 dup(?)       ;NUL device header                                
  67. num_join31      db      ?               ;number of JOINed drives
  68. list_lists31    ends 
  69.  
  70. rh              struc                   ;request header
  71. rh_len          db      0               ;len of packet
  72. rh_unit         db      0               ;unit code (block devices)
  73. rh_cmd          db      INIT_CMD        ;device driver command
  74. rh_status       dw      0               ;returned by driver
  75. rh_res1         dd      0               ;reserved
  76. rh_res2         dd      0               ;reserved
  77. rh              ends
  78.  
  79. init_req        struc                   ;Init (command 0)
  80. init_rh         db      size rh dup (0) ;std req header
  81. init_numunits   db      0               ;Number of units
  82. init_brk_ofs    dw      0               ;Offset of break
  83. init_brk_seg    dw      0               ;Segment of break
  84. init_bpb_tbo    dw      0               ;Offset of pointer to
  85.                                         ;to bpb array
  86. init_bpb_tbs    dw      0               ;Segment of pointer to
  87.                                         ;to bpb array
  88. init_drv_first  db      0               ;First Available drive
  89.                 db      0               
  90. init_req        ends
  91.  
  92. bpb             struc                   ;Bios Parameter Block
  93. bpb_ss          dw      ?               ;Bpb Sector Size
  94. bpb_au          db      ?               ;Cluster size
  95. bpb_rs          dw      ?               ;1 boot sector
  96. bpb_nf          db      ?               ;Number of FAT
  97. bpb_de          dw      ?               ;Number of dir entries
  98. bpb_ts          dw      ?               ;total sectors
  99. bpb_md          db      ?               ;Media descriptor
  100. bpb_fs          dw      ?               ;Fat sectors in each FAT
  101. bpb_spt         dw      ?               ;Sectors per track
  102. bpb_head        dw      ?               ;Heads
  103. bpb_hidsec      dd      ?               ;Hidden sectors
  104. bpb_huge_sec    dd      ?               ;DOS 5
  105. bpb             ends
  106.  
  107. dpb_format_3    struc
  108. dpb_drv_num_3   db      ?               ;drive number
  109. dpb_log_unit_3  db      ?               ;logical unit within driver
  110. dpb_bytes_sec_3 dw      ?               ;bytes per sector
  111. dpb_sec_clust_3 db      ?               ;sectors per cluster -1
  112. dpb_shift_cnt_3 db      ?               ;shift count
  113. dpb_res_sec_3   dw      ?               ;res boot sectors
  114. dpb_num_fat_3   db      ?               ;copies of FAT
  115. dpb_num_root_3  dw      ?               ;max number root entries
  116. dpb_1st_data_3  dw      ?               ;first data sector
  117. dpb_high_clus_3 dw      ?               ;highest cluster num
  118. dpb_sec_fat_3   db      ?               ;sectors per FAT
  119. dpb_1st_dir_3   dw      ?               ;first dir sector
  120. dpb_driver_3    dd      ?               ;address of device driver
  121. dpb_med_desc_3  db      ?               ;media descriptor byte
  122. dpb_aflag_3     db      ?               ;access flag
  123. dpb_ptr_nxt_3   dd      ?               ;ptr to next parm block
  124. dpb_res_3       dd      ?               ;reserved bytes
  125. dpb_format_3    ends
  126.  
  127. ;
  128. ;From DOS 4 and up, dpb is a different format as sectors per FAT is a word
  129. ;
  130. dpb_format_4    struc
  131. dpb_drv_num_4   db      ?               ;drive number
  132. dpb_log_unit_4  db      ?               ;logical unit within driver
  133. dpb_bytes_sec_4 dw      ?               ;bytes per sector
  134. dpb_sec_clust_4 db      ?               ;sectors per cluster -1
  135. dpb_shift_cnt_4 db      ?               ;shift count
  136. dpb_res_sec_4   dw      ?               ;res boot sectors
  137. dpb_num_fat_4   db      ?               ;copies of FAT
  138. dpb_num_root_4  dw      ?               ;max number root entries
  139. dpb_1st_data_4  dw      ?               ;first data sector
  140. dpb_high_clus_4 dw      ?               ;highest cluster num
  141. dpb_sec_fat_4   dw      ?               ;sectors per FAT
  142. dpb_1st_dir_4   dw      ?               ;first dir sector
  143. dpb_driver_4    dd      ?               ;address of device driver
  144. dpb_med_desc_4  db      ?               ;media descriptor byte
  145. dpb_aflag_4     db      ?               ;access flag
  146. dpb_ptr_nxt_4   dd      ?               ;ptr to next parm block
  147. dpb_res_4       dd      ?               ;reserved bytes
  148. dpb_format_4    ends
  149.  
  150. cds_3_0         struc   
  151. cds_drv_3       dw      ?               ;drive designator        
  152. cds_path_3      db      41h dup(?)      ;CWD path string
  153. cds_drv_stat3   dw      ?               ;drive status bitmap
  154. cds_dbp_ptr3    dd      ?               ;ptr to DPB
  155. cds_start_clus3 dw      ?               ;starting cluster of cur dir
  156. cds_dk13        dd      ?
  157. cds_slash3      dw      ?               ;slash loc in path
  158. cds_3_0         ends
  159.  
  160. cds_4_0         struc   
  161. cds_drv_4       dw      ?               ;drive designator        
  162. cds_path_4      db      41h dup(?)      ;path string
  163. cds_drv_stat4   dw      ?               ;drive status bitmap
  164. cds_dbp_ptr4    dd      ?               ;ptr to DPB
  165. cds_start_clus4 dw      ?               ;starting cluster of cur dir
  166. cds_dk14        dd      ?
  167. cds_slash4      dw      ?               ;slash loc in path
  168. cds_dk24        db      ?
  169. cds_ifs         dd      ?               ;ptr to IFS driver
  170. cds_dk34        dw      ?        
  171. cds_4_0         ends
  172.  
  173. dev_header      struc
  174. dev_chain       dd      ?
  175. dev_attrib      dw      ?
  176. dev_stratr      dw      ?
  177. dev_intr        dw      ?
  178. dev_num_units   db      ?               ;first byte of char name
  179. dev_char_name   db      7 dup(?)        
  180. dev_header      ends
  181.  
  182. file_info       struc
  183. file_res        db      21 dup(?)
  184. file_atrib      db      ?
  185. file_time       dw      ?
  186. file_date       dw      ?
  187. file_size       dd      ?
  188. file_name       db      31 dup(?)       
  189. file_info       ends
  190.  
  191. over_lay        struc
  192. over_seg        dw      ?
  193. over_relo_fac   dw      ?
  194. over_lay        ends
  195.  
  196. ;
  197. ;Since values returned in undocumented DOS "Lists of lists" function
  198. ;call 52h are DOS version specific, this structure is used to 
  199. ;conveniently know the offsets to the items we seek.
  200. ;
  201. ver_spec_off    struc                   ;version specific offsets
  202. vcds_ptr        dw      ?               ;offset of CDS ptr
  203. vdpb_ptr        dw      ?               ;offset of DPB ptr
  204. vnul_dev_ptr    dw      ?               ;offset of NUL device header
  205. vlast_drive     dw      ?               ;offset of LASTDRIVE
  206. ver_spec_off    ends
  207.  
  208. drvattrib       record  char_dev:1, ioctl_rw:1, out_busy:1, unuse1:1,  \
  209.                         sup_open:1, unuse2:3, ioctl_q:1, unuse3:1, \
  210.                         unuse4:1, fast_char:1, is_clock:1, is_nul:1,  \
  211.                         sup_huge:1, std_input:1
  212.  
  213. stat_bits       record  err_bit:1, stdk:5, stat_bsy:1, stat_done:1, stat_err_val:8
  214.  
  215. cds_bits        record  net_work:1, physical:1, join:1, subst:1, cds_dk:12
  216.  
  217.  
  218.  
  219. ;------end of drvstruc.inc
  220.  
  221.