Example #1
0
int main(void)
{
    long            oldCount;
    PM_lockHandle   lh;

    /* Install our timer handler and lock handler pages in memory. It is
     * difficult to get the size of a function in C, but we know our
     * function is well less than 100 bytes (and an entire 4k page will
     * need to be locked by the server anyway).
     */
    PM_lockCodePages((__codePtr)RTCHandler,100,&lh);
    PM_lockDataPages((void*)&count,sizeof(count),&lh);
    PM_installBreakHandler();           /* We *DONT* want Ctrl-Breaks! */
    PM_setRealTimeClockHandler(RTCHandler,128);
    printf("RealTimeClock interrupt handler installed - Hit ESC to exit\n");
    oldCount = count;
    while (1) {
        if (PM_kbhit() && (PM_getch() == 0x1B))
            break;
        if (count != oldCount) {
            printf("Tick, Tock: %ld\n", count);
            oldCount = count;
            }
        }

    PM_restoreRealTimeClockHandler();
    PM_restoreBreakHandler();
    PM_unlockDataPages((void*)&count,sizeof(count),&lh);
    PM_unlockCodePages((__codePtr)RTCHandler,100,&lh);
    printf("RealTimeClock handler was called %ld times\n", count);
    return 0;
}
Example #2
0
int main(void)
{
    long            oldCount;
    PM_lockHandle   lh;

    printf("Program running in ");
    switch (PM_getModeType()) {
	case PM_realMode:
	    printf("real mode.\n\n");
	    break;
	case PM_286:
	    printf("16 bit protected mode.\n\n");
	    break;
	case PM_386:
	    printf("32 bit protected mode.\n\n");
	    break;
	}

    /* Install our timer handler and lock handler pages in memory. It is
     * difficult to get the size of a function in C, but we know our
     * function is well less than 100 bytes (and an entire 4k page will
     * need to be locked by the server anyway).
     */
    PM_lockCodePages((__codePtr)timerHandler,100,&lh);
    PM_lockDataPages((void*)&count,sizeof(count),&lh);
    PM_installBreakHandler();           /* We *DONT* want Ctrl-Breaks! */
    PM_setTimerHandler(timerHandler);
    printf("Timer interrupt handler installed - Hit ESC to exit\n");
    oldCount = count;
    while (1) {
	if (PM_kbhit() && (PM_getch() == 0x1B))
	    break;
	if (count != oldCount) {
	    printf("Tick, Tock: %ld\n", count);
	    oldCount = count;
	    }
	}

    PM_restoreTimerHandler();
    PM_restoreBreakHandler();
    PM_unlockDataPages((void*)&count,sizeof(count),&lh);
    PM_unlockCodePages((__codePtr)timerHandler,100,&lh);
    printf("Timer handler was called %ld times\n", count);
    return 0;
}
Example #3
0
int main(void)
{
    int             ch;
    PM_lockHandle   lh;

    printf("Program running in ");
    switch (PM_getModeType()) {
	case PM_realMode:
	    printf("real mode.\n\n");
	    break;
	case PM_286:
	    printf("16 bit protected mode.\n\n");
	    break;
	case PM_386:
	    printf("32 bit protected mode.\n\n");
	    break;
	}

    /* Install our timer handler and lock handler pages in memory. It is
     * difficult to get the size of a function in C, but we know our
     * function is well less than 100 bytes (and an entire 4k page will
     * need to be locked by the server anyway).
     */
    PM_lockCodePages((__codePtr)keyHandler,100,&lh);
    PM_lockDataPages((void*)&count,sizeof(count),&lh);
    PM_installBreakHandler();           /* We *DONT* want Ctrl-Breaks! */
    PM_setKeyHandler(keyHandler);
    printf("Keyboard interrupt handler installed - Type some characters and\n");
    printf("hit ESC to exit\n");
    while ((ch = PM_getch()) != 0x1B) {
	printf("%c", ch);
	fflush(stdout);
	}

    PM_restoreKeyHandler();
    PM_restoreBreakHandler();
    PM_unlockDataPages((void*)&count,sizeof(count),&lh);
    PM_unlockCodePages((__codePtr)keyHandler,100,&lh);
    printf("\n\nKeyboard handler was called %ld times\n", count);
    return 0;
}