 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
;
 ^ 0 ; Values for Status returns

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  

 ^ 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

; 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


SWIClass SETS "Econet"
 ^ Module_SWISystemBase + EconetSWI * Module_SWIChunkSize

 AddSWI CreateReceive
 AddSWI ExamineReceive
 AddSWI ReadReceive 
 AddSWI AbandonReceive
 AddSWI WaitForReception
 AddSWI EnumerateReceive 
 AddSWI StartTransmit
 AddSWI PollTransmit
 AddSWI AbandonTransmit
 AddSWI DoTransmit
 AddSWI ReadLocalStationAndNet
 AddSWI ConvertStatusToString
 AddSWI ConvertStatusToError
 AddSWI ReadProtection
 AddSWI SetProtection
 AddSWI ReadStationNumber
 AddSWI PrintBanner
 AddSWI 
 AddSWI ReleasePort
 AddSWI AllocatePort
 AddSWI DeAllocatePort
 AddSWI ClaimPort
 AddSWI StartImmediate
 AddSWI DoImmediate

EconetSWICheckValue * @

SWIClass SETS "NetFS"
 ^ Module_SWISystemBase + NetFSSWI * Module_SWIChunkSize

 AddSWI ReadFSNumber
 AddSWI SetFSNumber
 AddSWI ReadFSName
 AddSWI SetFSName
 AddSWI ReadCurrentContext
 AddSWI SetCurrentContext
 AddSWI ReadFSTimeouts
 AddSWI SetFSTimeouts
 AddSWI DoFSOp

 AddSWI EnumerateFSList
 AddSWI EnumerateFS
 AddSWI ConvertDate
 AddSWI DoFSOpToGivenFS

NetFSSWICheckValue * @

SWIClass SETS "NetPrint"
 ^ Module_SWISystemBase + NetPrintSWI * Module_SWIChunkSize

 AddSWI ReadPSNumber
 AddSWI SetPSNumber
 AddSWI ReadPSName
 AddSWI SetPSName
 AddSWI ReadPSTimeouts
 AddSWI SetPSTimeouts

NetPrintSWICheckValue * @

SWIClass SETS "NetMonitor"
 ^ Module_SWIApplicationBase + NetMonitorSWI * Module_SWIChunkSize

 AddSWI PrintChar
 AddSWI DefineTask
 AddSWI AbandonTask
 AddSWI ConvertFont
 AddSWI UseFont
 AddSWI RestoreFont

NetMonitorSWICheckValue * @

 OPT OldOpt

 END
