home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / Econet < prev    next >
Encoding:
Text File  |  1995-08-22  |  14.3 KB  |  514 lines

  1. ;Assembler header file for Econet
  2. ;written by DefMod (Jun 30 1995) on Tue Aug 22 14:44:27 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: Econet_Hdr
  26.         GBLS    Econet_Hdr
  27.  
  28. ;Symbols for constants
  29. Econet_StatusTransmitted        *       &0
  30. Econet_StatusLineJammed         *       &1
  31. Econet_StatusNetError           *       &2
  32. Econet_StatusNotListening       *       &3
  33. Econet_StatusNoClock            *       &4
  34. Econet_StatusTxReady            *       &5
  35. Econet_StatusTransmitting       *       &6
  36. Econet_StatusRxReady            *       &7
  37. Econet_StatusReceiving          *       &8
  38. Econet_StatusReceived           *       &9
  39. Econet_StatusNoReply            *       &A
  40. Econet_StatusEscape             *       &B
  41. Econet_StatusNotPresent         *       &C
  42. Error_EconetTxReady             *       &300
  43. Error_EconetTransmitting        *       &301
  44. Error_EconetRxReady             *       &302
  45. Error_EconetReceiving           *       &303
  46. Error_EconetReceived            *       &304
  47. Error_EconetTransmitted         *       &305
  48. Error_EconetBadStation          *       &306
  49. Error_EconetBadNetwork          *       &307
  50. Error_EconetUnableToDefault     *       &308
  51. Error_EconetBadPort             *       &309
  52. Error_EconetBadControl          *       &30A
  53. Error_EconetBadBuffer           *       &30B
  54. Error_EconetBadSize             *       &30C
  55. Error_EconetBadMask             *       &30D
  56. Error_EconetBadCount            *       &30E
  57. Error_EconetBadDelay            *       &30F
  58. Error_EconetBadStatus           *       &310
  59. Error_EconetNoHardware          *       &311
  60. Error_EconetNoEconet            *       &312
  61. Error_EconetNoMoreDomains       *       &313
  62. Error_EconetBadDomain           *       &314
  63. Error_EconetUnRegisteredDomain  *       &315
  64. Error_EconetPortNotAllocated    *       &316
  65. Error_EconetPortAllocated       *       &317
  66. Error_EconetNoMorePorts         *       &318
  67. Econet_ImmediatePeek            *       &1
  68. Econet_ImmediatePoke            *       &2
  69. Econet_ImmediateJSR             *       &3
  70. Econet_ImmediateUserProcedureCall *       &4
  71. Econet_ImmediateOSProcedureCall *       &5
  72. Econet_ImmediateHalt            *       &6
  73. Econet_ImmediateContinue        *       &7
  74. Econet_ImmediateMachinePeek     *       &8
  75. Econet_ImmediateGetRegisters    *       &9
  76. Econet_OSCharFromNotify         *       &0
  77. Econet_OSInitialiseRemote       *       &1
  78. Econet_OSGetViewParameters      *       &2
  79. Econet_OSCauseFatalError        *       &3
  80. Econet_OSCharFromRemote         *       &4
  81. Econet_ProtectionPeek           *       &1
  82. Econet_ProtectionPoke           *       &2
  83. Econet_ProtectionJSR            *       &4
  84. Econet_ProtectionUserProcedureCall *       &8
  85. Econet_ProtectionOSProcedureCall *       &10
  86. Econet_ProtectionHalt           *       &20
  87. Econet_ProtectionContinue       *       &40
  88. Econet_ProtectionMachinePeek    *       &80
  89. Econet_ProtectionGetRegisters   *       &100
  90. Econet_ProtectionWriteCMOS      *       &80000000
  91. Econet_TransportNotKnown        *       &0
  92. Econet_TransportInternet        *       &1
  93. Econet_TransportEconet          *       &2
  94. Econet_TransportNexus           *       &3
  95. Econet_StateOK                  *       &0
  96. Econet_StateNoClock             *       &1
  97. Econet_NetFSStartLoad           *       &10
  98. Econet_NetFSPartLoad            *       &11
  99. Econet_NetFSFinishLoad          *       &12
  100. Econet_NetFSStartSave           *       &20
  101. Econet_NetFSPartSave            *       &21
  102. Econet_NetFSFinishSave          *       &22
  103. Econet_NetFSStartCreate         *       &30
  104. Econet_NetFSPartCreate          *       &31
  105. Econet_NetFSFinishCreate        *       &32
  106. Econet_NetFSStartGetBytes       *       &40
  107. Econet_NetFSPartGetBytes        *       &41
  108. Econet_NetFSFinishGetBytes      *       &42
  109. Econet_NetFSStartPutBytes       *       &50
  110. Econet_NetFSPartPutBytes        *       &51
  111. Econet_NetFSFinishPutBytes      *       &52
  112. Econet_NetFSStartWait           *       &60
  113. Econet_NetFSFinishWait          *       &62
  114. Econet_NetFSStartBroadcastLoad  *       &70
  115. Econet_NetFSPartBroadcastLoad   *       &71
  116. Econet_NetFSFinishBroadcastLoad *       &72
  117. Econet_NetFSStartBroadcastSave  *       &80
  118. Econet_NetFSPartBroadcastSave   *       &81
  119. Econet_NetFSFinishBroadcastSave *       &82
  120. Econet_EconetStartTransmission  *       &C0
  121. Econet_EconetFinishTransmission *       &C2
  122. Econet_EconetStartReception     *       &D0
  123. Econet_EconetFinishReception    *       &D2
  124. Econet_Second                   *       4000000
  125. Econet_kHz                      *       1
  126.  
  127. ;Symbols for structure offsets and sizes
  128. Econet_Status                   *       Int
  129.  
  130. Econet_ImmediateOp              *       Int
  131.  
  132. Econet_ImmediateOSProcedure     *       Ptr
  133.  
  134. Econet_Protection               *       Bits
  135.  
  136. Econet_TransportType            *       Int
  137.  
  138. Econet_State                    *       Int
  139.  
  140. Econet_RxCB                     *       4 ;abstract type
  141. Econet_TxCB                     *       4 ;abstract type
  142. Econet_Action                   *       Int
  143.  
  144. Econet_MapFlags                 *       Bits
  145.  
  146.  
  147. ;Symbols for SWI's and SWI reason codes
  148. XEconet_CreateReceive           *       &60000
  149. Econet_CreateReceive            *       &40000
  150.    ;Entry
  151.    ;  R0 = port (Byte)
  152.    ;  R1 = station (Byte)
  153.    ;  R2 = net (Byte)
  154.    ;  R3 = buffer (pointer to data)
  155.    ;  R4 = size (Int)
  156.    ;Exit
  157.    ;  R0 = rx_cb (Econet_RxCB)
  158.    ;  R2 = nonlocal (Bool)
  159.  
  160. XEconet_ExamineReceive          *       &60001
  161. Econet_ExamineReceive           *       &40001
  162.    ;Entry
  163.    ;  R0 = rx_cb (Econet_RxCB)
  164.    ;Exit
  165.    ;  R0 = status (Econet_Status)
  166.  
  167. XEconet_ReadReceive             *       &60002
  168. Econet_ReadReceive              *       &40002
  169.    ;Entry
  170.    ;  R0 = rx_cb (Econet_RxCB)
  171.    ;Exit
  172.    ;  R0 = status (Econet_Status)
  173.    ;  R1 = flag (Byte)
  174.    ;  R2 = port (Byte)
  175.    ;  R3 = station (Byte)
  176.    ;  R4 = net (Byte)
  177.    ;  R5 = buffer (pointer to data)
  178.    ;  R6 = size (Int)
  179.  
  180. XEconet_AbandonReceive          *       &60003
  181. Econet_AbandonReceive           *       &40003
  182.    ;Entry
  183.    ;  R0 = rx_cb (Econet_RxCB)
  184.    ;Exit
  185.    ;  R0 = status (Econet_Status)
  186.  
  187. XEconet_WaitForReception        *       &60004
  188. Econet_WaitForReception         *       &40004
  189.    ;Entry
  190.    ;  R0 = rx_cb (Econet_RxCB)
  191.    ;  R1 = delay (Int)
  192.    ;  R2 = abort_on_escape (Bool)
  193.    ;Exit
  194.    ;  R0 = status (Econet_Status)
  195.    ;  R1 = flag (Byte)
  196.    ;  R2 = port (Byte)
  197.    ;  R3 = station (Byte)
  198.    ;  R4 = net (Byte)
  199.    ;  R5 = buffer (pointer to data)
  200.    ;  R6 = size (Int)
  201.  
  202. XEconet_EnumerateReceive        *       &60005
  203. Econet_EnumerateReceive         *       &40005
  204.    ;Entry
  205.    ;  R0 = rx_cb_no (Int)
  206.    ;Exit
  207.    ;  R0 = rx_cb (Econet_RxCB)
  208.  
  209. XEconet_StartTransmit           *       &60006
  210. Econet_StartTransmit            *       &40006
  211.    ;Entry
  212.    ;  R0 = flags (Byte)
  213.    ;  R1 = port (Byte)
  214.    ;  R2 = station (Byte)
  215.    ;  R3 = net (Byte)
  216.    ;  R4 = buffer (pointer to data)
  217.    ;  R5 = size (Int)
  218.    ;  R6 = count (Int)
  219.    ;  R7 = delay (Int)
  220.    ;Exit
  221.    ;  R0 = tx_cb (Econet_TxCB)
  222.    ;  R1 corrupted
  223.    ;  R2 corrupted
  224.    ;  R3 corrupted
  225.    ;  R4 = nonlocal (Bool)
  226.  
  227. XEconet_PollTransmit            *       &60007
  228. Econet_PollTransmit             *       &40007
  229.    ;Entry
  230.    ;  R0 = tx_cb (Econet_TxCB)
  231.    ;Exit
  232.    ;  R0 = status (Econet_Status)
  233.  
  234. XEconet_AbandonTransmit         *       &60008
  235. Econet_AbandonTransmit          *       &40008
  236.    ;Entry
  237.    ;  R0 = tx_cb (Econet_TxCB)
  238.    ;Exit
  239.    ;  R0 = status (Econet_Status)
  240.  
  241. XEconet_DoTransmit              *       &60009
  242. Econet_DoTransmit               *       &40009
  243.    ;Entry
  244.    ;  R0 = flags (Byte)
  245.    ;  R1 = port (Byte)
  246.    ;  R2 = station (Byte)
  247.    ;  R3 = net (Byte)
  248.    ;  R4 = buffer (pointer to data)
  249.    ;  R5 = size (Int)
  250.    ;  R6 = count (Int)
  251.    ;  R7 = delay (Int)
  252.    ;Exit
  253.    ;  R0 = status (Econet_Status)
  254.    ;  R1 corrupted
  255.    ;  R2 corrupted
  256.    ;  R3 corrupted
  257.    ;  R4 = nonlocal (Bool)
  258.  
  259. XEconet_ReadLocalStationAndNet  *       &6000A
  260. Econet_ReadLocalStationAndNet   *       &4000A
  261.    ;Exit
  262.    ;  R0 = station (Byte)
  263.    ;  R1 = net (Byte)
  264.  
  265. XEconet_ConvertStatusToString   *       &6000B
  266. Econet_ConvertStatusToString    *       &4000B
  267.    ;Entry
  268.    ;  R0 = status (Econet_Status)
  269.    ;  R1 = buffer (pointer to String)
  270.    ;  R2 = size (Int)
  271.    ;  R3 = station (Byte)
  272.    ;  R4 = net (Byte)
  273.    ;Exit
  274.    ;  R0 corrupted
  275.    ;  R1 -> end (Char)
  276.    ;  R2 corrupted
  277.  
  278. XEconet_ConvertStatusToError    *       &6000C
  279. Econet_ConvertStatusToError     *       &4000C
  280.    ;Entry
  281.    ;  R0 = status (Econet_Status)
  282.    ;  R1 = buffer (pointer to OS_Error)
  283.    ;  R2 = size (Int)
  284.    ;  R3 = station (Byte)
  285.    ;  R4 = net (Byte)
  286.  
  287. XEconet_ReadProtection          *       &6000D
  288. Econet_ReadProtection           *       &4000D
  289.    ;Exit
  290.    ;  R0 = protection (Econet_Protection)
  291.  
  292. XEconet_SetProtection           *       &6000E
  293. Econet_SetProtection            *       &4000E
  294.    ;Entry
  295.    ;  R0 = eor_mask (Econet_Protection)
  296.    ;  R1 = and_mask (Econet_Protection)
  297.    ;Exit
  298.    ;  R0 = old_protection (Econet_Protection)
  299.  
  300. XEconet_ReadStationNumber       *       &6000F
  301. Econet_ReadStationNumber        *       &4000F
  302.    ;Entry
  303.    ;  R1 -> s (String)
  304.    ;Exit
  305.    ;  R1 -> end (Char)
  306.    ;  R2 = station (Int)
  307.    ;  R3 = net (Int)
  308.  
  309. XEconet_PrintBanner             *       &60010
  310. Econet_PrintBanner              *       &40010
  311.  
  312. XEconet_ReadTransportType       *       &60011
  313. Econet_ReadTransportType        *       &40011
  314.    ;Entry
  315.    ;  R0 = station (Byte)
  316.    ;  R1 = net (Byte)
  317.    ;  R2 = &2
  318.    ;Exit
  319.    ;  R2 = transport_type (Econet_TransportType)
  320.  
  321. XEconet_ReleasePort             *       &60012
  322. Econet_ReleasePort              *       &40012
  323.    ;Entry
  324.    ;  R0 = port (Byte)
  325.  
  326. XEconet_AllocatePort            *       &60013
  327. Econet_AllocatePort             *       &40013
  328.    ;Exit
  329.    ;  R0 = port (Byte)
  330.  
  331. XEconet_DeAllocatePort          *       &60014
  332. Econet_DeAllocatePort           *       &40014
  333.    ;Entry
  334.    ;  R0 = port (Byte)
  335.  
  336. XEconet_ClaimPort               *       &60015
  337. Econet_ClaimPort                *       &40015
  338.    ;Entry
  339.    ;  R0 = port (Byte)
  340.  
  341. XEconet_StartImmediate          *       &60016
  342. Econet_StartImmediate           *       &40016
  343.    ;Entry
  344.    ;  R0 = op_type (Econet_ImmediateOp)
  345.    ;  R1 = procedure (Econet_ImmediateOSProcedure)
  346.    ;  R2 = station (Byte)
  347.    ;  R3 = net (Byte)
  348.    ;  R4 = buffer (pointer to data)
  349.    ;  R5 = size (Int)
  350.    ;  R6 = count (Int)
  351.    ;  R7 = delay (Int)
  352.    ;Exit
  353.    ;  R0 = tx_cb (Econet_TxCB)
  354.    ;  R1 corrupted
  355.    ;  R2 corrupted
  356.    ;  R3 corrupted
  357.    ;  R4 = nonlocal (Bool)
  358.  
  359. XEconet_DoImmediate             *       &60017
  360. Econet_DoImmediate              *       &40017
  361.    ;Entry
  362.    ;  R0 = op_type (Econet_ImmediateOp)
  363.    ;  R1 = procedure (Econet_ImmediateOSProcedure)
  364.    ;  R2 = station (Byte)
  365.    ;  R3 = net (Byte)
  366.    ;  R4 = buffer (pointer to data)
  367.    ;  R5 = size (Int)
  368.    ;  R6 = count (Int)
  369.    ;  R7 = delay (Int)
  370.    ;Exit
  371.    ;  R0 = status (Econet_Status)
  372.    ;  R1 corrupted
  373.    ;  R2 corrupted
  374.    ;  R3 corrupted
  375.    ;  R4 = nonlocal (Bool)
  376.  
  377. XEconet_AbandonAndReadReceive   *       &60018
  378. Econet_AbandonAndReadReceive    *       &40018
  379.    ;Entry
  380.    ;  R0 = rx_cb (Econet_RxCB)
  381.    ;Exit
  382.    ;  R0 = status (Econet_Status)
  383.    ;  R1 = flag (Byte)
  384.    ;  R2 = port (Byte)
  385.    ;  R3 = station (Byte)
  386.    ;  R4 = net (Byte)
  387.    ;  R5 = buffer (pointer to data)
  388.    ;  R6 = size (Int)
  389.  
  390. XEconet_Version                 *       &60019
  391. Econet_Version                  *       &40019
  392.    ;Entry
  393.    ;  R0 = station (Byte)
  394.    ;  R1 = net (Byte)
  395.    ;Exit
  396.    ;  R2 = version (Int)
  397.  
  398. XEconet_NetworkState            *       &6001A
  399. Econet_NetworkState             *       &4001A
  400.    ;Entry
  401.    ;  R0 = station (Byte)
  402.    ;  R1 = net (Byte)
  403.    ;Exit
  404.    ;  R2 = state (Econet_State)
  405.  
  406. XEconet_PacketSize              *       &6001B
  407. Econet_PacketSize               *       &4001B
  408.    ;Entry
  409.    ;  R0 = station (Byte)
  410.    ;  R1 = net (Byte)
  411.    ;Exit
  412.    ;  R2 = packet_limit (Int)
  413.  
  414. XEconet_ReadTransportName       *       &6001C
  415. Econet_ReadTransportName        *       &4001C
  416.    ;Entry
  417.    ;  R0 = station (Byte)
  418.    ;  R1 = net (Byte)
  419.    ;Exit
  420.    ;  R2 -> transport_name (String)
  421.  
  422. XEconet_InetRxDirect            *       &6001D
  423. Econet_InetRxDirect             *       &4001D
  424.  
  425. XEconet_EnumerateMap            *       &6001E
  426. Econet_EnumerateMap             *       &4001E
  427.    ;Entry
  428.    ;  R0 = flags (Econet_MapFlags)
  429.    ;  R4 = context (Int)
  430.    ;Exit
  431.    ;  R1 = net (Byte)
  432.    ;  R2 -> net_name (String)
  433.    ;  R3 = ip_subnetwork_address (Int)
  434.    ;  R4 = context_out (Int)
  435.  
  436. XEconet_EnumerateTransmit       *       &6001F
  437. Econet_EnumerateTransmit        *       &4001F
  438.    ;Entry
  439.    ;  R0 = tx_cb_no (Int)
  440.    ;Exit
  441.    ;  R0 = tx_cb (Econet_TxCB)
  442.  
  443. XEconet_HardwareAddresses       *       &60020
  444. Econet_HardwareAddresses        *       &40020
  445.    ;Exit
  446.    ;  R0 = hardware_address (pointer to data)
  447.    ;  R1 = register_address (pointer to data)
  448.    ;  R2 = register_mask (Bits)
  449.  
  450. XEconet_NetworkParameters       *       &60021
  451. Econet_NetworkParameters        *       &40021
  452.    ;Exit
  453.    ;  R0 = period (Int)
  454.    ;  R1 = frequency (Int)
  455.    ;  R2 corrupted
  456.    ;  R3 corrupted
  457.  
  458. EconetV                         *       &21
  459.    ;Entry
  460.    ;  R0 = action (Econet_Action)
  461.    ;  R1 = count (Int)
  462.    ;  R9 = &21
  463.  
  464. Service_ReallocatePorts         *       &48
  465.    ;Entry
  466.    ;  R1 = &48
  467.  
  468. Service_EconetDying             *       &56
  469.    ;Entry
  470.    ;  R1 = &56
  471.  
  472. Service_ProtocolDying           *       &83
  473.    ;Entry
  474.    ;  R1 = &83
  475.  
  476. Service_FindNetworkDriver       *       &84
  477.    ;Entry
  478.    ;  R1 = &84
  479.  
  480. Service_NetworkDriverStatus     *       &8B
  481.    ;Entry
  482.    ;  R1 = &8B
  483.  
  484. Event_EconetUserRPC             *       &8
  485.    ;Entry
  486.    ;  R0 = &8
  487.    ;  R1 -> args (data)
  488.    ;  R2 = procedure (Econet_ImmediateOSProcedure)
  489.    ;  R3 = station (Byte)
  490.    ;  R4 = net (Byte)
  491.  
  492. Event_EconetRx                  *       &E
  493.    ;Entry
  494.    ;  R0 = &E
  495.    ;  R1 = rx_cb (Econet_RxCB)
  496.    ;  R2 = status (Econet_Status)
  497.  
  498. Event_EconetTx                  *       &F
  499.    ;Entry
  500.    ;  R0 = &F
  501.    ;  R1 = tx_cb (Econet_TxCB)
  502.    ;  R2 = status (Econet_Status)
  503.  
  504. Event_EconetOSProc              *       &10
  505.    ;Entry
  506.    ;  R0 = &10
  507.    ;  R1 -> args (data)
  508.    ;  R2 = procedure (Econet_ImmediateOSProcedure)
  509.    ;  R3 = station (Byte)
  510.    ;  R4 = net (Byte)
  511.  
  512.         ]
  513.         END
  514.