#include #include #include #define INTR 0X1C /* The clock tick interrupt */ void interrupt ( *oldhandler ) ( void ); int count=0; void interrupt handler ( void ) { /* disable interrupts during the handling of the interrupt */ disable(); /* increase the global counter */ count++; /* reenable interrupts at the end of the handler */ enable(); /* call the old routine */ oldhandler(); } int main ( void ) { /* save the old interrupt vector */ oldhandler = getvect ( INTR ); /* install the new interrupt handler */ setvect ( INTR, handler ); /* loop until the counter exceeds 20 */ while ( count < 20 ) printf ( "count is %d\n",count ); /* reset the old interrupt handler */ setvect ( INTR, oldhandler ); return 0; }