Three totally different versions of Kermit for the Sperry (Univac) 1100.


1.  THE PAUL STEVENS VERSION, U OF WISCONSIN

* Sperry Univac 1100 KERMIT, initial release, December 1983.

Contributed by:

  Paul Stevens
  Madison Academic Computing Center
  1210 West Dayton Street
  University Of Wisconsin
  Madison, Wisconsin  53706
  (608) 262-9618

Here is the text of his letter:  "For what it is worth, here is our version of
KERMIT that runs on Sperry 100/82.  Documentation is meager.  Instructions for
users are in the listing itself in the form of `HELP' strings.  Instructions
for implementing on other 1100 computers amount to a few comments on page 1.
Probably the most helpful comment consists of my name, address, and phone
number.  Good luck!"

A subsequent phone conversation revealed that there actually is a manual, which
you may obtain by sending a self-addressed stamped envelope to the above.  It
is not included with the distribution since there is no plain-text version of
it (it was for a particular photocomposer using a text formatter than cannot
produce plain text).

The program is written in Univac 1100 Exec assembly language.  The unusual use
of alphabetic case in the listing is not a mistake; the author actually typed
it in that way (a private joke).

* Second Release, September 1984:

Basically the same as the first release but with some error corrections,
the ability to handle an additional kind of 1100 element, and the ability
to receive files with very long lines (entire paragraphs).

* Third Release, June 1985:

Version 2.2 of Sperry Kermit, includes 8th-bit prefixing, repeat-count
data compression, wildcard send, and server mode.  Fixes timeout definition
problems.  Code for server mode & wildcards mostly from Grant Gilmour of Gulf
Canada Resources, Inc.

Fourth Release, September 1986 (Version 2.5):

Gunnar Eklund's conditional assembly stuff to make it easier to port to
"standard" Sperry systems.

Maximum record size increased from 800 to 2000.

Error corrections.


2. THE EDGAR BUTT VERSION, U OF MARYLAND

Here is a Kermit implementation for the Sperry 1100 systems written 
in Pascal.  It has been run successfully here at the University of Maryland,
College Park, and at SUNY, Albany.  Please add it to your selection 
of Kermits.  I would appreciate feedback from anyone who tries it.  

The first page of code consists of comments explaining how to   
use and generate Kermit1100.

Hope someone finds it useful,

Edgar Butt (Butt@umd2.arpa) 
Computer Science Center 
University of Maryland  
College Park, Maryland 20742
(301) 454-2946  

   KERMIT1100 is yet another Kermit written to run on the Sperry (Univac)   
   1100 series of computers.  It is written in Pascal to be compiled on 
   the NOSC Pascal Compiler, version 2.2 or later.  This compiler is
   available from the Computer Science Center of the University of  
   Maryland, College Park, for a nominal service charge.

   Kermit aficianodos may notice that the structure of this version 
   differs from other versions in that packets are read and sequence
   checked in the main program loop and are then dispatched to the  
   proper input or output state with a single case statement.   
   This structure has allowed the various state processes to be 
   relatively uncluttered.  While doing this implementation I   
   discovered that NAK's are like tadpole tails.  They seem like
   a neat idea at first, but as the frog emerges, they serve no 
   useful purpose.  Likewise, I have been unable to find a case 
   in which NAK's are necessary.  Sending an ACK for the last   
   good packet received is just as good.  If I'm wrong, I am sure   
   that some swamp dweller out there will let me know.  
   (Not to worry, I handle incoming NAK's even though they are not  
   necessary.)  

   By way of a quick synopsys of features, this version of Kermit has:  

      Simple server mode - processes S and R packets
      8-bit quoting (Turned on by Q-option) 
      Repeat count prefixes 
      Error packet generation and processing

   Kermit 1100 is called as a processor with the following control card:

      @Q*F.KERMIT,OPTIONS 1100SPEC,REMOTESPEC   

      Q*F. is the file in which the processor resides.  
      1100SPEC is the 1100 file or element on which Kermit will operate.
      REMOTESPEC is the file name sent to the remote Kermit(a fib of sorts) 
      OPTIONS:  
         B - big buffers.  Kermit1100 normally tells the remote Kermit to send  
             packets that will fit in 84 characters.  B-option causes it to 
             request the maximum size Kermit packets (which ain't as big as you 
             might wish)  Make sure that your communications hardware and   
             software will let the long packets get through.
         C - assume for sending or receiving that records are to be separated   
             by CR instead of CR-LF 
         L - log in the element KERMITLOG.MDSSS all file reads and writes and   
             all communication sends and receives. MDSSS is the month, day and  
             seconds/4 encoded base 32 (0,...,9,A,...,V). If a catalogued file  
             'KERMITLOG' is assignable, it is used.  Otherwise a temporary file 
             is created.
         Q - allow eight-bit quoting for sending or receiving.  If the file 
             being sent or received has 8-bit data and if the remote kermit 
             is capable of 8-bit quoting, then all 8-bits of data can be
             sent or received.  
         R - expect to receive data.  Put the data in 1100SPEC if specified 
             or in the file or element name sent from the remote Kermit.  No
             transformation on the incoming name is done at present so it   
             had better be good.
         S - send 1100SPEC to the remote Kermit.  If REMOTESPEC is specified,   
             put it in the file header packet.  Otherwise put 1100SPEC in the   
             packet.
         T - test mode.  Send (actually print on a terminal) packets as if  
             an S-option had been specified without reading ACK's.  
         W - If the S-option is used, wait 30 seconds before starting to send

Kermit1100 tries not to exit until an EOF is received in order to process   
multiple requests from the remote Kermit.   


3. There is also a version of KERMIT for the Univac 1100 written in
   Ratfor to run under the Software Tools environment.  See STKERMIT.*.

.
