; 07 aug 85 dg call TPUTCH with rmtdev - nuke CH ; 16 jly 85 esj converted ;;;;;;;;;;;; SPACK ;;;;;;;;;;;;;;;;;;;;;;; E'F A:S(NWLS) E'O SPACK.(XTYPE,NUM,LEN,XDATA) ; send this packet to the remote KERMIT /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERCOM /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERDEF I'R XTYPE,XDATA(1),NUM,LEN I'R TV1,TV2,TV3 I'R I,COUNT,CHKSUM,BUFFER(132) ;------------------------------< real code >---------------------------- I=0 ;out on, start with the first byte W'E (I.LE.PAD) ;send out padchar if need E'E TPUTCH.(PADCHAR,RMTDEV) I=I+1 E'W ; ;build up the packet COUNT=0 BUFFER(COUNT)=SOH COUNT=COUNT+1 CHKSUM=TOCHAR.(LEN+3) BUFFER(COUNT)=TOCHAR.(LEN+3) COUNT=COUNT+1 CHKSUM=CHKSUM+TOCHAR.(NUM) BUFFER(COUNT)=TOCHAR.(NUM) COUNT=COUNT+1 CHKSUM=CHKSUM+XTYPE BUFFER(COUNT)=XTYPE COUNT=COUNT+1 T'H L1 FOR I=0, 1, I .GE. LEN ;copy the content of packet informa BUFFER(COUNT)=XDATA(I) ;calculate the checksum COUNT=COUNT+1 CHKSUM=CHKSUM+XDATA(I) L1 C:E TV1=CHKSUM.LAND.192 TV2=TV1/64 TV3=TV2+CHKSUM CHKSUM=TV3.LAND.63 BUFFER(COUNT)=TOCHAR.(CHKSUM) COUNT=COUNT+1 BUFFER(COUNT)=EOL BUFFER(COUNT+1)=EOS * E'E HEXDMPP.(1,COUNT+2,1,BUFFER) COUNT=0 W'E (BUFFER(COUNT).NE.EOS) ;send out the packet E'E TPUTCH.(BUFFER(COUNT),RMTDEV) COUNT=COUNT+1 E'W F'N GOOD E'N