(* tab p; * * Kermit basic operations. * *) function ToChar ( ch : char ): char; begin (* make sure not a control character *) ToChar := chr( ord ( ch ) + ord ( ' ' ) ); end; function UnChar ( ch : char ): char; begin (* undoes ToChar *) UnChar := chr ( ord ( ch ) - ord ( ' ' ) ); end; function Ctl ( ch : char ): char; begin (* toggle control bit *) Ctl := cxor ( ch , chr ( 64 ) ); end; function MakeCheck ( chksum : integer ): char; begin MakeCheck := ToChar ( chr ( ( chksum + iand ( chksum , 192 ) div 64 ) mod 64 ) ); end; function StripParity ( ch : char ) : char; begin StripParity := chr( iand( ord( ch ), 127 ) ); end; function Prev ( n : integer ):integer; begin if n = 0 then Prev := 63 else Prev := n - 1; end; function uc( ch : char ):char; begin if ( ch >= 'a' ) and ( ch <= 'z' ) then uc := chr( ord(ch) - 32 ) else uc := ch; end;