I've got no experience with the problem you're outlining, but here's what I'd look at: Have you tried making the interrupt service routine immediately turn on an LED, not even save any registers, to see if the interrupt is really getting called? Do you have mirrored registers in both bank 0 and 1 for saving the status register in? You might be accidentally trashing a register you're using for something else. Neither of these addresses the use of code in the second page of memory, which if what you said started the problem, but maybe you started using the second bank of registers about the same time as you started using the second page of ROM, and you're looking in the wrong place for the problem. Cheers, Bob >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 > >