# rdata - read a data packet from the other KEMRIT # integer function rdata(x) include ratdef include kerdef include kercom # integer num,len,status integer x,rpack,tnum # if(numtry>MAXTRY){ rdata=BIGA return } else numtry=numtry+1 # status=rpack(len,num,packet) if(host==FALSE){ call putdec(num,4) call putc(CR) call flush(STDOUT) } if(status==BIGD){ if(num!=n){ if(oldtry>MAXTRY){ rdata=BIGA return } else oldtry=oldtry+1 if(num==(n-1)){ call spar(packet) call spack(BIGY,num,6,packet) numtry=0 rdata=state return } else { rdata=BIGA return } } # write the data packet just receive into the receive file call bufemp(packet,len) tnum=n call spack(BIGY,tnum,0,0) oldtry=numtry numtry=0 n=mod((n+1),64) rdata=BIGD return } else if(status==BIGF){ if(oldtry>MAXTRY){ rdata=BIGA return } else oldtry=oldtry+1 if(num==(n-1)){ call spack(BIGY,num,0,0) numtry=0 rdata=state return } else { rdata=BIGA return } } else if(status==BIGZ){ if(num!=n){ rdata=BIGA return } tnum=n call spack(BIGY,tnum,0,0) call close(fd) n=mod((n+1),64) rdata=BIGF return } else if(status==FALSE){ rdata=state tnum=n call spack(BIGN,tnum,0,0) return } else rdata=BIGA return end