home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / computervision / kermit.spack < prev    next >
Text File  |  2020-01-01  |  2KB  |  71 lines

  1. ; 07 aug 85 dg call TPUTCH with rmtdev - nuke CH
  2. ; 16 jly 85 esj converted
  3. ;;;;;;;;;;;;      SPACK          ;;;;;;;;;;;;;;;;;;;;;;;
  4.       E'F A:S(NWLS)
  5.       E'O SPACK.(XTYPE,NUM,LEN,XDATA)
  6.  
  7. ;     send this packet to the remote KERMIT
  8.  
  9. /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERCOM
  10. /INCLUDE BYU.PROG.KERMIT.SYM.EQU.KERDEF
  11.  
  12.       I'R XTYPE,XDATA(1),NUM,LEN
  13.       I'R TV1,TV2,TV3
  14.       I'R I,COUNT,CHKSUM,BUFFER(132)
  15.  
  16.  
  17. ;------------------------------< real code >----------------------------
  18.  
  19.       I=0                              ;out on, start with the first byte
  20.  
  21.       W'E (I.LE.PAD)                   ;send out padchar if need
  22.          E'E TPUTCH.(PADCHAR,RMTDEV)
  23.          I=I+1
  24.       E'W
  25. ;                                     ;build up the packet
  26.       COUNT=0
  27.  
  28.       BUFFER(COUNT)=SOH
  29.       COUNT=COUNT+1
  30.  
  31.       CHKSUM=TOCHAR.(LEN+3)
  32.       BUFFER(COUNT)=TOCHAR.(LEN+3)
  33.       COUNT=COUNT+1
  34.  
  35.       CHKSUM=CHKSUM+TOCHAR.(NUM)
  36.       BUFFER(COUNT)=TOCHAR.(NUM)
  37.       COUNT=COUNT+1
  38.  
  39.       CHKSUM=CHKSUM+XTYPE
  40.       BUFFER(COUNT)=XTYPE
  41.       COUNT=COUNT+1
  42.  
  43.       T'H L1 FOR I=0, 1, I .GE. LEN    ;copy the content of packet informa
  44.          BUFFER(COUNT)=XDATA(I)        ;calculate the checksum
  45.          COUNT=COUNT+1
  46.          CHKSUM=CHKSUM+XDATA(I)
  47. L1    C:E
  48.  
  49.       TV1=CHKSUM.LAND.192
  50.       TV2=TV1/64
  51.       TV3=TV2+CHKSUM
  52.       CHKSUM=TV3.LAND.63
  53.  
  54.       BUFFER(COUNT)=TOCHAR.(CHKSUM)
  55.       COUNT=COUNT+1
  56.  
  57.       BUFFER(COUNT)=EOL
  58.       BUFFER(COUNT+1)=EOS
  59. *      E'E HEXDMPP.(1,COUNT+2,1,BUFFER)
  60.  
  61.       COUNT=0
  62.  
  63.       W'E (BUFFER(COUNT).NE.EOS)             ;send out the packet
  64.          E'E TPUTCH.(BUFFER(COUNT),RMTDEV)
  65.          COUNT=COUNT+1
  66.       E'W
  67.  
  68.       F'N GOOD
  69.  
  70.       E'N
  71.