home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
modcomp
/
sendsw.
< prev
next >
Wrap
Text File
|
1987-01-25
|
6KB
|
188 lines
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