# rfile - receive the file name from the remote KERMIT integer function rfile(x) include ratdef include kerdef include kercom # integer num,len,status,rpack,x,tnum integer aone,bone,a12 character alin(MAXLINE) string receiving " Receiving " # if(numtry>MAXTRY){ rfile=BIGA return } else numtry=numtry+1 # status=rpack(len,num,packet) if(status==BIGS){ if(oldtry>MAXTRY){ rfile=BIGA return } else oldtry=oldtry+1 if(num==(n-1)){ call spar(packet) call spack(BIGY,num,6,packet) numtry=0 rfile=state return } else { rfile=BIGA return } } else if(status==BIGZ){ if(oldtry>MAXTRY){ rfile=BIGA return } else oldtry=oldtry+1 if(num==(n-1)){ call spack(BIGY,num,0,0) numtry=0 rfile=state return } else { rfile=BIGA return } } else if(status==BIGF){ if(num!=n){ rfile=BIGA return } packet(len+1)=NEWLINE packet(len+2)=EOS call verify(packet) if(host==FALSE){ aone=1 bone=1 a12=12 call scopy(receiving,aone,alin,bone) call scopy(packet,aone,alin,a12) call putlin(alin,localoutfd) call putch(NEWLINE,localoutfd) call remark(" Packet # ") } fd=aopen(packet,WRITE) if(fd==ERR){ rfile=BIGA return } tnum=n call spack(BIGY,tnum,0,0) odltry=numtry numtry=0 n=mod((N+1),64) rfile=BIGD return } else if(status==BIGB){ if(num!=n){ rfile=BIGA return } tnum=n call spack(BIGY,tnum,0,0) rfile=BIGC return } else if(status==FALSE){ rfile=state tnum=n call spack(BIGN,tnum,0,0) return } else rfile=BIGA return end