home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 165 / ST0102.ZIP / STRUCT.INC < prev    next >
Text File  |  1991-11-18  |  8KB  |  326 lines

  1. ;
  2. ; Structures for SCSI commands
  3. ;
  4. io_cmd        struc
  5. io_cmd_op    db    ?        ;Opcode
  6.         if extended_io
  7. io_cmd_lun    db    ?
  8. io_cmd_lba_b3    db    ?        ;Logical Block Address
  9. io_cmd_lba_b2    db    ?
  10. io_cmd_lba_b1    db    ?
  11. io_cmd_lba_b0    db    ?
  12. io_cmd_dummy1    db    ?
  13. io_cmd_cnt_b1    db    ?        ;Block Count
  14. io_cmd_cnt_b0    db    ?
  15. io_cmd_dummy2    db    ?
  16.         else
  17. io_cmd_lba_b2    db    ?        ;Logical Block Address / Lun
  18. io_cmd_lba_b1    db    ?
  19. io_cmd_lba_b0    db    ?
  20. io_cmd_cnt_b0    db    ?        ;Block Count
  21. io_cmd_dummy1    db    ?
  22.         endif
  23. io_cmd        ends
  24.  
  25. tio_cmd        struc
  26. tio_cmd_op    db    ?        ;Opcode
  27. tio_cmd_lun    db    ?        ;Lun
  28. tio_cmd_cnt_b2    db    ?        ;Block Count
  29. tio_cmd_cnt_b1    db    ?
  30. tio_cmd_cnt_b0    db    ?
  31. tio_cmd_dummy1    db    ?
  32. tio_cmd        ends
  33.  
  34. ;
  35. ; Format the Unit
  36. ;
  37. fmt_cmd        struc
  38. fmt_cmd_op    db    ?        ;Opcode
  39. fmt_cmd_type    db    ?        ;Format Type
  40. fmt_cmd_dummy1    db    ?
  41. fmt_cmd_il_b1    db    ?        ;Interleave (MSB)
  42. fmt_cmd_il_b0    db    ?        ;Interleave (LSB)
  43. fmt_cmd_dummy3    db    ?
  44. fmt_cmd        ends
  45.  
  46. ;
  47. ; Verify Sectors
  48. ;
  49. ver_cmd        struc
  50. ver_cmd_op    db    ?        ;Opcode
  51. ver_cmd_lun    db    ?        ;Lun
  52. ver_cmd_lba_b3    db    ?        ;Logical Block Address MSB
  53. ver_cmd_lba_b2    db    ?
  54. ver_cmd_lba_b1    db    ?
  55. ver_cmd_lba_b0    db    ?        ;Logical Block Address LSB
  56. ver_cmd_dummy1    db    ?
  57. ver_cmd_len_b1    db    ?        ;Length MSB
  58. ver_cmd_len_b0    db    ?        ;Length LSB
  59. ver_cmd_dummy2    db    ?
  60. ver_cmd        ends
  61.  
  62. ;
  63. ; Load / Unload a Tape
  64. ;
  65. load_cmd    struc
  66. load_cmd_op    db    ?        ;Opcode
  67. load_cmd_lun    db    ?        ;Lun
  68. load_cmd_dummy1    db    2 dup (?)
  69. load_cmd_type    db    ?        ;Load / Unload
  70. load_cmd_dummy2    db    ?
  71. load_cmd    ends
  72.  
  73. ;
  74. ; Write Filemarks on a Tape
  75. ;
  76. fm_cmd        struc
  77. fm_cmd_op    db    ?        ;Opcode
  78. fm_cmd_lun    db    ?        ;Lun
  79. fm_cmd_cnt_b2    db    ?        ;Filemark MSB
  80. fm_cmd_cnt_b1    db    ?
  81. fm_cmd_cnt_b0    db    ?        ;Filemark LSB
  82. fm_cmd_dummy    db    ?
  83. fm_cmd        ends
  84.  
  85. ;
  86. ; Space a Tape
  87. ;
  88. space_cmd    struc
  89. space_cmd_op    db    ?        ;Opcode
  90. space_cmd_code    db    ?
  91. space_cmd_cnt2    db    ?        ;Count
  92. space_cmd_cnt1    db    ?
  93. space_cmd_cnt0    db    ?
  94. space_cmd_dummy    db    ?
  95. space_cmd    ends
  96.  
  97. ;
  98. ; Reassign a Block
  99. ;
  100. remap_cmd    struc
  101. remap_cmd_op    db    ?        ;Opcode
  102. remap_cmd_lun    db    ?        ;Lun
  103. remap_cmd_dum1    db    ?        ;Reserved
  104. remap_cmd_dum2    db    ?
  105. remap_cmd_dum3    db    ?
  106. remap_cmd_dum4    db    ?
  107. remap_cmd    ends
  108.  
  109. ;
  110. ; Structure(s) returned by the sense command(s)
  111. ;
  112. sense        struc
  113. sense_sense    db    ?        ;Sense (Error) code
  114. sense_lba_b2    db    ?        ;Failed Block Address
  115. sense_lba_b1    db    ?
  116. sense_lba_b0    db    ?
  117. sense        ends
  118.  
  119. e_sense        struc
  120. e_sense_ccs    db    ?        ;0x70 for Extended Sense
  121. e_sense_dummy1    db    ?
  122. e_sense_sense    db    ?        ;Sense (Error) Group
  123. e_sense_lba_b3    db    ?        ;Failed Block Address
  124. e_sense_lba_b2    db    ?
  125. e_sense_lba_b1    db    ?
  126. e_sense_lba_b0    db    ?
  127. e_sense        ends
  128.  
  129. ;
  130. ; Structure returned by the unit inquiry command
  131. ;
  132. inq        struc
  133. inq_dev_type    db    ?        ;Device Type
  134. inq_dev_qual    db    ?        ;Device Qualifier
  135.         ife mini_inquire
  136. inq_stand_rev    db    ?        ;Standard Revision Level
  137. inq_format    db    ?        ;Response Format
  138. inq_length    db    ?        ;Length of Extra Data
  139. inq_reserv1    db    ?
  140. inq_reserv2    db    ?
  141. inq_reserv3    db    ?
  142. inq_manufact    db    8 dup (?)    ;Manufacture
  143. inq_product    db    16 dup (?)    ;Product
  144.         endif
  145. inq        ends
  146.  
  147. ;
  148. ; Structure returned by the read drive capacity command
  149. ;
  150. cap        struc
  151. cap_sectors_b3    db    ?        ;MSB of sector count
  152. cap_sectors_b2    db    ?
  153. cap_sectors_b1    db    ?
  154. cap_sectors_b0    db    ?        ;LSB of sector count
  155. cap_size_b3    db    ?        ;MSB of sector size
  156. cap_size_b2    db    ?
  157. cap_size_b1    db    ?
  158. cap_size_b0    db    ?        ;LSB of sector size
  159. cap        ends
  160.  
  161. ;
  162. ; Structure Definitions For Our Device Driver
  163. ;
  164. bpb        struc
  165. bpb_ss        dw    ?        ;Sector Size
  166. bpb_au        db    ?        ;Cluster Size in Sectors
  167. bpb_rs        dw    ?        ;Reserved Sectors
  168. bpb_nf        db    ?        ;Number of Fats
  169. bpb_de        dw    ?        ;Number of Root Directory Entries
  170. bpb_ts        dw    ?        ;Total Number Of Sectors
  171. bpb_md        db    ?        ;Media Descriptor
  172. bpb_fs        dw    ?        ;Number of Sectors in each Fat
  173. bpb_st        dw    ?        ;Number of Sectors per Track
  174. bpb_nh        dw    ?        ;Number of Heads
  175. bpb_hs_lsw    dw    ?        ;Hidden Sectors (Least Sig Word)
  176. bpb_hs_msw    dw    ?        ;Hidden Sectors (Most Sig Word)
  177. bpb_ts_lsw    dw    ?        ;Large Total Sector Count
  178. bpb_ts_msw    dw    ?
  179. bpb_res        db    6 dup (?)    ;Reserved
  180. bpb        ends
  181.  
  182. ;
  183. ; ioctl function 42h/62h
  184. ;
  185. ioctl_fmt    struc
  186. ioctl_fmt_spec    db    ?        ;Special Flags
  187. ioctl_fmt_head    dw    ?        ;Head to Format
  188. ioctl_fmt_cyl    dw    ?        ;Cylinder to Format
  189. ioctl_fmt_len    dw    ?        ;How Many Tracks
  190. ioctl_fmt    ends
  191.  
  192. ;
  193. ; ioctl function 61h
  194. ;
  195. ioctl_read    struc
  196. ioctl_read_spec    db    ?        ;Special Flags
  197. ioctl_read_head    dw    ?        ;Head to Read
  198. ioctl_read_cyl    dw    ?        ;Cylinder to Read
  199. ioctl_read_sect    dw    ?        ;Sector to Read
  200. ioctl_read_len    dw    ?        ;How Many Sectors
  201. ioctl_read_ofs    dw    ?        ;Buffer Offset
  202. ioctl_read_seg    dw    ?        ;Buffer Segment
  203. ioctl_read    ends
  204.  
  205. ;
  206. ; ioctl function 60h/61h return
  207. ;
  208. dpb        struc
  209. dpb_special    db    ?        ;Special Flags
  210. dpb_type    db    ?        ;Device Type
  211. dpb_attr    dw    ?        ;Device Attributes
  212. dpb_cyl        dw    ?        ;Device Cylinder Count
  213. dpb_media    db    ?        ;Device Media Type if Diskette
  214. dpb_bpb        db    size bpb dup (?)
  215. dpb_sectors    dw    ?        ;Sectors in Track
  216. dpb_track    dd    SECT_TRACK dup (?)
  217. dpb        ends
  218.  
  219. ;
  220. ; The internal control structure for a SCSI device
  221. ;
  222. unit        struc
  223. unit_1st_drv    db    ?        ;DOS Drive Numbers
  224. unit_num_drv    db    ?        ;DOS Drive Count
  225. unit_select    db    ?        ;SCSI Select Bit
  226. unit_mcheck    db    ?        ;Media Check Byte
  227. unit_inq_buf    db    size inq dup (?)
  228. unit_inq_term    db    ?
  229. unit_cap_buf    db    size cap dup (?)
  230. unit_sense    db    size sense dup (?)
  231. unit_e_sense    db    size e_sense dup (?)
  232. unit        ends
  233.  
  234. ;
  235. ; Ioctl Commands
  236. ;
  237. ioc        struc
  238. ioc_command    dw    ?        ;Command
  239. ioc_param1    dw    ?        ;Command Dependent Data
  240. ioc_param2    dw    ?        ;Command Dependent Data
  241. ioc_buf_seg    dw    ?        ;Buffer Segment
  242. ioc_buf_ofs    dw    ?        ;Buffer Offset
  243. ioc_buf_len    dw    ?        ;Buffer Length
  244. ioc        ends
  245.  
  246. ;
  247. ; DOS requests
  248. ;
  249. rh        struc
  250. rh_len        db    ?        ;Length of Packet
  251. rh_unit        db    ?        ;Unit Code (Block Only)
  252. rh_cmd        db    ?        ;Command Code
  253. rh_status    dw    ?        ;Returned Status
  254. rh_res        db    8 dup (?)    ;Reserved
  255. rh        ends
  256.  
  257. rh0        struc            ;INITIALIZATION
  258. rh0_rh        db    size rh dup (?)    ;Fixed Portion
  259. rh0_nunits    db    ?        ;Number of units (Block Only)
  260. rh0_brk_ofs    dw    ?        ;Break Address (Offset)
  261. rh0_brk_seg    dw    ?        ;Break Address (Segment)
  262. rh0_bpb_tbo    dw    ?        ;Pointer to BPB Array (Offset)
  263. rh0_bpb_tbs    dw    ?        ;Pointer to BPB Array (Segment)
  264. rh0_drv_ltr    db    ?        ;First Available Drive (DOS 3+, Block Only)
  265. rh0        ends
  266.  
  267. rh1        struc            ;MEDIA CHECK
  268. rh1_rh        db    size rh dup (?)    ;Fixed Portion
  269. rh1_media    db    ?        ;Media Descriptor from DPB
  270. rh1_md_stat    db    ?        ;Media Status returned by Device Driver
  271. rh1_volid_ofs    dw    ?        ;Offset of Volume ID String (DOS 3+)
  272. rh1_volid_seg    dw    ?        ;Segment of Volume ID String (DOS 3+)
  273. rh1        ends
  274.  
  275. rh2        struc            ;GET BPB
  276. rh2_rh        db    size rh dup (?)    ;Fixed Portion
  277. rh2_media    db    ?        ;Media Descriptor from DPB
  278. rh2_buf_ofs    dw    ?        ;Offset of Data Transfer Area
  279. rh2_buf_seg    dw    ?        ;Segment of Data Transfer Area
  280. rh2_pbpbo    dw    ?        ;Offset of Pointer to BPB
  281. rh2_pbpbs    dw    ?        ;Segment of Pointer to BPB
  282. rh2        ends
  283.  
  284. rh4        struc            ;INPUT
  285. rh4_rh        db    size rh dup (?)    ;Fixed Portion
  286. rh4_media    db    ?        ;Media Descriptor from DPB
  287. rh4_buf_ofs    dw    ?        ;Offset of Data Transfer Area
  288. rh4_buf_seg    dw    ?        ;Segment of Data Transfer Area
  289. rh4_count    dw    ?        ;Transfer Count (Sectors)
  290. rh4_sector    dw    ?        ;Start Sector Number
  291.         dd    ?
  292. rh4_lsect_lsw    dw    ?        ;Start Sector LSW (32 bit)
  293. rh4_lsect_msw    dw    ?        ;Start Sector MSW (32 bit)
  294. rh4        ends
  295.  
  296. rh8        struc            ;OUTPUT
  297. rh8_rh        db    size rh dup (?)    ;Fixed Portion
  298. rh8_media    db    ?        ;Media Descriptor from DPB
  299. rh8_buf_ofs    dw    ?        ;Offset of Data Transfer Area
  300. rh8_buf_seg    dw    ?        ;Segment of Data Transfer Area
  301. rh8_count    dw    ?        ;Transfer Count (Sectors)
  302. rh8_sector    dw    ?        ;Start Sector Number
  303.         dd    ?
  304. rh8_lsect_lsw    dw    ?        ;Start Sector LSW (32 bit)
  305. rh8_lsect_msw    dw    ?        ;Start Sector MSW (32 bit)
  306. rh8        ends
  307.  
  308. rh12        struc            ;OUTPUT IOCTL
  309. rh12_rh        db    size rh dup (?)    ;Fixed Portion
  310. rh12_media    db    ?        ;Media Descriptor from DPB
  311. rh12_buf_ofs    dw    ?        ;Offset of Data Transfer Area
  312. rh12_buf_seg    dw    ?        ;Segment of Data Transfer Area
  313. rh12_count    dw    ?        ;Transfer Count (Sectors)
  314. rh12_sector    dw    ?        ;Start Sector Number
  315. rh12        ends
  316.  
  317. rh19        struc            ;IOCTL
  318. rh19_rh        db    size rh dup (?)    ;Fixed Portion
  319. rh19_major    db    ?        ;Major Code
  320. rh19_minor    db    ?        ;Minor Code
  321. rh19_si        dw    ?        ;Caller SI Register
  322. rh19_di        dw    ?        ;Caller DI Register
  323. rh19_buf_ofs    dw    ?        ;Caller Buffer Offset
  324. rh19_buf_seg    dw    ?        ;Caller Buffer Segment
  325. rh19        ends
  326.