|
|||
Скачать Int08h pезидент с записью на диск
05.02.1995 Поставь в autoexec.bat стpочки: Или использовать резидент, который время от времени пишет на диск. В резиденте главное не забыть флаг занятости DOS'а. Пока он не ноль "TSR program MUST NOT use any DOS functions." Вот пример простого резидентика, пишущего через определенное время на диск строчку в файл протокола. {> 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)); .................... | |||
© 2009–2023 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг |