rob,

i think he had the same problem in using the ON INTERRUPT method. maybe you would want to consider the ASM interrupts. Its a lot more easier than microcode interrupt. just for an idea.

DEFINE INTHAND IntHandler
...(define your variables)

;-------------
Initialize:
TRISB = $FF
INTCON = %11001000 ;(enable portb change interrupt)
OPTION_REG = $7F ;(pulls ups enable)
... (then your main routines)

;------------------
@_IntHandler ;Interrupt Service Routine
INTCON.3 = 0 ; disable portb change interrupt while in this routine
;(reset all necessary variables and call your extra routines)
INTCON.3 = 1 ; reenable portb change interrupt
@retfie


Well I hope this one will give you some ideas. ON INTERRUPT is hard to implement with so much latency compared asm interrupt. As another advatage, you saved some words since ON INTERRUPTS have so many overheads inserted per each of your line since it polls interrupt flags. ok?

regards,
Paul