For endless loops at the end of a program, or if I want an "infinite" delay during an interrupt-driven program, I use: goto $ at the end of my functional program. Note that you cannot use the assembler "END" statement as a program terminator. It's only used for the assembler itself to let it know there are no more instructions to process. If you do not REALLY terminate your program prior to this (with a SLEEP, for example), or keep it looping, it will act as a reset and start over at ORG 0x000. --Andrew _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.