home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / computervision / kermit.sfile < prev    next >
Text File  |  2020-01-01  |  2KB  |  87 lines

  1. ; 16 jly 85 esj converted
  2. ;------------------------------------------< sfile >----------------------
  3.       E'F A:S(NWLS)
  4.       E'O SFILE.(X)
  5. ;-------------------------------------------------------------------------
  6. ;
  7. ; Purpose
  8. ;  send the filename to other KERMIT
  9.  
  10. ; Input
  11. ;  none
  12.  
  13. ; Output
  14. ;  none
  15.  
  16. ; Insert
  17. /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERCOM
  18. /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERDEF
  19.  
  20. ; Globals
  21.    G'L XNEW,XCOUNT,XEOF,DODOTCT
  22.  
  23. ; Locals
  24.    I'R NUM,LEN,X,TNUM,LCLSTATE,STATUS
  25.    I'R TV1,ALIN(132),AONE,BONE
  26.  
  27. ;----------------------< start of code >----------------------------
  28.  
  29.       AONE=1
  30.       BONE=1
  31.       E'E SCOPY.(FILNAME,0,ALIN,0)
  32.  
  33.       W'R (HOSTON.EQ.NO)
  34.          DODOTCT = 0
  35.          E'E TYPE.(0,0)
  36.          E'E TYPMSG.($Sending !$)          ;we are in local mode  dis
  37.          E'E PUTLIN.(ALIN,LOCALDEV)         ;the filename being send
  38.          E'E TYPE.(0,0)
  39.       E'L
  40.  
  41.       W'R (NUMTRY.GT.MAXTRY)
  42.          LCLSTATE=BIGA                           ;exceeded max. # of re-try
  43.          F'N LCLSTATE                               ;gives up
  44.       O'E
  45.           NUMTRY=NUMTRY+1                     ;try it one more time
  46.       E'L
  47.  
  48.       LEN=0
  49.       W'E (FILNAME(LEN).NE.EOS)            ;determine the length of f
  50.          LEN=LEN+1
  51.       E'W
  52.  
  53.       TNUM=N
  54.       TV1=BIGF
  55.       E'E SPACK.(TV1,TNUM,LEN,FILNAME)         ;send filename to other KE
  56.       STATUS=RPACK.(LEN,NUM,RECPKT)
  57.  
  58.       W'R (STATUS.EQ.BIGN)                  ;we got a NAK
  59.          W'R (N.NE.(NUM-1))
  60.             LCLSTATE=STATE
  61.             F'N LCLSTATE
  62.          E'L
  63.  
  64.       O'R (STATUS.EQ.BIGY)             ;we got a ACK
  65.            W'R (N.NE.NUM)
  66.               LCLSTATE=STATE
  67.               F'N LCLSTATE
  68.            E'L
  69.            NUMTRY=0
  70.            N=(N+1).MOD.64
  71.            XNEW=YES
  72.            XCOUNT=1
  73.            XEOF=NO
  74.            SIZE=BUFILL.(PACKET)               ;fill up a buffer full of b
  75.            LCLSTATE=BIGD                        ;change state to sent data
  76.            F'N LCLSTATE
  77.  
  78.       O'R (STATUS.EQ.BAD)             ;we got a checksum error
  79.               LCLSTATE=STATE
  80.               F'N LCLSTATE
  81.       O'E
  82.            LCLSTATE=BIGA                        ;we got an error or unexpec
  83.            F'N LCLSTATE                            ;packet type
  84.       E'L
  85.       F'N LCLSTATE
  86.       E'N
  87.