SUBROUTINE SPACK(XTYPE,NUM,LEN,XDATA) IMPLICIT INTEGER (A-Z) COMMON /KER/ N,RPSIZ,SPSIZ,PAD,NUMTRY,OLDTRY, FD,RMTINFD,RMTOUTFD, *STATE,PADCHAR, EOL,ESCHAR,QUOTE,FILNAM(132),RECPKT(94 ), PACKET(94 * ),SIZE,MOREFD,IBM,HOST, LOCALINFD,LOCALOUTFD,SPEED INTEGER XTYPE,XDATA(1) INTEGER NUM,LEN,CH INTEGER I,IER,COUNT,TOCHAR INTEGER CHKSUM,BUFFER(100) CH=RMTOUTFD I=1 23000 IF(.NOT.(I.LE.PAD))GOTO 23001 CALL KPUTCH(PADCHAR,CH) I=I+1 GOTO 23000 23001 CONTINUE COUNT=1 BUFFER(COUNT)=1 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 I=1 23002 IF(.NOT.(I.LE.LEN))GOTO 23004 BUFFER(COUNT)=XDATA(I) COUNT=COUNT+1 CHKSUM=CHKSUM+XDATA(I) 23003 I=I+1 GOTO 23002 23004 CONTINUE CHKSUM=(CHKSUM+(CHKSUM.AND.192)/64).AND.63 BUFFER(COUNT)=TOCHAR(CHKSUM) COUNT=COUNT+1 BUFFER(COUNT)=EOL BUFFER(COUNT+1)=10002 COUNT=1 CH=RMTOUTFD 23005 IF(.NOT.(BUFFER(COUNT).NE.10002))GOTO 23006 CALL KPUTCH(BUFFER(COUNT),CH) COUNT=COUNT+1 GOTO 23005 23006 CONTINUE RETURN END