#define TIMER_IVT_ENTRYNUM 0x1C
или же
#define TIMER_IVT_ENTRYNUM 0x08
prevInt = getvect(TIMER_IVT_ENTRYNUM);
setvect(TIMER_IVT_ENTRYNUM, currInt);
так я установил свой собственный обработчик прерываний, который выглядит следующим образом:
void interrupt Timer::currInt(...) {
(*prevInt)(); //old timer routine
cout << "TIMER occurence" << endl;
lock();
counter++;
tick(); //empty body
if ( (Kernel::getRunning() -> getTimeSlice() > 0) )
if (counter >= Kernel::getRunning() -> getTimeSlice()) {
unlock();
dispatch();
//dispatchInterrupt();
};
unlock();
};
в любом случае, прерывания по таймеру вообще не происходят сами по себе ... но если я вызываю процедуру int явно, используя geninterrupt(TIMER_IVT_ENTRYNUM)
, она работает ...
Как таймер никогда не генерирует прерывания сам ... o.O
Я на Win XP 32bit, Borland C ++ 3.1 (это обязательно)