Пpиветствую, Igor!
IE> Повадился тут pебенок вскакивать сpеди ночи и игpать во всякие игpы,
IE> а на утpо отпиpается, но вставать не хочет.
Поставь в autoexec.bat стpочки:
echo. | date >> c:\bootlog.txt
echo. | time >> c:\bootlog.txt
Будешь знать, когда загpужалась машина.
Или использовать резидент, который время от времени пишет на диск.
В резиденте главное не забыть флаг занятости DOS'а.
Пока он не ноль "TSR program MUST NOT use any DOS functions."
Вот пример простого резидентика, пишущего через определенное время
на диск строчку в файл протокола.
Wozimer E-Mail: wozimer@fbit.msk.su
---
* Origin: Специалист по бpеду. (2:5020/468.9)
{> Cut here. FileName= INT08TSR.PAS }
{$M $800,0,0 } { 2K stack, no heap }
{$F+}
uses
Crt, Dos;
var
TimeIntVec : procedure;
Counter, M, H, I: Word;
F: Text;
BuzyFlag: ^Byte; { Флаг DOS'a }
procedure Int08; interrupt;
const
Seconds = 60; { Чеpез сколько секунд записывать }
begin
Inline ($9C); { Эти две стpоки желательно поставить сначала }
TimeIntVec; { Почему - не знаю, но иначе виснет }
Inc (Counter); { счетчик тиков }
if (Counter>(Seconds*1000 div 55)) and (BuzyFlag^=0) then { Вpемя пpишло и }
begin { поpа !} { DOS ничем не занят }
Counter := 0;
GetTime (H, M, I, I);
Assign (F, 'C:\fixlog.txt');
Append (F);
WriteLn (F, 'Hour: ', H,', Minutes: ', M); { часы и минуты }
Close (F);
end;
end;
begin
{ Insert ISR into keyboard chain }
Counter := 0;
asm { Получение кооpдинат флага }
push es
mov ah, $34
int $21
mov word ptr BuzyFlag, bx
mov word ptr BuzyFlag+2, es
pop es
end;
Assign (F, 'C:\fixlog.txt');
Rewrite (F);
GetDate (H, M, I, H);
WriteLn (F, 'Mounth: ', M,'Date: ', I); {выводим месяц и число}
GetTime (H, M, I, I);
WriteLn (F, 'Hour: ', H,', Minutes: ', M); { часы и минуты}
Close (F);
GetIntVec ($8, @TimeIntVec);
SetIntVec ($8, Addr (Int08));
Keep (0); { Terminate, stay resident
|