Hi all, I'm writing a program in MEL PicBasic for a programmable timer. It has a PIC16F876, a 20 x 2 LCD, a DS1307 RTC chip with coin cell backup, a relay and a four-switch keypad (up, down, next, back). When running it displays the time and day, and the next ON time (e.g. 12:30 Tomorrow). From the keypad I can change the time and day of week, and the ON time(s) and duration(s). The various parts of the program work OK, but the whole program is going to be between 2k and 4k long. Whenever the set of routines I'm testing exceeds 2k, things go wrong. I understand that the PIC program counter doesdn't automatically increment its highest bits. I think that I need to run code in the first 2k when the timer is just timing, and in the second 2k when an operator is changing the settings. Can anyone tell me (1) how to force some of the code to be compiled into the second 2k block and (2) how to cause the program to jump between blocks? Can this be done within the Basic code or do I have to edit the .ASM file somehow, perhaps using ORG? When writing the Basic code I don't know where the boundary is. I can only see this when it's compiled into a .HEX listing. Any advice greatly appreciated, this is really holding my project back. John Fletcher -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist