Just to add to Hot_Dog's idea, I would have interrupt routine simply decrease a variable (call it "A") until it reaches zero and then just stop. That's it. In the regular code, just do the computation, and then right after add a "While A:End" so that it waits for the trigger if the computation was too quick. Immediately after, set A to be 8 or whatever you need for the desired framerate and the counter will do its thing. Here is the code:
:.Setup interrupt
:fnInt(INT,6)
:
:.Main loop
:While <GameLoop>
: <Computation>
: While A:End
: 8->A
: <Update screen>
:End
:Return
:
:.Interrupt
:Lbl INT
:Return!If A
:-1->A
:Return
Replace "A" with an unused variable though...