Hi, Ryan Miller wrote: -snip >occasionally lose it. I'm trying to understand why the read >doesn't work sometimes (very rarely). In your other message >you mention not to trust PCLATH. Can it change somehow after >I load the high address byte in? Interrupts are disabled >during this portion of the program. Yes, was abit stressed out last night, first I missed Your statement about irq disabled, then I also missed the portion where you set-up PCLATH. Netherless today I re-read Your message and still think that PCLATH could be the culprit. Maybe not directly in this routine, but after the call PCLATH contains the value of high(ascii_con1). The next call/goto or tablejump could then potentionally jump to never-never land. As far as I have learned ( the hard way :) ) messing with PCLATH at one place in Your program can break havoc on other portions. Therefore to be safe set PCLATH = to high($) after the call to this routine and see what happens. Read the thread in August titled 'Paging issues', also the thread 'PCLATH lowest three bits ? never changes ?' in April, which was when I had the aha ! experience ;) ( available among others at keyzer list at: http://www.infosite.com/%7Ejkeyzer/piclist/index.html ) /Tony Tony K=FCbek, Flintab AB = =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2= =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2= =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2 E-mail: tony.kubek@flintab.com =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2= =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2=B2= =B2=B2=B2=B2=B2=B2=B2=B2=B2=B2 -- http://www.piclist.com hint: PICList Posts must start with ONE topic: "[PIC]:","[SX]:","[AVR]:" =uP ONLY! "[EE]:","[OT]:" =Other "[BUY]:","[AD]:" =Ads