home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / DeviceFS < prev    next >
Encoding:
Text File  |  1995-07-03  |  6.5 KB  |  273 lines

  1. ;Assembler header file for DeviceFS
  2. ;written by DefMod (Jun 30 1995) on Mon Jul  3 18:50:22 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: Get_Buffer
  26.         GBLS    Get_Buffer
  27.         ]
  28.         [       :LNOT: :DEF: Buffer_Hdr
  29. Get_Buffer                      SETS    "GET OS:Hdr.Buffer"
  30.         |
  31. Get_Buffer                      SETS    ""
  32.         ]
  33.         $Get_Buffer
  34.  
  35.         [       :LNOT: :DEF: DeviceFS_Hdr
  36.         GBLS    DeviceFS_Hdr
  37.  
  38. ;Symbols for constants
  39. DeviceFS_DeviceBuffered         *       &1
  40. DeviceFS_DeviceUsesPathVar      *       &2
  41. DeviceFS_RegisterBlockDevice    *       &1
  42. DeviceFS_RegisterFullDuplex     *       &2
  43. DeviceFS_OpenForRx              *       &0
  44. DeviceFS_OpenForTx              *       &1
  45.  
  46. ;Symbols for structure offsets and sizes
  47. DeviceFS_Flags                  *       Bits
  48.  
  49. DeviceFS_D                      *       4 ;abstract type
  50. DeviceFS_S                      *       4 ;abstract type
  51. DeviceFS_H                      *       4 ;abstract type
  52.                                 ^       0
  53. DeviceFS_Device_name_offset     #       Int
  54. DeviceFS_Device_flags           #       DeviceFS_Flags
  55. DeviceFS_Device_rx_flags        #       Bits
  56. DeviceFS_Device_rx_buffer_size  #       Int
  57. DeviceFS_Device_tx_flags        #       Bits
  58. DeviceFS_Device_tx_buffer_size  #       Int
  59. DeviceFS_Device_reserved        #       Int
  60. DeviceFS_Device                 *       @
  61.  
  62.                                 ^       0
  63. DeviceFS_DeviceList_d           #       DeviceFS_Device
  64. DeviceFS_DeviceList             *       @
  65.  
  66. DeviceFS_RegisterFlags          *       Bits
  67.  
  68. DeviceFS_InitialiseFlags        *       Bits
  69.  
  70.  
  71. ;Symbols for SWI's and SWI reason codes
  72. XDeviceFS_Register              *       &62740
  73. DeviceFS_Register               *       &42740
  74.    ;Entry
  75.    ;  R0 = flags (DeviceFS_RegisterFlags)
  76.    ;  R1 -> devices (DeviceFS_DeviceList)
  77.    ;  R2 -> driver (code)
  78.    ;  R3 = handle (Int)
  79.    ;  R4 = workspace (pointer to Void)
  80.    ;  R5 -> validation (String)
  81.    ;  R6 = rx_limit (Int)
  82.    ;  R7 = tx_limit (Int)
  83.    ;Exit
  84.    ;  R0 = d (DeviceFS_D)
  85.  
  86. XDeviceFS_Deregister            *       &62741
  87. DeviceFS_Deregister             *       &42741
  88.    ;Entry
  89.    ;  R0 = d (DeviceFS_D)
  90.  
  91. XDeviceFS_RegisterObjects       *       &62742
  92. DeviceFS_RegisterObjects        *       &42742
  93.    ;Entry
  94.    ;  R0 = d (DeviceFS_D)
  95.    ;  R1 -> devices (DeviceFS_DeviceList)
  96.  
  97. XDeviceFS_DeregisterObjects     *       &62743
  98. DeviceFS_DeregisterObjects      *       &42743
  99.    ;Entry
  100.    ;  R0 = d (DeviceFS_D)
  101.    ;  R1 -> device_name (String)
  102.  
  103. XDeviceFS_CallDevice            *       &62744
  104. DeviceFS_CallDevice             *       &42744
  105.  
  106. DeviceFSCallDevice_Initialise   *       &0
  107.    ;Entry
  108.    ;  R0 = &0
  109.    ;  R1 = d (DeviceFS_D)
  110.    ;  R2 = s (DeviceFS_S)
  111.    ;  R3 = flags (DeviceFS_InitialiseFlags)
  112.    ;  R6 -> decoded_special (data)
  113.    ;Exit
  114.    ;  R2 = h (DeviceFS_H)
  115.  
  116. DeviceFSCallDevice_Terminate    *       &1
  117.    ;Entry
  118.    ;  R0 = &1
  119.    ;  R1 = d (DeviceFS_D)
  120.    ;  R2 = h (DeviceFS_H)
  121.  
  122. DeviceFSCallDevice_TxWakeUp     *       &2
  123.    ;Entry
  124.    ;  R0 = &2
  125.    ;  R1 = d (DeviceFS_D)
  126.    ;  R2 = h (DeviceFS_H)
  127.    ;Exit
  128.    ;  R0 = woken_up (Bool)
  129.  
  130. DeviceFSCallDevice_RxWakeUp     *       &3
  131.    ;Entry
  132.    ;  R0 = &3
  133.    ;  R1 = d (DeviceFS_D)
  134.    ;  R2 = h (DeviceFS_H)
  135.  
  136. DeviceFSCallDevice_RxSleep      *       &4
  137.    ;Entry
  138.    ;  R0 = &4
  139.    ;  R1 = d (DeviceFS_D)
  140.    ;  R2 = h (DeviceFS_H)
  141.  
  142. DeviceFSCallDevice_EnumDir      *       &5
  143.    ;Entry
  144.    ;  R0 = &5
  145.    ;  R1 = d (DeviceFS_D)
  146.    ;  R2 -> file_name (String)
  147.  
  148. DeviceFSCallDevice_TxCreateBuffer *       &6
  149.    ;Entry
  150.    ;  R0 = &6
  151.    ;  R1 = d (DeviceFS_D)
  152.    ;  R2 = h (DeviceFS_H)
  153.    ;  R3 = flags (Buffer_Flags)
  154.    ;  R4 = size (Int)
  155.    ;  R5 = b (Buffer_B)
  156.    ;  R6 = threshold (Int)
  157.    ;Exit
  158.    ;  R3 = flags_out (Buffer_Flags)
  159.    ;  R4 = size_out (Int)
  160.    ;  R5 = b_out (Buffer_B)
  161.    ;  R6 = threshold_out (Int)
  162.  
  163. DeviceFSCallDevice_RxCreateBuffer *       &7
  164.    ;Entry
  165.    ;  R0 = &7
  166.    ;  R1 = d (DeviceFS_D)
  167.    ;  R2 = h (DeviceFS_H)
  168.    ;  R3 = flags (Buffer_Flags)
  169.    ;  R4 = size (Int)
  170.    ;  R5 = b (Buffer_B)
  171.    ;  R6 = threshold (Int)
  172.    ;Exit
  173.    ;  R3 = flags_out (Buffer_Flags)
  174.    ;  R4 = size_out (Int)
  175.    ;  R5 = b_out (Buffer_B)
  176.    ;  R6 = threshold_out (Int)
  177.  
  178. DeviceFSCallDevice_Halt         *       &8
  179.    ;Entry
  180.    ;  R0 = &8
  181.    ;  R1 = d (DeviceFS_D)
  182.    ;  R2 = h (DeviceFS_H)
  183.  
  184. DeviceFSCallDevice_Resume       *       &9
  185.    ;Entry
  186.    ;  R0 = &9
  187.    ;  R1 = d (DeviceFS_D)
  188.    ;  R2 = h (DeviceFS_H)
  189.  
  190. DeviceFSCallDevice_EndOfData    *       &A
  191.    ;Entry
  192.    ;  R0 = &A
  193.    ;  R1 = d (DeviceFS_D)
  194.    ;  R2 = h (DeviceFS_H)
  195.    ;  R3 = &FFFFFFFF
  196.    ;Exit
  197.    ;  R3 = end_of_data (Bool)
  198.  
  199. DeviceFSCallDevice_StreamCreated *       &B
  200.    ;Entry
  201.    ;  R0 = &B
  202.    ;  R1 = d (DeviceFS_D)
  203.    ;  R2 = h (DeviceFS_H)
  204.    ;  R3 = b (Buffer_B)
  205.  
  206. XDeviceFS_Threshold             *       &62745
  207. DeviceFS_Threshold              *       &42745
  208.    ;Entry
  209.    ;  R1 = s (DeviceFS_S)
  210.    ;  R2 = threshold (Int)
  211.  
  212. XDeviceFS_ReceivedChar          *       &62746
  213. DeviceFS_ReceivedChar           *       &42746
  214.    ;Entry
  215.    ;  R0 = b (Byte)
  216.    ;  R1 = s (DeviceFS_S)
  217.  
  218. XDeviceFS_TransmitChar          *       &62747
  219. DeviceFS_TransmitChar           *       &42747
  220.    ;Entry
  221.    ;  R1 = s (DeviceFS_S)
  222.    ;Exit
  223.    ;  R0 = b (Byte)
  224.  
  225. Service_DeviceFSStarting        *       &70
  226.    ;Entry
  227.    ;  R1 = &70
  228.  
  229. Service_DeviceFSDying           *       &71
  230.    ;Entry
  231.    ;  R0 = &0
  232.    ;  R1 = &71
  233.  
  234. Service_DeviceDead              *       &79
  235.    ;Entry
  236.    ;  R0 = &0
  237.    ;  R1 = &79
  238.    ;  R2 = d (DeviceFS_D)
  239.    ;  R3 -> device_name (String)
  240.  
  241. Service_DeviceFSCloseRequest    *       &81
  242.    ;Entry
  243.    ;  R1 = &81
  244.    ;  R2 = file (OS_F)
  245.    ;Exit
  246.    ;  R1 = unclaimed (Bool)
  247.  
  248. UpCall_StreamCreated            *       &A
  249.    ;Entry
  250.    ;  R0 = &A
  251.    ;  R1 = d (DeviceFS_D)
  252.    ;  R2 = tx_stream (Bool)
  253.    ;  R3 = file (OS_F)
  254.    ;  R4 = s (DeviceFS_S)
  255.  
  256. UpCall_StreamClosed             *       &B
  257.    ;Entry
  258.    ;  R0 = &B
  259.    ;  R1 = d (DeviceFS_D)
  260.    ;  R2 = tx_stream (Bool)
  261.    ;  R3 = file (OS_F)
  262.    ;  R4 = s (DeviceFS_S)
  263.  
  264. Event_DeviceOverrun             *       &16
  265.    ;Entry
  266.    ;  R0 = &16
  267.    ;  R1 = d (DeviceFS_D)
  268.    ;  R2 = file (OS_F)
  269.    ;  R3 = &0
  270.  
  271.         ]
  272.         END
  273.