home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
PROGRAM
/
TEF10.ZIP
/
tef.pas
< prev
Wrap
Pascal/Delphi Source File
|
1992-06-11
|
3KB
|
98 lines
Program Timed_Execution_Facility;
{$M 4096,0,0}
Uses CRT,DOS;
Const
Off = False;
On = True;
HaltKey = (#45); { ScanCode for Alt-X }
HaltStr = 'Alt-X'; { String to display }
Var
TimeToRun,
ProgramToRun : String;
Ch : Char;
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{= Function: CurrentTime =}
{= Returns : Time in 24-hour format =}
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Function CurrentTime : String;
Var
Hour, Min, Sec, i : Integer;
HStr, MStr, SStr, Temp : String[2];
Regs : Registers;
Begin
With Regs do
Begin
AH:=44; AL:=0;
MsDos(Regs); { Pull the time }
Hour:=CH; Min:=CL; { DL=100ths sec }
Sec:=DH;
End; { with }
Str(Hour,Hstr); { Cvt hour to string }
Str(Min,MStr); { Cvt min to string }
Str(Sec,SStr); { Cvt sec to string }
If Length(MStr) = 1 then MStr := '0'+MStr;
If Length(SStr) = 1 then SStr := '0'+SStr;
CurrentTime:=HStr+':'+MStr+':'+SStr;
End; { CurrentTime }
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{= Procedure: Cursor =}
{= Returns : Nothing - Turns cursor on/off =}
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Procedure Cursor(Status : Boolean);
Var
Regs : Registers;
i : Integer;
Begin
FillChar(Regs,SizeOf(Regs),0);
If (Mem[0000:1040] AND 48) <> 48 Then i := 0 { mono }
Else i := 6; { color }
Regs.AH := $01;
If (Status = On) then begin { Turn ON }
Regs.CH:=$6+i;
Regs.CL:=$7+i;
end
Else begin { Turn OFF }
Regs.CH := $20;
Regs.CL := $20;
end;
Intr($10,Regs);
End; { Cursor }
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{= Procedure: Help =}
{= Returns : Nothing - Aborts program with USAGE message =}
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Procedure Help;
Begin
Writeln;
Writeln('USAGE: TEF [24-hr time] [command]');
Writeln;
Cursor(On);
Halt;
End; { Help }
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
{= Procedure: Parse =}
{= Returns : TimeToRun, ProgramToRun =}
{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
Procedure Parse (Var Time, Command : String);
Var Loop : Integer;
P1,P2 : String;
FoundTime : Boolean;
Begin
If (ParamCount <> 2) then Help
Else begin
FoundTime:=False;
P1:=ParamStr(1); P2:=ParamStr(2);
For Loop:=1 to Length(P1) do
If (P1[Loop]=':