      SUBROUTINE SPACK (XTYPE,NUM,LEN,XDATA)
C
C     ****************************************************************
C
C              KERMIT for the MODCOMP MAXIV operating system
C
C        Compliments of:
C
C                         SETPOINT, Inc.
C                      10245 Brecksville Rd.
C                      Brecksville, Ohio 44141
C
C
C      KERMIT is a copyrighted protocol of Columbia Univ. The authors
C      of this version hereby grant permission to copy this software
C      provided that it is not used for an explicitly commercial
C      purpose and that proper credit be given. SETPOINT, Inc. makes
C      no warranty whatsoever regarding the accuracy of this package
C      and will assume no liability resulting from it's use.
C
C     ****************************************************************
C
C     Abstract:  SEND THIS PACKET TO THE REMOTE KERMIT
C
C
C     MODIFICATION HISTORY
C
C     BY            DATE     REASON            PROGRAMS AFFECTED
C
C
C     ****************************************************************
C
C     Author: BOB BORGESON          Version: A.0    Date: Oct-86
C
C     Calling Parameters:
C
C     R    XTYPE     - DATA PACKET TYPE
C     R    NUM       - PACKET SEQUENCE NUMBER (MODULO 64)
C     R    LEN       - LENGTH IN WORDS OF XDATA
C     R    XDATA     - DATA PORTION OF PACKET
C
C     ****************************************************************
C
C     Messages generated by this module :  None
C
C     ****************************************************************
C
C     Subroutines called directly :  TOCHAR, TPUTCH
C
C     ****************************************************************
C
C     Files referenced :  None
C
C     ****************************************************************
C
C     Local variable definitions :
C
C     BUFFER  - SCRATCH TO PIECE TOGETHER THE WHOLE PACKET
C     CH      - UFT # TO OUTPUT TO
C     CHKSUM  - BLOCK CHECKSUM
C     COUNT   - RUNNING COUNT OF HOW MANY CHARACTERS IN PACKET
C
C     ****************************************************************
C
C     Commons referenced :  KER and KERPAR
C
C     ****************************************************************
C
C     (*$END.DOCUMENT*)
C
C     ****************************************************************
C     *                                                              *
C     *         D I M E N S I O N   S T A T E M E N T S              *
C     *                                                              *
C     ****************************************************************
C
      IMPLICIT INTEGER (A-Z)
C
      INTEGER*2   XDATA(1),    BUFFER(132)
C
C     ****************************************************************
C     *                                                              *
C     *         T Y P E   S T A T E M E N T S                        *
C     *                                                              *
C     ****************************************************************
C
C
C     ****************************************************************
C     *                                                              *
C     *         C O M M O N   S T A T E M E N T S                    *
C     *                                                              *
C     ****************************************************************
C
      INCLUDE USL/KERCOM
      INCLUDE USL/KERPMC
C
C     ****************************************************************
C     *                                                              *
C     *         E Q U I V A L E N C E   S T A T E M E N T S          *
C     *                                                              *
C     ****************************************************************
C
C
C     ****************************************************************
C     *                                                              *
C     *         D A T A   S T A T E M E N T S                        *
C     *                                                              *
C     ****************************************************************
C
C
C     ****************************************************************
C
C     Code starts here :
C
C
C
C                                   !THIS IS THE CHANNEL TO SEND PACKET
C                                   !OUT ON, START WITH THE FIRST BYTE
      CH=RMTOUT
      I=1
C
  100 CONTINUE
C                                     !SEND OUT PADCHAR IF NEEDED
      IF(I.GT.PAD)GO TO 200
         CALL TPUTCH(PADCHAR,CH)
         I=I+1
         GO TO 100
  200 CONTINUE
C                                     !BUILD UP THE PACKET
      COUNT=1
      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
C
C                                    !COPY THE CONTENT OF PACKET INFORMA
      IF (LEN .LT. 1) GO TO 310
      DO 300 I=1,LEN
C                                    !CALCULATE THE CHECKSUM
         BUFFER(COUNT)=XDATA(I)
         COUNT=COUNT+1
         CHKSUM=CHKSUM+XDATA(I)
  300 CONTINUE
  310 CONTINUE
C
      TV1=IAND(CHKSUM,192)
      TV2=TV1/64
      TV3=TV2+CHKSUM
      CHKSUM=IAND(TV3,63)
      BUFFER(COUNT)=TOCHAR(CHKSUM)
      COUNT=COUNT+1
      BUFFER(COUNT)=EOL
      BUFFER(COUNT+1)=EOS
      COUNT=1
      CH=RMTOUT
C
C                                                !SEND OUT THE PACKET
  400 CONTINUE
      IF(BUFFER(COUNT).EQ.EOS)GO TO 500
         CALL TPUTCH(BUFFER(COUNT),CH)
         COUNT=COUNT+1
         GO TO 400
  500 CONTINUE
      RETURN
      END
