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

  1.       INTEGER FUNCTION SBREAK (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 BREAK packet to signify the end of
  24. C                transmissions
  25. C
  26. C     MODIFICATION HISTORY
  27. C
  28. C     BY            DATE     REASON            PROGRAMS AFFECTED
  29. C
  30. C     ****************************************************************
  31. C
  32. C     Author:  Rick Burke           Version:  A.0   Date: Sep-86
  33. C
  34. C     Calling Parameters:
  35. C
  36. C     R    X            - Dummy argument required by FORTRAN
  37. C
  38. C     ****************************************************************
  39. C
  40. C     Messages generated by this module :  None
  41. C
  42. C     ****************************************************************
  43. C
  44. C     Subroutines called directly : MOD, RPACK, 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     LEN          - Length of response packet
  55. C     NUM          - Packet number of response
  56. C     STATUS       - Status of response packet
  57. C     TV1          - Temporary variable
  58. C     TV2          - Temporary variable
  59. C     TV3          - Temporary variable
  60. C
  61. C     ****************************************************************
  62. C
  63. C     Commons referenced :  None
  64. C
  65. C     ****************************************************************
  66. C
  67. C     (*$END.DOCUMENT*)
  68. C
  69. C     ****************************************************************
  70. C     *                                                              *
  71. C     *         D I M E N S I O N   S T A T E M E N T S              *
  72. C     *                                                              *
  73. C     ****************************************************************
  74. C
  75.       IMPLICIT INTEGER (A-Z)
  76. C
  77. C     ****************************************************************
  78. C     *                                                              *
  79. C     *         T Y P E   S T A T E M E N T S                        *
  80. C     *                                                              *
  81. C     ****************************************************************
  82. C
  83. C
  84. C     ****************************************************************
  85. C     *                                                              *
  86. C     *         C O M M O N   S T A T E M E N T S                    *
  87. C     *                                                              *
  88. C     ****************************************************************
  89. C
  90.       INCLUDE USL/UFTTBC
  91.       INCLUDE USL/KERCOM
  92.       INCLUDE USL/KERPMC
  93. C
  94. C     ****************************************************************
  95. C     *                                                              *
  96. C     *         E Q U I V A L E N C E   S T A T E M E N T S          *
  97. C     *                                                              *
  98. C     ****************************************************************
  99. C
  100. C
  101. C     ****************************************************************
  102. C     *                                                              *
  103. C     *         D A T A   S T A T E M E N T S                        *
  104. C     *                                                              *
  105. C     ****************************************************************
  106. C
  107. C
  108. C     ****************************************************************
  109. C
  110. C     Code starts here :
  111. C
  112. C----->  Assume some kind of error.
  113. C
  114.       SBREAK = BIGA
  115. C
  116. C----->  Check whether retry counter exceeded.
  117. C
  118.       IF (NUMTRY .GT. MAXTRY) RETURN
  119.       NUMTRY = NUMTRY + 1
  120. C
  121. C----->  Send BREAK packet and get the response.
  122. C
  123.       TNUM = N
  124.       TV1 = BIGB
  125.       TV2 = 0
  126.       TV3 = 0
  127.       CALL SPACK (TV1,TNUM,TV2,TV3)
  128.       STATUS = RPACK (LEN,NUM,RECPKT)
  129. C
  130. C----->  Branch if response was not a NAK.
  131. C
  132.       IF (STATUS .NE. BIGN) GO TO 10
  133.       IF (N .NE. NUM-1) SBREAK = STATE
  134.       RETURN
  135.    10 CONTINUE
  136. C
  137. C----->  Branch if response was not an ACK.
  138. C
  139.       IF (STATUS .NE. BIGY) GO TO 30
  140.       IF (N .EQ. NUM) GO TO 20
  141.       SBREAK=STATE
  142.       RETURN
  143.    20 CONTINUE
  144. C
  145. C----->  Received good ACK to BREAK packet so reset retry counter,
  146. C----->  bump packet counter, and set the state to "C" (complete).
  147. C
  148.       NUMTRY = 0
  149.       N = MOD (N+1,64)
  150.       SBREAK = BIGC
  151. C
  152. C---->  If we're in HOST mode, terminate the binary read outstanding
  153. C
  154.       IF(HOSTON .EQ. NO)GO TO 25
  155. C
  156.       CALL TERMIN(IUFT(1,4),.FALSE.)
  157. C
  158.    25 CONTINUE
  159.       RETURN
  160.    30 CONTINUE
  161. C
  162. C-----> Handle BAD status or unknown or ERROR packet types.
  163. C
  164.       IF (STATUS .EQ. BAD) SBREAK = STATE
  165.       RETURN
  166.       END
  167.