home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C++ Games Programming
/
CPPGAMES.ISO
/
thx
/
source
/
theatrix
/
timesrvr.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1995-04-26
|
1KB
|
46 lines
#include <iostream.h>
#include <dos.h>
#include "theatrix.h"
const int CLOCKVECT = 0x1C;
static void interrupt newhandler(...); // our replacement handler
static void interrupt (*oldhandler)(...); // ptr to default handler
int TimerServer::newtick; // declare static data member
void TimerServer::startup()
{
tickno=0;
newtick=FALSE;
oldhandler=getvect(CLOCKVECT);
setvect(CLOCKVECT,newhandler);
cout << "TIMERSERVER: hooked timer interrupt...\n";
}
void TimerServer::shutdown()
{
if (oldhandler)
{
setvect(CLOCKVECT,oldhandler);
cout << "TIMERSERVER: restored timer interrupt...\n";
oldhandler = 0;
}
}
void TimerServer::check(Folder& fld)
{
if (newtick)
{
tickno=++tickno%18;
fld.dispatch(tickno);
newtick=FALSE;
}
}
void interrupt newhandler(...)
{
TimerServer::newtick=TRUE;
oldhandler(...); // * it is vital than the default
} // handler get called