#include <stdio.h> #include <conio.h> #include <dos.h> void interrupt far timer(void); void interrupt(far *oldvect)(void); unsigned long ticks; int main(void) { ticks = 0; oldvect = getvect(0x1C); setvect (0x1C,timer); printf("Обработчик установлено.\n"); getch(); setvect(0x1C,oldvect); return 0; } void interrupt far timer(void) { ticks = ((unsigned long)peekb(0x40,0x6F) << 24) + ((unsigned long)peekb(0x40,0x6E) << 16) + ((unsigned long)peekb(0x40,0x6D) << 8) + ((unsigned long)peekb(0x40,0x6C)); if(ticks == 819000) { // 12:30 outportb(0x70,0x04); outportb(0x71,0x17); outportb(0x70,0x02); outportb(0x71,0x30); outportb(0x70,0x00); outportb(0x71,0x35); } oldvect(); } |