29-May-90 20:58:41-GMT,5644;000000000005
Return-Path: </PN=MICHAEL.WOLLIN/O=ASSOCIATES.TNET/ADMD=TELEMAIL/C=US/@sprint.com>
Received: from sprintf.merit.edu by watsun.cc.columbia.edu (5.59/FCB)
	id AA23589; Tue, 29 May 90 16:58:39 EDT
Received: by sprintf.merit.edu (4.1/1123-1.0)
	id AA04757; Tue, 29 May 90 16:58:26 EDT
From: /PN=MICHAEL.WOLLIN/O=ASSOCIATES.TNET/ADMD=TELEMAIL/C=US/@sprint.com
Received: by sprint.com (SXG 6.0/sprint.6) with X.400 
        id 00aMi9hua001; 29 May 90 20:58:05 UT
Date: 29 May 90 20:58 UT
To: fdc@watsun.cc.columbia.edu (Receipt Notification Requested)
Subject: kermit2 wrapped 
Message-Id: <"KGJA-2492-8059/1"*@sprint.com>

Frank,
Here are my state tables.  Would you kindly study them?  I'll call Wednesday.  
Thanks.
Michael

Send State table for windowing Kermit.
Attributes and server not supported.
Echoed packets are discarded at a lower level.
Note:
Retry+ means retry count exceeded.
Cancelled 2 means local user repeats cancel request (e.g. Jane! Stop this 
crazy thing!)
?: c-like operator used as shorthand

Event (Packet)        SSINI                 SSFIL                 SSDAT        
         SSEOF                 SSEOT
--------------------------------------------------------------------------------
--------------------------------------------
S                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

F                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

D                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

Y                     S OK?                 Send Wndw,<SSDAT>,    
EOF?(Send(Z),<SSEOF>) More and !cz?         <EXIT>
                      (Set flags, Open,     begin progress        : update 
progress     Open,Send(F),<SSFIL>
                      Send(F), <SSFIL>)     display                 display    
         : Send(B)<SSEOT>
                      : SEND(E),<EXIT>

Y(X)                  Fatal                 Ignore                set 
cx,Z(D),<SSEOF>   Fatal                 <EXIT>

Y(Z)                  Fatal                 Ignore                Z(D),set 
cz,<SSEOF>   Fatal                 <EXIT>

Z                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

B                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

E                     <EXIT>                <EXIT>                <EXIT>       
         <EXIT>                <EXIT>

I,X,A,R,C,K,G         Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)        Fatal, Send(E)

Retry+                Send(E) <EXIT>        Send(E) <EXIT>        Send(E) 
<EXIT>        Send(E) <EXIT>        Send(E) <EXIT>

Break                 <EXIT>                <EXIT>                <EXIT>       
         <EXIT>                <EXIT>

Skip                  NA                    Set cx                set 
cx,Z(D)<SSEOF>    Ignore?               NA

Cancelled             Set cz                Set cz                set cz, 
Z(D),<SSEOF>  Send(B),<SSEOT>       Ignore

Cancelled 2           Send(E),<EXIT>        Send(E),<EXIT>        
Send(E),<EXIT>        Send(E),<EXIT>        Send(E),<EXIT>

Link Down             <EXIT>                <EXIT>                <EXIT>       
         <EXIT>                <EXIT>

During SSDAT, protocol window rotation error is fatal
For a generalized implemenation, Break would be substitued by local OS 
standard sys request
(e.g. ^Y for VMS).

Receive State Table

Event (Packet)        RSINI                 RFILE                 RDATA        
         RWANTB
--------------------------------------------------------------------------------
--------------------------
S                     Ack(S) <RFILE>        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)

F                     Fatal, Send(E)        Open, <RDATA>         Fatal, 
Send(E)        Send(E) and exit

D                     Fatal, Send(E)        Fatal, Send(E)        Rotation at  
         Fatal, Send(E)
                                                                  lower level

Y                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)

N                     Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)

Z                     Fatal, Send(E)        Fatal, Send(E)        Close        
         Fatal, Send(E)
                                                                  if Z(D) then 
DelFil
                                                                  cz? 
<RWANTB>:<RFILE>

B                     Fatal, Send(E)         <EXIT>               Fatal, 
Send(E)        <EXIT>

E                      <EXIT>                <EXIT>                <EXIT>      
         <EXIT>

I,X,A,R,C,K,G         Fatal, Send(E)        Fatal, Send(E)        Fatal, 
Send(E)        Fatal, Send(E)

Retry+                Send(E) <EXIT>        Send(E) <EXIT>        Send(E) 
<EXIT>        Send(E) <EXIT>

Break                 <EXIT>*               <EXIT>*               <EXIT>*      
         <EXIT>*

Skip                  NA                    set cx                set cx       
         NA

Cancelled             Set cz                set cz                set cz       
         NA

Cancel 2              Send(E) <EXIT>        Send(E) <EXIT>        Send(E) 
<EXIT>        Send(E) <EXIT>

Link Down             <EXIT>                <EXIT>                <EXIT>       
         <EXIT>



