home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / modcomp / sendsw. < prev    next >
Text File  |  2020-01-01  |  6KB  |  188 lines

  1.       INTEGER FUNCTION SENDSW (X)
  2. C
  3. C     ****************************************************************
  4. C
  5. C              KERMIT for the MODCOMP MAXIV operating system
  6. C
  7. C        Compliments of:
  8. C
  9. C                         SETPOINT, Inc.
  10. C                      10245 Brecksville Rd.
  11. C                      Brecksville, Ohio 44141
  12. C
  13. C
  14. C      KERMIT is a copyrighted protocol of Columbia Univ. The authors
  15. C      of this version hereby grant permission to copy this software
  16. C      provided that it is not used for an explicitly commercial
  17. C      purpose and that proper credit be given. SETPOINT, Inc. makes
  18. C      no warranty whatsoever regarding the accuracy of this package
  19. C      and will assume no liability resulting from it's use.
  20. C
  21. C     ****************************************************************
  22. C
  23. C     Abstract: Send a file or group of files to a remote Kermit
  24. C
  25. C     MODIFICATION HISTORY
  26. C
  27. C     BY            DATE     REASON            PROGRAMS AFFECTED
  28. C
  29. C     ****************************************************************
  30. C
  31. C     Author:  Rick Burke           Version: A.0    Date: Sep-86
  32. C
  33. C     Calling Parameters:
  34. C
  35. C     R    X            - Dummy argument requred by functions
  36. C
  37. C     ****************************************************************
  38. C
  39. C     Messages generated by this module :  None
  40. C
  41. C     ****************************************************************
  42. C
  43. C     Subroutines called directly :  SBREAK, SDATA, SEOF, SFILE,
  44. C                                    SINIT, SPACK
  45. C
  46. C     ****************************************************************
  47. C
  48. C     Files referenced :  None
  49. C
  50. C     ****************************************************************
  51. C
  52. C     Local variable definitions :
  53. C
  54. C     STATUS       - Flag to indicate that all work is done
  55. C     TV1          - Packet type for SPACK call
  56. C     TV2          - Packet number for SPACK call
  57. C     TV3          - Packet Length for SPACK call
  58. C     TV4          - Data for packet to be sent to remote Kermit
  59. C
  60. C     ****************************************************************
  61. C
  62. C     Commons referenced :  KER, KERPAR, and XBYTE local commons
  63. C
  64. C     ****************************************************************
  65. C
  66. C     (*$END.DOCUMENT*)
  67. C
  68. C     ****************************************************************
  69. C     *                                                              *
  70. C     *         D I M E N S I O N   S T A T E M E N T S              *
  71. C     *                                                              *
  72. C     ****************************************************************
  73. C
  74.       IMPLICIT INTEGER (A-Z)
  75. C
  76. C     ****************************************************************
  77. C     *                                                              *
  78. C     *         T Y P E   S T A T E M E N T S                        *
  79. C     *                                                              *
  80. C     ****************************************************************
  81. C
  82. C
  83. C     ****************************************************************
  84. C     *                                                              *
  85. C     *         C O M M O N   S T A T E M E N T S                    *
  86. C     *                                                              *
  87. C     ****************************************************************
  88. C
  89.       INCLUDE USL/KERCOM
  90. C
  91.       INCLUDE USL/KERPMC
  92. C
  93.       COMMON /XBYTE/ XNEW,XCOUNT,XLIN(132),XEOF
  94. C
  95. C     ****************************************************************
  96. C     *                                                              *
  97. C     *         E Q U I V A L E N C E   S T A T E M E N T S          *
  98. C     *                                                              *
  99. C     ****************************************************************
  100. C
  101. C
  102. C     ****************************************************************
  103. C     *                                                              *
  104. C     *         D A T A   S T A T E M E N T S                        *
  105. C     *                                                              *
  106. C     ****************************************************************
  107. C
  108. C
  109. C     ****************************************************************
  110. C
  111. C     Code starts here :
  112. C
  113.       STATE = BIGS
  114.       XNEW = YES
  115.       XCOUNT = 1
  116.       XEOF = NO
  117.       N = 0
  118.       NUMTRY = 0
  119.       STATUS = YES
  120. C
  121. C----->  Loop to send a packet, until STATUS <> YES.
  122. C
  123.    10 CONTINUE
  124.       IF (STATUS .NE. YES) RETURN
  125. C
  126. C-----> Is this a data packet?
  127. C
  128.       IF (STATE .NE. BIGD) GO TO 20
  129.       STATE = SDATA (X)
  130.       GO TO 10
  131. C
  132. C----->  Is this a file header packet?
  133. C
  134.    20 CONTINUE
  135.       IF (STATE .NE. BIGF) GO TO 30
  136.       STATE = SFILE (X)
  137.       GO TO 10
  138.    30 CONTINUE
  139. C
  140. C----->  Is this an EOF header packet?
  141. C
  142.       IF (STATE .NE. BIGZ) GO TO 40
  143.       STATE = SEOF (X)
  144.       GO TO 10
  145.    40 CONTINUE
  146. C
  147. C----->  Is this an initialization packet?
  148. C
  149.       IF (STATE .NE. BIGS) GO TO 50
  150.       STATE = SINIT (X)
  151.       GO TO 10
  152.    50 CONTINUE
  153. C
  154. C----->  Is this a BREAK packet?
  155. C
  156.       IF (STATE .NE. BIGB) GO TO 60
  157.       STATE = SBREAK (X)
  158.       GO TO 10
  159.    60 CONTINUE
  160. C
  161. C----->  Is the transfer complete?
  162. C
  163.       IF (STATE .NE. BIGC) GO TO 70
  164.       SENDSW = YES
  165.       RETURN
  166.    70 CONTINUE
  167. C
  168. C----->  Did the file transfer fail?
  169. C
  170.       IF (STATE .NE. BIGA) GO TO 80
  171.       SENDSW = NO
  172.       TV1 = BIGE
  173.       TV2 = N
  174.       TV3 = 0
  175.       TV4 = 0
  176. C
  177. C----->  Send an error packet.
  178. C
  179.       CALL SPACK (TV1,TV2,TV3,TV4)
  180.       RETURN
  181.    80 CONTINUE
  182. C
  183. C----->  Unknown STATE, signal file transfer failure.
  184. C
  185.       SENDSW = NO
  186.       RETURN
  187.       END
  188.