home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
norskdata.tar.gz
/
norskdata.tar
/
ndktyp.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1985-06-24
|
5KB
|
126 lines
TYPE
StringType = packed array (. MinString .. MaxString .) of char;
NameType = record
valid : 0..MaxName;
String : packed array
(. MinName..MaxName .) of char;
end;
ParType = record
int : integer;
Name: NameType;
end;
Char4Array = packed array (. 1 .. MaxFType .) of char;
CommType = ( Transmit,
Receive,
SetParm,
Exit,
Help,
Invalid );
PacketType = ( DataPack,
ACKPack,
NAKPack,
SinitPack,
BrkPack,
FHeadPack,
EOFPack,
ErrPack,
NoChangePack, (* for internal use *)
TimOutPack, (* - " - *)
IllPack, (* - " - *)
ChkIllPack); (* - " - *)
Packet = packed record
mark : char; (* SOH character *)
count : char; (* # bytes following this field *)
seq : char; (* sequence number mod 64 *)
ptype : char; (* packet-type *)
data : StringType; (* the data *)
(* checksum is last of data *)
end;
EqPtr = ^EqRecord;
EqRecord = record
case boolean of
true : ( Pack : Packet; );
false : (
(* Dirty trick - FORTRAN EQUIVALENCE *)
(* Added on afterwards - uses also *)
(* pointer forcing through assembly..*)
(* May be left out for other systems *)
IntArr : array (. 0..MInt .) of integer;
)
end;
KermitStates= ( FileData,
Init,
Break,
FileHeader,
EOFile,
Complete,
Abort );
Byte = 0 .. 255;
ByteFile = packed file of Byte;
(* Following are types for command interpreter *)
VocabType = ( (* Commands(Sorted):*)
(* Auto *) AutoSym,
(* Debug *) DbgSym,
(* Delay *) DelaySym,
(* Exit *) ExitSym,
(* File-warning *) FWarnSym,
(* Help *) HelpSym,
(* Log-file *) LogFileSym,
(* No-log-file *) NoLogFileSym,
(* Off *) OffSym,
(* On *) OnSym,
(* Quit *) QuitSym,
(* Receive *) RcvSym,
(* Send *) SendSym,
(* Set *) SetSym,
(* Statistics *) StatisticsSym,
(* Time-out *) TimeOutSym,
(* Use-8-bit-quote *) Use8Sym
);
VocabSet = set of VocabType;
MatchType = ( Exact, Ambigous, NoMatch );
TerminType = ( Esc, QMark, Cr );
WordStr = packed array(. MinWord..MaxWord .)
of char;
WordType = record
String : WordStr;
Valid : integer;
end;
(* The following type is used as a buffer in order to
* split a command-line into independent words.
*)
CmdLinType = record
Terminator : TerminType;
Cursor : integer;
PrevCursor : integer;
EndWord : integer;
Valid : integer;
String : packed array(. MinName..MaxName .) of char;
end;
NListPtr = ^NListElt;
NListElt = record
Name : NameType;
AltUsed : boolean;
AltName : NameType;
Next : NListPtr;
end;