For some reason, my interrupts have stopped working. I think it's something to do with Program memory bank 1 - my code's gotten to the stage where I've had to start dumping routines into the second bank - calling them from the first bank. When I call a routine in bank 1 and loop there waiting for an interrupt driven timer to time out, it never does - it just goes round and round the loop. The SCI interrupt and the keyboard interrupt don't work either. What's happening? I've checked and double checked that GIE is set and doesn't get disabled anywhere else - and I presume that when an interrupt happens when the code's in page 1 that it'll still jump back to the interrupt vector at 04h. I'm saving context ok in the interrupt (W,Status,FSR and PCLATH) - and in fact the interrupt code never seems to get run at all (I put a port flag in to check and it never gets set) Any ideas? -- Jim