10 void wait_vsync(void);
11 void handle_key(int key);
12 void interrupt timer_intr();
15 static unsigned char *fb;
17 static volatile unsigned long nticks;
19 static void interrupt (*prev_timer_intr)();
23 long rate, nframes = 0;
26 if(!(fb = malloc(64000))) {
27 fprintf(stderr, "failed to allocate framebuffer\n");
33 prev_timer_intr = _dos_getvect(0x1c);
34 _dos_setvect(0x1c, timer_intr);
52 tdur = nticks - tstart;
54 _dos_setvect(0x1c, prev_timer_intr);
59 rate = nframes * 100 * 18 / tdur;
60 printf("%ld frames in %ld sec, rate: %ld.%ld\n", nframes, tdur / 18,
61 rate / 100, rate % 100);
70 memcpy((void*)0xa0000, fb, 64000);
73 void handle_key(int key)
82 void interrupt timer_intr()
85 _chain_intr(prev_timer_intr);