Program Timer; Uses dos,crt; Var oldint8 : procedure; { pointer to old int. 8 handler } count,sec : byte; Procedure newint8; interrupt; { new int. 8 handler } Begin inc (count); if count = 18 then begin count := 0; inc (sec); if sec = 60 then sec := 0; end; oldint8; { call old handler } End; BEGIN count := 0; sec := 0; GetIntVec(8,@oldint8); { save old int. 8 vector } SetIntVec(8,addr(newint8)); { set int 8 vector address to newint8 function } clrscr; repeat gotoxy(1,1); writeln('count : ',count,' '); writeln('sec : ',sec,' '); until Keypressed; SetIntVec(8,@oldint8); { restore int 8 vectore to old settings } END.