home *** CD-ROM | disk | FTP | other *** search
- Unit MKGlobT;
-
- {$I MKB.Def}
-
- Interface
-
- Type AddrType = Record {Used for Fido style addresses}
- Zone: Word;
- Net: Word;
- Node: Word;
- Point: Word;
- End;
-
- Type SecType = Record
- Level: Word; {Security level}
- Flags: LongInt; {32 bitmapped flags}
- End;
-
-
- {$I Compiled.Inc}
-
- Const
- BbsVersion = 'Mythical Kingdom Bbs - Version 0.00 Beta';
- Copyright = 'Copyright 1992 by Mark May';
- Contact = 'Contact 1:110/290 (513)237-7737 HST/V32';
-
-
- Function AddrStr(Addr: AddrType): String;
- Function Access(USec: SecType; RSec: SecType): Boolean;
- Function EstimateXferTime(FS: LongInt; BaudRate: Word; Effic: Word): LongInt;
- {Result in seconds}
- Function NameCrcCode(Str: String): LongInt; {Get CRC code for name}
- Function Flag2Str(Number: Byte): String;
- Function Str2Flag(St: String): Byte;
-
- Var
- StartUpPath: String[128];
-
- Const
- UseEms: Boolean = True;
- LocalMode: Boolean = False;
- LogToPrinter: Boolean = False;
- ReLoad: Boolean = False;
- NodeNumber: Byte = 1;
- OverRidePort: Byte = 0;
- OverRideBaud: Word = 0;
- ExitErrorLevel: Byte = 0;
- TimeToEvent: LongInt = 0;
- ShellToMailer: Boolean = False;
-
- Implementation
-
- Uses MKString, Crc32;
-
- Function Flag2Str(Number: Byte): String;
- Var
- Temp1: Byte;
- Temp2: Byte;
- i: Word;
- TempStr: String[8];
-
- Begin
- Temp1 := 0;
- Temp2 := $01;
- For i := 1 to 8 Do
- Begin
- If (Number and Temp2) <> 0 Then
- TempStr[i] := 'X'
- Else
- TempStr[i] := '-';
- Temp2 := Temp2 shl 1;
- End;
- TempStr[0] := #8;
- Flag2Str := TempStr;
- End;
-
-
- Function Str2Flag(St: String): Byte;
- Var
- i: Word;
- Temp1: Byte;
- Temp2: Byte;
-
- Begin
- St := StripBoth(St,' ');
- St := PadLeft(St,'-',8);
- Temp1 := 0;
- Temp2 := $01;
- For i := 1 to 8 Do
- Begin
- If UpCase(St[i]) = 'X' Then
- Inc(Temp1,Temp2);
- Temp2 := Temp2 shl 1;
- End;
- Str2Flag := Temp1;
- End;
-
-
-
-
- Function AddrStr(Addr: AddrType): String;
- Begin
- If Addr.Point = 0 Then
- AddrStr := Long2Str(Addr.Zone) + ':' + Long2Str(Addr.Net) + '/' +
- Long2Str(Addr.Node)
- Else
- AddrStr := Long2Str(Addr.Zone) + ':' + Long2Str(Addr.Net) + '/' +
- Long2Str(Addr.Node) + '.' + Long2Str(Addr.Point);
- End;
-
-
- Function Access(USec: SecType; RSec: SecType): Boolean;
- Begin
- If (USec.Level >= RSec.Level) Then
- Access := ((RSec.Flags and Not(USec.Flags)) = 0)
- Else
- Access := False;
- End;
-
-
- Function EstimateXferTime(FS: LongInt; BaudRate: Word; Effic: Word): LongInt;
- Begin
- If BaudRate > 0 Then
- EstimateXferTime := ((FS * 100) Div Effic) Div (BaudRate Div 10)
- Else
- EstimateXferTime := ((FS * 100) Div Effic) Div (960);
- End;
-
-
- Function NameCrcCode(Str: String): LongInt;
- Var
- NCode: LongInt;
- i: WOrd;
-
- Begin
- NCode := UpdC32(Length(Str),$ffffffff);
- i := 1;
- While i < Length(Str) Do
- Begin
- NCode := Updc32(Ord(UpCase(Str[i])), NCode);
- Inc(i);
- End;
- NameCrcCode := NCode;
- End;
-
-
- End.