INTEGER FUNCTION SENDSW (X) C C **************************************************************** C C KERMIT for the MODCOMP MAXIV operating system C C Compliments of: C C SETPOINT, Inc. C 10245 Brecksville Rd. C Brecksville, Ohio 44141 C C C KERMIT is a copyrighted protocol of Columbia Univ. The authors C of this version hereby grant permission to copy this software C provided that it is not used for an explicitly commercial C purpose and that proper credit be given. SETPOINT, Inc. makes C no warranty whatsoever regarding the accuracy of this package C and will assume no liability resulting from it's use. C C **************************************************************** C C Abstract: Send a file or group of files to a remote Kermit C C MODIFICATION HISTORY C C BY DATE REASON PROGRAMS AFFECTED C C **************************************************************** C C Author: Rick Burke Version: A.0 Date: Sep-86 C C Calling Parameters: C C R X - Dummy argument requred by functions C C **************************************************************** C C Messages generated by this module : None C C **************************************************************** C C Subroutines called directly : SBREAK, SDATA, SEOF, SFILE, C SINIT, SPACK C C **************************************************************** C C Files referenced : None C C **************************************************************** C C Local variable definitions : C C STATUS - Flag to indicate that all work is done C TV1 - Packet type for SPACK call C TV2 - Packet number for SPACK call C TV3 - Packet Length for SPACK call C TV4 - Data for packet to be sent to remote Kermit C C **************************************************************** C C Commons referenced : KER, KERPAR, and XBYTE local commons C C **************************************************************** C C (*$END.DOCUMENT*) C C **************************************************************** C * * C * D I M E N S I O N S T A T E M E N T S * C * * C **************************************************************** C IMPLICIT INTEGER (A-Z) C C **************************************************************** C * * C * T Y P E S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C * * C * C O M M O N S T A T E M E N T S * C * * C **************************************************************** C INCLUDE USL/KERCOM C INCLUDE USL/KERPMC C COMMON /XBYTE/ XNEW,XCOUNT,XLIN(132),XEOF C C **************************************************************** C * * C * E Q U I V A L E N C E S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C * * C * D A T A S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C C Code starts here : C STATE = BIGS XNEW = YES XCOUNT = 1 XEOF = NO N = 0 NUMTRY = 0 STATUS = YES C C-----> Loop to send a packet, until STATUS <> YES. C 10 CONTINUE IF (STATUS .NE. YES) RETURN C C-----> Is this a data packet? C IF (STATE .NE. BIGD) GO TO 20 STATE = SDATA (X) GO TO 10 C C-----> Is this a file header packet? C 20 CONTINUE IF (STATE .NE. BIGF) GO TO 30 STATE = SFILE (X) GO TO 10 30 CONTINUE C C-----> Is this an EOF header packet? C IF (STATE .NE. BIGZ) GO TO 40 STATE = SEOF (X) GO TO 10 40 CONTINUE C C-----> Is this an initialization packet? C IF (STATE .NE. BIGS) GO TO 50 STATE = SINIT (X) GO TO 10 50 CONTINUE C C-----> Is this a BREAK packet? C IF (STATE .NE. BIGB) GO TO 60 STATE = SBREAK (X) GO TO 10 60 CONTINUE C C-----> Is the transfer complete? C IF (STATE .NE. BIGC) GO TO 70 SENDSW = YES RETURN 70 CONTINUE C C-----> Did the file transfer fail? C IF (STATE .NE. BIGA) GO TO 80 SENDSW = NO TV1 = BIGE TV2 = N TV3 = 0 TV4 = 0 C C-----> Send an error packet. C CALL SPACK (TV1,TV2,TV3,TV4) RETURN 80 CONTINUE C C-----> Unknown STATE, signal file transfer failure. C SENDSW = NO RETURN END