home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / SCSI < prev    next >
Encoding:
Text File  |  1995-06-27  |  6.1 KB  |  233 lines

  1. ;Assembler header file for SCSI
  2. ;written by DefMod (Jun 12 1995) on Tue Jun 27 17:06:34 1995
  3. ;Jonathan Coxhead, Acorn Computers Ltd
  4.  
  5.         [       :LNOT: :DEF: Get_Types
  6.         GBLS    Get_Types
  7.         ]
  8.         [       :LNOT: :DEF: Types_Hdr
  9. Get_Types                       SETS    "GET OS:Hdr.Types"
  10.         |
  11. Get_Types                       SETS    ""
  12.         ]
  13.         $Get_Types
  14.  
  15.         [       :LNOT: :DEF: Get_OS
  16.         GBLS    Get_OS
  17.         ]
  18.         [       :LNOT: :DEF: OS_Hdr
  19. Get_OS                          SETS    "GET OS:Hdr.OS"
  20.         |
  21. Get_OS                          SETS    ""
  22.         ]
  23.         $Get_OS
  24.  
  25.         [       :LNOT: :DEF: SCSI_Hdr
  26.         GBLS    SCSI_Hdr
  27.  
  28. ;Symbols for constants
  29. SCSI_CheckNoChange              *       &FFFFFFFF
  30. SCSI_CheckError                 *       &0
  31. SCSI_CheckSense                 *       &1
  32. SCSI_CheckRetry                 *       &2
  33. SCSI_BehaviourNoChange          *       &FFFFFFFF
  34. SCSI_BehaviourWait              *       &0
  35. SCSI_BehaviourAwaitQueue        *       &1
  36. SCSI_BehaviourAwaitDevice       *       &2
  37. SCSI_BehaviourAwaitCard         *       &3
  38. SCSI_DisconnectNoChange         *       &FFFFFFFF
  39. SCSI_DisconnectAllowed          *       &0
  40. SCSI_DisconnectInhibitedByBlocking *       &1
  41. SCSI_DisconnectInhibited        *       &2
  42. SCSI_DeviceStatusIdle           *       &1
  43. SCSI_DeviceStatusBusy           *       &2
  44.  
  45. ;Symbols for structure offsets and sizes
  46. SCSI_SoftwareFeatures           *       Bits
  47.  
  48. SCSI_HardwareFeatures           *       Bits
  49.  
  50. SCSI_DeviceType                 *       Byte
  51.  
  52. SCSI_DeviceFlags                *       Byte
  53.  
  54. SCSI_DeviceVersion              *       Byte
  55.  
  56.                                 ^       0
  57. SCSI_DeviceDescription_type     #       SCSI_DeviceType
  58. SCSI_DeviceDescription_flags    #       SCSI_DeviceFlags
  59. SCSI_DeviceDescription_version  #       SCSI_DeviceVersion
  60. SCSI_DeviceDescription_reserved0 #       Byte
  61. SCSI_DeviceDescription_length   #       Byte
  62. SCSI_DeviceDescription_reserved1 #       Byte
  63. SCSI_DeviceDescription_reserved2 #       Byte
  64. SCSI_DeviceDescription_reserved3 #       Byte
  65. SCSI_DeviceDescription_block_count #       Int
  66. SCSI_DeviceDescription_block_size #       Int
  67. SCSI_DeviceDescription          *       @
  68.  
  69. SCSI_ErrorResponseLevel         *       Int
  70.  
  71. SCSI_QueueBehaviour             *       Int
  72.  
  73. SCSI_Disconnection              *       Int
  74.  
  75.                                 ^       0
  76. SCSI_OpBlock_o                  #       Int
  77. SCSI_OpBlock                    *       @
  78.  
  79. SCSI_DeviceStatus               *       Int
  80.  
  81.                                 ^       0
  82. SCSI_CardAddressList_addr       #       Ptr
  83. SCSI_CardAddressList            *       @
  84.  
  85.  
  86. ;Symbols for SWI's and SWI reason codes
  87. XSCSI_Version                   *       &603C0
  88. SCSI_Version                    *       &403C0
  89.    ;Exit
  90.    ;  R0 = software_version (Bits)
  91.    ;  R1 = software_features (SCSI_SoftwareFeatures)
  92.    ;  R2 = hardware_version (Bits)
  93.    ;  R3 = hardware_features (SCSI_HardwareFeatures)
  94.  
  95. XSCSI_Initialise                *       &603C1
  96. SCSI_Initialise                 *       &403C1
  97.  
  98. SCSIInitialise_ResetBus         *       &0
  99.    ;Entry
  100.    ;  R0 = &0
  101.    ;  R1 = host_id (Int)
  102.  
  103. SCSIInitialise_ResetDevice      *       &1
  104.    ;Entry
  105.    ;  R0 = &1
  106.    ;  R1 = device_id (Int)
  107.    ;  R8 = access_key (Int)
  108.  
  109. SCSIInitialise_DetermineDevice  *       &2
  110.    ;Entry
  111.    ;  R0 = &2
  112.    ;  R1 = device_id (Int)
  113.    ;  R2 = description (pointer to SCSI_DeviceDescription)
  114.  
  115. SCSIInitialise_EnumerateDevice  *       &3
  116.    ;Entry
  117.    ;  R0 = &3
  118.    ;  R1 = device_id (Int)
  119.    ;  R2 = description (pointer to String)
  120.    ;  R3 = size (Int)
  121.  
  122. XSCSI_Control                   *       &603C2
  123. SCSI_Control                    *       &403C2
  124.  
  125. SCSIControl_AbortDevice         *       &0
  126.    ;Entry
  127.    ;  R0 = &0
  128.    ;  R1 = device_id (Int)
  129.    ;  R8 = access_key (Int)
  130.  
  131. SCSIControl_AbortOp             *       &1
  132.    ;Entry
  133.    ;  R0 = &1
  134.    ;  R1 = device_id (Int)
  135.    ;  R2 = op_id (Int)
  136.    ;  R8 = access_key (Int)
  137.  
  138. SCSIControl_SetTimeout          *       &3
  139.    ;Entry
  140.    ;  R0 = &3
  141.    ;  R1 = device_id (Int)
  142.    ;  R2 = timeout (Int)
  143.    ;  R8 = access_key (Int)
  144.    ;Exit
  145.    ;  R2 = old_timeout (Int)
  146.  
  147. SCSIControl_SetErrorResponse    *       &4
  148.    ;Entry
  149.    ;  R0 = &4
  150.    ;  R1 = device_id (Int)
  151.    ;  R2 = level (SCSI_ErrorResponseLevel)
  152.    ;  R8 = access_key (Int)
  153.    ;Exit
  154.    ;  R2 = old_level (Int)
  155.  
  156. SCSIControl_SetQueueBehaviour   *       &5
  157.    ;Entry
  158.    ;  R0 = &5
  159.    ;  R1 = device_id (Int)
  160.    ;  R2 = behaviour (SCSI_QueueBehaviour)
  161.    ;  R8 = access_key (Int)
  162.    ;Exit
  163.    ;  R2 = old_level (Int)
  164.  
  165. SCSIControl_Disconnect          *       &6
  166.    ;Entry
  167.    ;  R0 = &6
  168.    ;  R1 = device_id (Int)
  169.    ;  R2 = disconnection (SCSI_Disconnection)
  170.    ;Exit
  171.    ;  R2 = old_disconnection (Int)
  172.    ;  R8 = access_key (Int)
  173.  
  174. XSCSI_Op                        *       &603C3
  175. SCSI_Op                         *       &403C3
  176.    ;Entry
  177.    ;  R0 = op (Bits)
  178.    ;  R1 = block_size (Int)
  179.    ;  R2 -> block (SCSI_OpBlock)
  180.    ;  R3 = start_addr (pointer to data)
  181.    ;  R4 = length (Int)
  182.    ;  R5 = timeout (Int)
  183.    ;  R6 -> callback_code (code)
  184.    ;  R7 = workspace (pointer to Void)
  185.    ;  R8 = access_key (Int)
  186.    ;Exit
  187.    ;  R0 = op_id (Int)
  188.    ;  R3 = next_addr (pointer to data)
  189.    ;  R4 = undone (Int)
  190.  
  191. XSCSI_Status                    *       &603C4
  192. SCSI_Status                     *       &403C4
  193.  
  194. SCSIStatus_CheckDevice          *       &0
  195.    ;Entry
  196.    ;  R0 = &0
  197.    ;  R1 = device_id (Int)
  198.    ;Exit
  199.    ;  R0 = status (SCSI_DeviceStatus)
  200.  
  201. XSCSI_Reserve                   *       &603C7
  202. SCSI_Reserve                    *       &403C7
  203.  
  204. SCSIReserve_Claim               *       &0
  205.    ;Entry
  206.    ;  R0 = &0
  207.    ;  R1 = device_id (Int)
  208.    ;  R2 -> release_code (code)
  209.    ;  R3 = workspace (pointer to Void)
  210.    ;  R8 = access_key (Int)
  211.  
  212. SCSIReserve_ForceClaim          *       &1
  213.    ;Entry
  214.    ;  R0 = &1
  215.    ;  R1 = device_id (Int)
  216.    ;  R2 -> release_code (code)
  217.    ;  R3 = workspace (pointer to Void)
  218.    ;  R8 = access_key (Int)
  219.  
  220. SCSIReserve_Release             *       &2
  221.    ;Entry
  222.    ;  R0 = &2
  223.    ;  R1 = device_id (Int)
  224.    ;  R8 = access_key (Int)
  225.  
  226. XSCSI_List                      *       &603C8
  227. SCSI_List                       *       &403C8
  228.    ;Entry
  229.    ;  R0 -> list (SCSI_CardAddressList)
  230.  
  231.         ]
  232.         END
  233.