#include void wait(int ticks) { unsigned starttime, endtime, delaytime = ((65535L*182*ticks*12)/100000L); asm cli outportb(0x43,4); endtime = starttime = inportb(0x40) + (inportb(0x40) << 8); while (starttime - endtime < delaytime) { outportb(0x43,4); endtime = inportb(0x40) + (inportb(0x40) << 8); } asm sti } void main(void) { int i; printf("hi\n"); for (i=0; i < 1000; i++) wait(1); printf("bye\n"); }