VRECVE Routine to receive packets via SEND/RECEIVE or SEND/RECEIVE BY REFERENCE NOTE: Reference packets have prioraty over normal packets In order to use the routine specify the following in the TKB commandfile: - GBLPAT=modulename:$RREF:0 If no Receive by reference packets are used Only if receive by reference is wanted (patch above is not done) specify: - GBLPAT=modulename:$VRAPR:n To specify APR to be used for mapping (default APR 7 is used) - WNDWS=1 Window when not already spec. - WNDWS=n+1 Extra window when already spec. Fortran CALL VRECVE(BUFFER,IBUFL,[PARM],[ITMO],[IDTLEN],[TSKNAM],IDS) BUFFER = Buffer that receives data IBFLEN = Length of buffer PARM = Parameter word ITMO = Time-out count in seconds. Routine returns to caller when stop option is chosen (VR.STP) and no data is received within the specified time IDTLEN = Integer to receive the actual received bytecount TSKNAM = 4 byte variable (or Real*4) to receive RAD50 sender taskname IDS = Integer to receive the directive status word Macro MOV #BUFFER,R1 ; Buffer that receives data MOV #BUFLEN,R2 ; Length of buffer MOV #,R3; Parameters MOV #TMO,R4 ; Time-out count in seconds ; Routine returns to caller when stop ; option is chosen (VR.STP) and no ; data is received within the ; specified time CALL $VRECVE R1 = Bufferaddress R2 = Contains the actual received bytecount $SENTS = 2 word RAD50 sender taskname $DSW = Status code carry bit set = Error Other registers are preserved Parameters: VR.STP 1 : Receive data or stop (AST processing) VR.EXT 2 : Receive data or exit VR.RET 4 : Receive data or return VR.NOR 10 : Receive normal data VR.REF 20 : Receive reference data VR.ALL 30 : Receive all data Default VR.STP!VR.ALL Errors : IS.SUC -- Succesful operation IE.RBS -- Receivebuffer too small IE.ITS -- No data queued IE.WOV -- Address window overflow (no extrawindow specified) IE.ALG -- Invallid APR