home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / norskdata / ndktyp.pas < prev    next >
Pascal/Delphi Source File  |  2020-01-01  |  5KB  |  126 lines

  1. TYPE
  2.     StringType      =   packed array (. MinString .. MaxString .) of char;
  3.  
  4.     NameType        =   record
  5.                             valid       : 0..MaxName;
  6.                             String      : packed array
  7.                                                 (. MinName..MaxName .) of char;
  8.                         end;
  9.  
  10.     ParType         =   record
  11.                             int : integer;
  12.                             Name: NameType;
  13.                         end;
  14.  
  15.     Char4Array      =   packed array (. 1 .. MaxFType .) of char;
  16.  
  17.     CommType    =   (   Transmit,
  18.                         Receive,
  19.                         SetParm,
  20.                         Exit,
  21.                         Help,
  22.                         Invalid );
  23.  
  24.     PacketType  =   (   DataPack,
  25.                         ACKPack,
  26.                         NAKPack,
  27.                         SinitPack,
  28.                         BrkPack,
  29.                         FHeadPack,
  30.                         EOFPack,
  31.                         ErrPack,
  32.                         NoChangePack,   (* for internal use *)
  33.                         TimOutPack,     (*     -  "  -      *)
  34.                         IllPack,        (*     -  "  -      *)
  35.                         ChkIllPack);    (*     -  "  -      *)
  36.  
  37.     Packet      =   packed record
  38.                         mark    :   char;   (* SOH character *)
  39.                         count   :   char;   (* # bytes following this field *)
  40.                         seq     :   char;   (* sequence number mod 64 *)
  41.                         ptype   :   char;   (* packet-type *)
  42.                         data    :   StringType; (* the data *)
  43.                         (* checksum is last of data *)
  44.                     end;
  45.  
  46.     EqPtr       =   ^EqRecord;
  47.     EqRecord    =   record
  48.                         case boolean of
  49.                             true  : ( Pack : Packet; );
  50.                             false : (
  51.                                 (* Dirty trick - FORTRAN EQUIVALENCE *)
  52.                                 (* Added on afterwards - uses also   *)
  53.                                 (* pointer forcing through assembly..*)
  54.                                 (* May be left out for other systems *)
  55.                                 IntArr : array (. 0..MInt .) of integer;
  56.                                 )
  57.                     end;
  58.  
  59.     KermitStates=   (   FileData,
  60.                         Init,
  61.                         Break,
  62.                         FileHeader,
  63.                         EOFile,
  64.                         Complete,
  65.                         Abort );
  66.  
  67.     Byte        =   0 .. 255;
  68.  
  69.     ByteFile    =   packed file of Byte;
  70.  
  71.     (* Following are types for command interpreter *)
  72.     VocabType   =   ( (*  Commands(Sorted):*)                 
  73.                       (*  Auto            *)    AutoSym,
  74.                       (*  Debug           *)    DbgSym,
  75.                       (*  Delay           *)    DelaySym,
  76.                       (*  Exit            *)    ExitSym,
  77.                       (*  File-warning    *)    FWarnSym,
  78.                       (*  Help            *)    HelpSym,
  79.                       (*  Log-file        *)    LogFileSym,
  80.                       (*  No-log-file     *)    NoLogFileSym,
  81.                       (*  Off             *)    OffSym,
  82.                       (*  On              *)    OnSym,
  83.                       (*  Quit            *)    QuitSym,
  84.                       (*  Receive         *)    RcvSym,
  85.                       (*  Send            *)    SendSym,
  86.                       (*  Set             *)    SetSym,
  87.                       (*  Statistics      *)    StatisticsSym,
  88.                       (*  Time-out        *)    TimeOutSym,
  89.                       (*  Use-8-bit-quote *)    Use8Sym
  90.                     );
  91.  
  92.     VocabSet    =   set of VocabType;
  93.  
  94.     MatchType   =   (   Exact, Ambigous, NoMatch );
  95.  
  96.     TerminType  =   (   Esc, QMark, Cr );
  97.  
  98.     WordStr     =   packed array(. MinWord..MaxWord .)
  99.                         of char;
  100.  
  101.     WordType    =   record
  102.                         String : WordStr;
  103.                         Valid  : integer;
  104.                     end;
  105.  
  106.     (* The following type is used as a buffer in order to
  107.      * split a command-line into independent words.
  108.      *)
  109.     CmdLinType  =   record
  110.                         Terminator  : TerminType;
  111.                         Cursor      : integer;
  112.                         PrevCursor  : integer;
  113.                         EndWord     : integer;
  114.                         Valid       : integer;
  115.                         String      : packed array(. MinName..MaxName .) of char;
  116.                     end;
  117.  
  118.     NListPtr    =   ^NListElt;
  119.     NListElt    =   record
  120.                         Name    :   NameType;
  121.                         AltUsed :   boolean;
  122.                         AltName :   NameType;
  123.                         Next    :   NListPtr;
  124.                     end;
  125. 
  126.