; This source code in this file is licensed to You by Castle Technology
; Limited ("Castle") and its licensors on contractual terms and conditions
; ("Licence") which entitle you freely to modify and/or to distribute this
; source code subject to Your compliance with the terms of the Licence.
;
; This source code has been made available to You without any warranties
; whatsoever. Consequently, Your use, modification and distribution of this
; source code is entirely at Your own risk and neither Castle, its licensors
; nor any other person who has contributed to this source code shall be
; liable to You for any loss or damage which You may suffer as a result of
; Your use, modification or distribution of this source code.
;
; Full details of Your rights and obligations are set out in the Licence.
; You should have received a copy of the Licence with this source code file.
; If You have not received a copy, the text of the Licence is available
; online at www.castle-technology.co.uk/riscosbaselicence.htm
;
SUBT Exported Econet constants ; => &.Hdr.Econet
OldOpt SETA {OPT}
OPT OptNoList+OptNoP1List
; ***********************************
; *** C h a n g e L i s t ***
; ***********************************
; Date Name Description
; ---- ---- -----------
; 01-Sep-87 BC Added NetPrint SWIs, and new SWIs to Econet, tidied stati
; 19-Oct-87 BC Added Port and Domain SWIs
; 02-Dec-87 BC Added Immediate ops
; 18-Dec-87 BC Added NetMonitor SWIs
; 23-Feb-88 BC Removed Domain SWIs, added ReleasePort
; 23-Feb-88 BC Changed PreAllocatePort to ClaimPort
; 14-Mar-88 BC Added EnumerateFSCache
; 08-Apr-88 BC Added EconetV stuff for progress
; 11-Apr-88 BC/IJ Changed Econet_StartTransmit to Econet_StartTransmission
; 27-Jun-88 BC Added ConvertDate (FS format (16bit) to OS format (40bit))
; 06-Jul-88 BC Added EnumerateFSList
; 11-Jul-88 BC Added DoFSOpToGivenFS
; 12-Jul-88 BC Changed SWI names and order
; 11-Aug-88 BC Fixed the export of OSRPC values
; 14-Nov-88 SKS Amended list for Econet_017
; 16-May-89 BC Changed ConvertDate to 40bit FS format
; 30-May-89 BC Added new SWI (NetFS_UpdateFSList)
; 10-Jun-89 BC Added new SWI (NetPrint_BindPSName)
; 12-Oct-89 BC Added new SWI (NetFS_EnumerateFSContexts)
; 12-Oct-89 BC Added new SWI (NetFS_ReadUserId)
; 12-Oct-89 BC Added constants for enumeration results
; 13-Oct-89 BC Added constants for protection bits
; 16-Oct-89 BC Added constants for file server operations
; 21-Nov-89 BC Added new SWI (NetFS_GetObjectUID)
; 19-Mar-90 BC Added allocation of Ports
; 21-Mar-90 BC Added more Ports
; 07-Aug-90 BC Added six new reason codes to the EconetVector for the Broadcast Loader
; 08-Aug-90 BC Added two ports for the Broadcast Loader
; 14-Aug-90 BC Added Port_DigitalServicesTapeStore
; 14-Aug-90 BC Added Port_ImpressionLicenceChecker
; 14-Aug-90 BC Added Port_DigitalServicesSquirrel
; 17-Sep-90 BC Added SWI NetFS_EnableCache
; 05-Dec-90 BC Added Port_SIDSecondary
; 24-Jan-91 BC Added two ports for CSD; &DC, and &DD
; 22-May-91 BC Added two new SWIs for NetPrint
; 22-May-91 BC Added symbols for printer server status values
; 19-Jun-91 BC Added Port_DigitalServicesSquirrel2
; 16-Jul-91 BC Added two ports for Oak Solutions &DE and &DF
; 31-Oct-91 BC Added MNS SWIs and the ReadTransportType SWI
; 14-Nov-91 BC Removed MNS SWIs
; 14-Nov-91 BC Added a table for Task numbers for Logon
; 14-Nov-91 BC Changed SWI Econet_ReadProtection to Econet_Hardware
; 11-Dec-91 BC Added TransportTypes
; 19-Feb-92 BC Added Transport_Nexus
; 19-Feb-92 BC Changed SWI Econet_Hardware to Econet_AbandonAndReadReceive
; 25-Feb-92 BC Added SWI Econet_Version
; 25-Feb-92 BC Added SWI Econet_NetworkState and associated values
; 30-Mar-92 BC Moved SWIs around after complaints, put ReadProtection back in
; 30-Mar-92 BC Added SWI Econet_PacketSize
; 31-Mar-92 BC Added SWI Econet_ReadTransportName
; 23-Apr-92 BC Added Constants for broadcasting
; 12-Nov-92 JAB Added 2 Econet Ports for Digital Services NetGain product &E0 &E1
; 10-Dec-92 amg Added 2 ports for Les Want's AppFS (&E2, &E3)
; 07-Jan-93 BC Added two ports for AtomWide (&E4, &E5)
; 07-Jan-93 BC Added a port for the Acorn Resource Locator (&9D)
; 08-Feb-93 JAB Added a port for Iota &E6
; 08-Mar-93 BC Added the new SWI Econet_EnumerateTransmit
; 21-May-93 JAB Added two ports for PEP Associates (&E7, &E8)
; 01-Jul-93 BC Added the new SWI Econet_HardwareAddresses
; 08-Sep-93 BC Added Port_ClassFS_Server for Oak Solutions
; 30-Sep-93 BC Reallocated ports &D3 and &DA to Ran's FastFS
; 05-Oct-93 KSR Added SWIs Econet_InetRxDirect and Econet_EnumerateMap for AUN
; 05-Oct-93 KSR Shuffled EnumerateTransmit and HardwareAddresses up to allow for above
; 25-May-94 BC Noted port allocations belonging to SJ (&A0 and &A1)
; 25-May-94 BC Added port allocation minimum and maximum values
; 31-May-94 BC Corrected SJ ports
; 01-Jun-94 BC Reallocated the DigiStore port from &54 to &EA
; 06-Jun-94 BC Added SWI Econet_NetworkParameters
; 09-Jun-94 BC Fix "values" bug at line 301
; 28-Jun-94 AMcC Changed to using the preferred SWI base and name symbols
; 02-Dec-94 BC Add a synonym for Port D0 (for SJs modifications to NetPrint)
^ 0 ; Values for Status returns from Econet calls
Status_Transmitted # 1 ; 0, Total completion OK
Status_LineJammed # 1 ; 1, Unable to start transmission due to CTS
Status_NetError # 1 ; 2, Four way handshake fails, or collision
Status_NotListening # 1 ; 3, No 'ScoutAck' is received
Status_NoClock # 1 ; 4
Status_TxReady # 1 ; 5, Waiting for a retry
Status_Transmitting # 1 ; 6
Status_RxReady # 1 ; 7
Status_Receiving # 1 ; 8
Status_Received # 1 ; 9
Status_NoReply # 1 ; 10, High level protocol reply fails
Status_Escape # 1 ; 11, Wait is ESCaped from
Status_NotPresent # 1 ; 12, Machine peek fails
Status_MaxValue * @ - 1
^ 1 ; Types of Immediate Operations
Econet_Peek # 1 ; 1, Copy memory from another machine
Econet_Poke # 1 ; 2, Copy memory to another machine
Econet_JSR # 1 ; 3, Cause JSR/BL on another machine
Econet_UserProcedureCall # 1 ; 4, Execute User remote procedure call
Econet_OSProcedureCall # 1 ; 5, Execute OS remote procedure call
Econet_Halt # 1 ; 6, Halt the remote machine
Econet_Continue # 1 ; 7, Continue the remote machine
Econet_MachinePeek # 1 ; 8, Machine peek of another machine
Econet_GetRegisters # 1 ; 9, Return registers from another machine
Econet_BroadcastCount * 5
Econet_BroadcastDelay * 5
; Protection mask bits
Econet_Prot_Peek * 1:SHL:0 ; 1, Copy memory from another machine
Econet_Prot_Poke * 1:SHL:1 ; 2, Copy memory to another machine
Econet_Prot_JSR * 1:SHL:2 ; 4, Cause JSR/BL on another machine
Econet_Prot_UserProcedureCall * 1:SHL:3 ; 8, Execute User remote procedure call
Econet_Prot_OSProcedureCall * 1:SHL:4 ; 16, Execute OS remote procedure call
Econet_Prot_Halt * 1:SHL:5 ; 32, Halt the remote machine
Econet_Prot_Continue * 1:SHL:6 ; 64, Continue the remote machine
Econet_Prot_MachinePeek * 1:SHL:7 ; 128, Machine peek of another machine
Econet_Prot_GetRegisters * 1:SHL:8 ; 256, Return registers from another machine
Econet_Prot_WriteThrough * 1:SHL:31; Write result to configuration memory
^ 0 ; OS Procedure numbers
Econet_OSCharacterFromNotify # 1 ; 0
Econet_OSInitialiseRemote # 1 ; 1
Econet_OSGetViewParameters # 1 ; 2
Econet_OSCauseFatalError # 1 ; 3
Econet_OSCharacterFromRemote # 1 ; 4
; Reason codes for the EconetVector
NetFS_StartLoad * &10 ; Size of transfer in R1
NetFS_PartLoad * &11 ; Data transfered in R1
NetFS_FinishLoad * &12
NetFS_StartSave * &20 ; Size of transfer in R1
NetFS_PartSave * &21 ; Data transfered in R1
NetFS_FinishSave * &22
NetFS_StartCreate * &30 ; Size of creation in R1
NetFS_PartCreate * &31 ; Size created so far in R1
NetFS_FinishCreate * &32
NetFS_StartGetBytes * &40 ; Size of transfer in R1
NetFS_PartGetBytes * &41 ; Data transfered in R1
NetFS_FinishGetBytes * &42
NetFS_StartPutBytes * &50 ; Size of transfer in R1
NetFS_PartPutBytes * &51 ; Data transfered in R1
NetFS_FinishPutBytes * &52
NetFS_StartWait * &60 ; Called at the start of a BroadcastWait
NetFS_FinishWait * &62 ; Called at the end of a BroadcastWait
NetFS_StartBroadcastLoad * &70 ; Size of transfer in R1
NetFS_PartBroadcastLoad * &71 ; Data transfered in R1
NetFS_FinishBroadcastLoad * &72
NetFS_StartBroadcastSave * &80 ; Size of transfer in R1
NetFS_PartBroadcastSave * &81 ; Data transfered in R1
NetFS_FinishBroadcastSave * &82
; Note that reason codes that start "NetFS_" can be used by NetPrint
; for the same reasons as NetFS.
Econet_StartTransmission * &C0 ; Called when we start to wait
; for a transmission to finish
Econet_FinishTransmission * &C2 ; Called when DoTransmit returns
Econet_StartReception * &D0 ; Called when we start to wait
; for a reception to complete
Econet_FinishReception * &D2 ; Called when WaitForReception returns
^ 0 ; Offsets in the result block of an enumeration
NetFS_Enumeration_Station # 1
NetFS_Enumeration_Network # 1
NetFS_Enumeration_DriveNumber # 1
NetFS_Enumeration_DiscName # 16
NetFS_Enumeration_DiscNameZero # 1
NetFS_Enumeration_SmallSize # 0
NetFS_Enumeration_UserId # 21
NetFS_Enumeration_UserIdEnd # 1
NetFS_Enumeration_Reserved # 2
NetFS_Enumeration_FullSize # 0
^ 0 ; File server function codes
FileServer_DecodeCommand # 1 ; 0
FileServer_SaveFile # 1 ; 1
FileServer_LoadFile # 1 ; 2
FileServer_Examine # 1 ; 3
FileServer_CatalogHeader # 1 ; 4
FileServer_LoadAsCommand # 1 ; 5
FileServer_Open # 1 ; 6
FileServer_Close # 1 ; 7
FileServer_GetByte # 1 ; 8
FileServer_PutByte # 1 ; 9
FileServer_GetBytes # 1 ; 10
FileServer_PutBytes # 1 ; 11
FileServer_ReadArguments # 1 ; 12
FileServer_SetArguments # 1 ; 13
FileServer_DiscName # 1 ; 14
FileServer_LoggedOnUsers # 1 ; 15
FileServer_ReadDateAndTime # 1 ; 16
FileServer_EndOfFileStatus # 1 ; 17
FileServer_ReadObjectInfo # 1 ; 18
FileServer_SetObjectAttributes # 1 ; 19
FileServer_DeleteObject # 1 ; 20
FileServer_ReadUserEnvironment # 1 ; 21
FileServer_SetLogOnOption # 1 ; 22
FileServer_LogOff # 1 ; 23
FileServer_UserInformation # 1 ; 24
FileServer_ReadServerVersion # 1 ; 25
FileServer_ReadDiscFreeSpace # 1 ; 26
FileServer_CreateDirectory # 1 ; 27
FileServer_SetDateAndTime # 1 ; 28
FileServer_CreateFile # 1 ; 29
FileServer_ReadUserFreeSpace # 1 ; 30
FileServer_SetUserFreeSpace # 1 ; 31
FileServer_ReadClientUserId # 1 ; 32
FileServer_LoggedOnUsersExt # 1 ; 33
FileServer_UserInformationExt # 1 ; 34
; Task numbers for task logons to FileStore etc.
^ 0
FSTask_Pathetic # 1 ; 0, Stupid old programs
FSTask_Squirrel # 1 ; 1, DSL's Squirrel database
FSTask_Manager # 1 ; 2, Acorn / OAK Solution's !Manager
FSTask_Spare # 5
FSTask_Clever # 8 ; 8..15, a better NetFS one day
FSTask_Max # 0
ASSERT FSTask_Max = 16
; Econet port allocations
Port_AllocationMinimum * &10
Port_DigitalServicesTapeStore * &54 ; Now (01-Jun-94) disused
Port_AllocationMaximum * &8F
Port_FileServerCommand * &99 ; Used by NetFS to command the server
Port_Bridge * &9C ; Used to interrogate the bridge
Port_ResourceLocator * &9D ; Used by Acorn's ResourceLocator
Port_PrinterServerInquiryReply * &9E ; All replies to Enquiries on this port
Port_PrinterServerInquiry * &9F ; Used for status inquiry
Port_SJServerUtilityMode * &A0 ; Used by the 'Fast' protocol
; &A1 to &AE notionally allocated to SJ
Port_SJVirtualEconet * &AF ; Net startup reply port
Port_FindServer * &B0 ; Broadcast the server's name
Port_FindServerReply * &B1 ; Server's reply
Port_TeletextServerCommand * &B2 ;
Port_TeletextServerPage * &B3 ;
Port_OldPrinterServerData * &D0 ; Supported by the BBC PS ROM
Port_PrinterServerDataReply * &D0 ; SJ's updated protocol
Port_PrinterServerData * &D1 ; Used by block oriented protocols
Port_TCPIPProtocolSuite * &D2 ; Marks all traffic
Port_FastFS_Control * &D3 ; Acorn's FastFS (RMokady)
Port_Scrollarama * &D4 ; Scrolling message system (PColmer)
Port_Phone * &D5 ; Interactive message system (RMokady)
Port_BroadcastControl * &D6 ; Acorn/DSL Broadcst Loader
Port_BroadcastData * &D7 ; Acorn/DSL Broadcst Loader
Port_ImpressionLicenceChecker * &D8 ; Computer Concepts network site licence
Port_DigitalServicesSquirrel * &D9
Port_FastFS_Data * &DA ; Acorn's FastFS (RMokady)
Port_DigitalServicesSquirrel2 * &DB
Port_DataDistributionControl * &DC ; Cambridge Systems Design
Port_DataDistributionData * &DD ; Cambridge Systems Design
Port_ClassROM * &DE ; Oak Solutions
Port_PrinterSpoolerCommand * &DF ; Oak Solutions
Port_DigitalServicesNetGain1 * &E0 ; David Faulkner, Digital Services
Port_DigitalServicesNetGain2 * &E1 ; David Faulkner, Digital Services
Port_AppFS1 * &E2 ; Les Want, AppFS
Port_AppFS2 * &E3 ; Les Want, AppFS
Port_AtomWideFaxNet * &E4 ; Martin Coulson / Chris Ross
Port_AtomWidePrintNet * &E5 ; Martin Coulson / Chris Ross
Port_IotaDataPower * &E6 ; Neil Raine, Iota
Port_CDNetServerBroadcast * &E7 ; Ellis Hall, PEP Associates
Port_CDNetServerReplies * &E8 ; Ellis Hall, PEP Associates
Port_ClassFS_Server * &E9 ; Oak Solutions
Port_DigitalServicesTapeStore2 * &EA ; New allocation to replace &54
Port_DeveloperSupport * &EB ; Mark/Jon communication port
Port_LLS_Net * &EC ; Longman Logotron S-Net server
; Current allocations here up to &EF
; Then go back to &B4 to &CF
^ 0 ; Values for Status returns from NetPrint_ListServers
Status_Ready # 1 ; 0, Printer is ready
Status_Busy # 1 ; 1, Printer is working for someone else
Status_Jammed # 1 ; 2, Printer isn't working for anybody
Status_PrinterServerVoid # 3
Status_OffLine # 1 ; 6, Printer has been switched off
Status_AlreadyOpen # 1 ; 7, This station is already using the printer
^ 0 ; Values for TransportType returned by ReadTransportType
Transport_Unknown # 1 ; 0
Transport_IP # 1 ; 1, Known to be using IP protocols
Transport_Econet # 1 ; 2, Known to be using actual Econet
Transport_Nexus # 1 ; 3, Using SJ's Nexus Network
Transport_ClassNet # 1 ; 4, Oak Solutions
Transport_MaxKnown # 0 ; 5, Used to test return values
^ 0 ; Values returned from SWI Econet_NetworkState
Econet_State_OK # 1 ; 0, Everything is OK
Econet_State_NoClock # 1 ; 1, There is no clock on the network
SWIClass SETS EconetSWI_Name
^ EconetSWI_Base
AddSWI CreateReceive ; 40000
AddSWI ExamineReceive ; 40001
AddSWI ReadReceive ; 40002
AddSWI AbandonReceive ; 40003
AddSWI WaitForReception ; 40004
AddSWI EnumerateReceive ; 40005
AddSWI StartTransmit ; 40006
AddSWI PollTransmit ; 40007
AddSWI AbandonTransmit ; 40008
AddSWI DoTransmit ; 40009
AddSWI ReadLocalStationAndNet ; 4000A
AddSWI ConvertStatusToString ; 4000B
AddSWI ConvertStatusToError ; 4000C
AddSWI ReadProtection ; 4000D
AddSWI SetProtection ; 4000E
AddSWI ReadStationNumber ; 4000F
AddSWI PrintBanner ; 40010
AddSWI ReadTransportType ; 40011
AddSWI ReleasePort ; 40012
AddSWI AllocatePort ; 40013
AddSWI DeAllocatePort ; 40014
AddSWI ClaimPort ; 40015
AddSWI StartImmediate ; 40016
AddSWI DoImmediate ; 40017
AddSWI AbandonAndReadReceive ; 40018
AddSWI Version ; 40019
AddSWI NetworkState ; 4001A
AddSWI PacketSize ; 4001B
AddSWI ReadTransportName ; 4001C
AddSWI InetRxDirect ; 4001D
AddSWI EnumerateMap ; 4001E
AddSWI EnumerateTransmit ; 4001F
AddSWI HardwareAddresses ; 40020
AddSWI NetworkParameters ; 40021
EconetSWICheckValue * @
SWIClass SETS NetFSSWI_Name
^ NetFSSWI_Base
AddSWI ReadFSNumber ; 40040
AddSWI SetFSNumber ; 40041
AddSWI ReadFSName ; 40042
AddSWI SetFSName ; 40043
AddSWI ReadCurrentContext ; 40044
AddSWI SetCurrentContext ; 40045
AddSWI ReadFSTimeouts ; 40046
AddSWI SetFSTimeouts ; 40047
AddSWI DoFSOp ; 40048
AddSWI EnumerateFSList ; 40049
AddSWI EnumerateFS ; 4004A
AddSWI ConvertDate ; 4004B
AddSWI DoFSOpToGivenFS ; 4004C
AddSWI UpdateFSList ; 4004D
AddSWI EnumerateFSContexts ; 4004E
AddSWI ReadUserId ; 4004F
AddSWI GetObjectUID ; 40050
AddSWI EnableCache ; 40051
NetFSSWICheckValue * @
SWIClass SETS NetPrintSWI_Name
^ NetPrintSWI_Base
AddSWI ReadPSNumber ; 40200
AddSWI SetPSNumber ; 40201
AddSWI ReadPSName ; 40202
AddSWI SetPSName ; 40203
AddSWI ReadPSTimeouts ; 40204
AddSWI SetPSTimeouts ; 40205
AddSWI BindPSName ; 40206
AddSWI ListServers ; 40207
AddSWI ConvertStatusToString ; 40208
NetPrintSWICheckValue * @
SWIClass SETS NetMonitorSWI_Name
^ NetMonitorSWI_Base
AddSWI PrintChar ; 80040
AddSWI DefineTask ; 80041
AddSWI AbandonTask ; 80042
AddSWI ConvertFont ; 80043
AddSWI UseFont ; 80044
AddSWI RestoreFont ; 80045
AddSWI StartWithCurrentFont ; 80046
AddSWI StartWithInternalFont ; 80047
NetMonitorSWICheckValue * @
OPT OldOpt
END