home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
m
/
mip_100.zip
/
MIP.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-01-19
|
4KB
|
121 lines
Program Modem_Initialization_Program;
Uses
Crt, Dos, Fossil;
Const
Version = 'v1.00';
Pgmid = 'MIP '+ Version + ' 19jan91 MWBJR Enterprise 1:273/701.0 (215)641-0270';
Var
Gbx : Byte;
Gcx : Char;
WorkString : String;
InFile : Text;
DirInfo : SearchRec;
D : DirStr;
N : NameStr;
E : ExtStr;
StartTime : LongInt;
Return, InitTries, DialTries, DialWait, ModemTimeOut, NameTimeOut, NameTries : Integer;
InitString : String[40];
Month, Day, Year, DayOfWeek, Hour, Minute, Second, Sec100 : Word;
DayString, HourString, MinuteString, SecondString : String[2];
{=======================================================================}
Function Timer : LongInt;
Var
Hour, Minute, Second, Sec100 : Word;
Minutes, Seconds : LongInt;
Begin
GetTime(Hour, Minute, Second, Sec100);
Minutes := (Hour * 60) + Minute;
Seconds := (Minutes * 60) + Second;
Timer := Seconds;
End;
{========================================================================}
Function UpperString(InString : String) : String;
Begin
For Gbx := 1 To Length(InString) Do InString[Gbx] := UpCase(InString[Gbx]);
UpperString := InString;
End;
{========================================================================}
Procedure RD;
Begin
While (Status And $0100) = $0100 Do
Begin
Gcx := (Chr(F_Intr_14($0200) And $7F)); WorkString := WorkString + Gcx;
Write(Gcx);
End;
End;
{========================================================================}
Procedure TD(OutString : String);
Var
X : Byte;
Begin
For X := 1 To Length(OutString) Do
Begin
If OutString[X] = '|' Then OutString[X] := #13;
P_Intr_14($01,Ord(OutString[X]));
RD;
End;
End;
{========================================================================}
Procedure InitModem;
Var
Counter : Byte;
Begin
WorkString := ''; Counter := 0;
Repeat
Delay(100); TD(InitString); Inc(Counter); StartTime := Timer;
Repeat
RD;
Until (Pos('OK',WorkString) > 0) Or (Pos(#13+'0',WorkString) > 0) Or ((Timer - StartTime) >= 5);
Until (Pos('OK',WorkString) > 0) Or (Pos(#13+'0',WorkString) > 0) Or (Counter >= InitTries);
If Pos(#13+'0',WorkString) > 0 Then WriteLn;
End;
{========================================================================}
Procedure ReadInitFile;
Begin
FindFirst('MODEM.INT',Archive,DirInfo);
D := '';
If DosError <> 0 Then
Begin
Fsplit(ParamStr(0),D,N,E);
FindFirst(D+'MODEM.INT',Archive,DirInfo);
If DosError <> 0 Then
Begin
WriteLn('MODEM.INT not found!');
Halt(1);
End;
End;
LowerDTR; Delay(500);
SetParameters('300');
InitString := 'AT|'; InitTries := 5; DialTries := 5;
ModemTimeOut := 120; NameTimeOut := 30; NameTries := 10;
Assign(InFile,D+'MODEM.INT');
Reset(InFile);
RaiseDTR; Delay(500);
While Not Eof(InFile) Do
Begin
ReadLn(InFile,WorkString);
InitString := WorkString;
InitModem;
End;
Close(InFile);
End;
{========================================================================}
Begin
Assign(Input,''); Reset(Input);
Assign(Output,''); ReWrite(Output);
WriteLn(Pgmid);
If SignOn Then
Begin
ReadInitFile;
End
Else
Begin
WriteLn('Fossil not found!');
End;
End.
{========================================================================}