>After a number of frustrating hours and much fiddling, I discovered that the > problem occured only when the >program reached 256 bytes. If you use a table, or anything that does a "addwf PCL", you must make sure that PCLATH is set correctly. For most programs without a lot of tables, just making sure your tables are within the first 256 bytes is enough. You will never need to worry about PCLATH. If you have a large table, that ends up being a problem, because a table can't cross a page boundary, meaning tables must be less than 256 bytes in size. If you have a table that is in a page other than the first 256 byte page, you must set PCLATH before calling the table, as in: movlw 1 ;this is the upper byte of address 100h movwf PCLATH call MyTable org 0x0100 ;this places the table at exactly address 100h MyTable addwf PCL retlw number retlw anothernumber retlw etc.... This isn't complete, but you'll probably get a few more replies to your question, and between this, that, and the 16c84 datasheets, you'll see what is happening. Cheers, Bob