.MCALL .MODULE .MODULE IRCVDF,05,COMMENT=,IDENT=NO,LIB=YES,GLOBAL=.RCVDF ; Copyright (c) 1998 by Mentec, Inc., Nashua, NH. ; All rights reserved ; ; This software is furnished under a license for use only on a ; single computer system and may be copied only with the ; inclusion of the above copyright notice. This software, or ; any other copies thereof, may not be provided or otherwise ; made available to any other person except for use on such ; system and to one who agrees to these license terms. Title ; to and ownership of the software shall at all times remain ; in Mentec, Inc. ; ; The information in this document is subject to change without ; notice and should not be construed as a commitment by Digital ; Equipment Corporation, or Mentec, Inc. ; ; Digital and Mentec assume no responsibility for the use or ; reliability of its software on equipment which is not supplied ; by Digital or Mentec, and listed in the Software Product ; Description. .SBTTL Module Declarations .NLIST .ENABL LC .DSABL GBL .NLIST CND .LIST ; FACILITY: ; ; RT-11 System Subroutine Library (SYSLIB) ; ; CALLABLE ENTRIES: ; ; IRCVDF ; ; ENVIRONMENT: ; ; This routines can be used by any job running in a multi-job ; environment. It uses "TRAP" to provide error processing. ; ; INCLUDE FILES: ; ; SYSMAC.SML ; RT-11 system macro library. ; ; EXTERNAL REFERENCES: ; .GLOBL $SYSLB ; Include system library work area. .GLOBL $CMPLT ; Entry point to set-up linkage to a Fortran ; completion routine. .GLOBL $RCVD ; Entry point IRCVD common code .GLOBL $NOARG ; Missing argument code .WEAK $MSARG ; Trap code for missing argument .SBTTL IRCVDF - Fortran-callable Routines ; ++ ; FUNCTIONAL DESCRIPTION: ; ; IRCVDF - receives data and enters a FORTRAN completion ; routine when message is received ; ; CALLING SEQUENCE: ; ; ; I = IRCVDF ( buf, wcnt, area, crtn ) ; ; ; INPUT PARAMETERS: ; ; R5 - address of arguments block ; 0(R5) - argument count of IRCVDF ; 2(R5) - address of the array to be used to buffer the data received ; 4(R5) - address of the maximum integer number of words that can be received ; 6(R5) - address of the four-word area to be set aside for link ; information ; 10(R5) - address of the IRCVDF FORTRAN completion routine to be entered ; ; ; OUTPUT PARAMETERS: ; ; R0 - status of transfer function ; ; ROUTINE VALUE: ; ; 0 normal return ; 1 no other job exists in the system ; ; -- .PSECT SYS$I,I RCVDF:: IRCVDF:: CMPB #4,@R5 ; all arg present ? BNE 10$ ; no, then err ADD #6,R5 ; R5 -> addr of iarea CMP #$NOARG,@R5 ; missing AREA ? BEQ 10$ ; yes, then err CMP #$NOARG,2(R5) ; missing CRTN ? BEQ 10$ ; yes, then err MOV (R5)+,R1 ; R1 -> area MOV R1,-(SP) ; set cmplt. rtn. addr CALL $CMPLT ; set up linkage area MOV (SP)+,R1 ; R1 points to cmplt rtn SUB #10,R5 ; back to beginning of args CALLR $RCVD ; go issue .rcvdc 10$: TRAP $MSARG ; handle any missing arguments in call; RETURN .END