home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
computervision.tar.gz
/
computervision.tar
/
kermit.rfile
< prev
next >
Wrap
Text File
|
1987-02-19
|
4KB
|
140 lines
; 17 jly 85 esj converted
;----------------------------------------< rfile >--------------------------
E'F A:S(NWLS)
E'O RFILE.(X)
;----------------------------------------------------------------------------
;
; Purpose
; read a file header packet from the other KERMIT
; Input
; none
; Output
; none
; Inserts
/INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERCOM
/INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERDEF
; Globals
; none
; Locals
I'R NUM,LEN,STATUS,LCLSTATE,X,TNUM
I'R TV1,TV2,TV3,TV4,XWRITE
;---------------------------< start of code >-------------------------------
XWRITE=1
W'R (NUMTRY.GT.MAXTRY)
LCLSTATE=BIGA ;exceeded max. # of re-try
F'N LCLSTATE ;gives up
O'E
NUMTRY=NUMTRY+1
E'L
STATUS=RPACK.(LEN,NUM,PACKET)
W'R (STATUS.EQ.BIGS) ;we got a SINIT packet
W'R (OLDTRY.GT.MAXTRY)
LCLSTATE=BIGA ;re-try it again
F'N LCLSTATE
O'E
OLDTRY=OLDTRY+1
E'L
W'R (NUM.EQ.(N-1)) ;we already got the SINIT
E'E SPAR.(PACKET) ;packet, get my file-transf
TV1=BIGY ;requirement/parameters
TV2=6
E'E SPACK.(TV1,NUM,TV2,PACKET) ;ACK it
NUMTRY=0
LCLSTATE=STATE
F'N LCLSTATE
O'E
LCLSTATE=BIGA ;unexpected sequence #
F'N LCLSTATE ;gives up
E'L
O'R (STATUS.EQ.BIGZ) ;we got a EOF packet
W'R (OLDTRY.GT.MAXTRY)
LCLSTATE=BIGA ;exceeded max # of re-try
F'N LCLSTATE ;gives up
O'E
OLDTRY=OLDTRY+1 ;re-try one more time
E'L
W'R (NUM.EQ.(N-1))
TV1=BIGY ;we already got the EOF pac
TV2=0
TV3=0
E'E SPACK.(TV1,NUM,TV2,TV3) ;just ACK it
NUMTRY=0
LCLSTATE=STATE
F'N LCLSTATE
O'E
LCLSTATE=BIGA ;unexpected sequence #
F'N LCLSTATE
E'L
O'R (STATUS.EQ.BIGF) ;we got the file header pac
W'R (NUM.NE.N)
LCLSTATE=BIGA ;unexpected sequence #,give
F'N LCLSTATE
E'L
PACKET(LEN)=EOS ;filename packet
W'R (HOSTON.EQ.NO)
E'E TYPE.(0,0)
E:E TYPMSG.($Receiving !$)
E'E PUTLIN.(PACKET,LOCALDEV) ;display the incoming file
E'E TYPE.(0,0)
E'L
ERR = OPENTEXT.(PACKET,$SU$, $KM$, FD) ;open that file for writing
W'R (ERR.NE.0)
LCLSTATE=BIGA ;we got a ERR in opening th
F'N LCLSTATE
E'L
TNUM=N
TV1=BIGY
TV2=0
TV3=0
E'E SPACK.(TV1,TNUM,TV2,TV3) ;ACK the file header packet
OLDTRY=NUMTRY
NUMTRY=0
N=(N+1) .MOD. 64
LCLSTATE=BIGD ;change state to look for DA
F'N LCLSTATE ;packet
O'R (STATUS.EQ.BIGB) ;we got a BREAK transmission
W'R (NUM.NE.N)
LCLSTATE=BIGA
F'N LCLSTATE
E'L
TNUM=N
TV1=BIGY
TV2=0
TV3=0
E'E SPACK.(TV1,TNUM,TV2,TV3) ;ACK the BREAK packet
LCLSTATE=BIGC ;change state to complete sta
F'N LCLSTATE
O'R (STATUS.EQ.BAD) ;we got an error on the check
LCLSTATE=STATE
TNUM=N
TV1=BIGN
TV2=0
TV3=0
E'E SPACK.(TV1,TNUM,TV2,TV3) ;NAK it
F'N LCLSTATE
O'E
LCLSTATE=BIGA ;unexpected packet type, give
E'L
F'N LCLSTATE
E'N