#include
"dos.h"
void
interrupt mytimer();
void
interrupt (*prevtimer)();
int
running=0;
char
far *vdu;
char
far *mode;
unsigned
long far *time=(unsigned long far*)0x46c;
main()
//AIM :
to make the tsr clock which will display time at the top right corner
// right now not working
{
unsigned long far *clkint;
clkint=(unsigned long far*)32;
mode=(char far*)0x410;
if((*mode&0x30)==0x30)
*vdu=0xb0000000l;
else
*vdu=0xb8000000l;
prevtimer=(void (interrupt
*far)())*clkint;
*clkint=(unsigned long)mytimer;
keep(0,1000);
return 0;
}
void
interrupt mytimer()
{
unsigned char hh,mm,ss;
void writechar(char,int,int,int);
if(running==0)
{
running=1;
hh=(*time/65520);
mm=(*time-hh*65520)/1092;
ss=(*time-hh*65520-mm*1092)*10/182;
if(ss>=60)
{
ss-=60;
mm++;
if(mm>=60)
{
mm=0;
hh++;
if(hh>=24)
{
hh=0;
}//if(hh>=24)
}//if(mm>=60)
}//if(ss>=60)
writechar(48+hh/10,0,72,112);
writechar(48+hh%10,0,73,112);
writechar(48+':',0,74,112);
writechar(48+mm/10,0,75,112);
writechar(48+mm%10,0,76,112);
writechar(48+':',0,77,112);
writechar(48+ss/10,0,78,112);
writechar(48+ss%10,0,79,112);
running=0;
}//if(running==0)
(*prevtimer)();
}//main()
void
writechar(char ch,int row,int col,int attr)
{
*(vdu+row*160+col*2)=ch;
*(vdu+row*160+col*2+1)=attr;
}