Greetings, I managed to get my program coded and fed it into the MAPLAB for simulation. Things started branching about erratically and I went back to the books to read about the PCL, PCLATH and page boundaries. I also read AN556, "Implementing a Table Read". The app note suggests loading the PCLATH with the high order bits of the destination address before doing a CALL or GOTO. I think I understand the general idea, but there are still a couple points where I am confused... For example.... left org 0010 movlw HIGH dest movwf PCLATH movfw offset call dest org 0200 dest addwf PCL goto Asub goto Bsub goto Csub org 0300 Asub .... .... RETURN Now as I understand it you need to preload the PCL before the CALL because 'dest' is NOT in the same 256 byte page of memory. As it turns out, this was in fact what was happening to my program... What confuses me is that the GOTO Asub in the 'dest' table worked without any problems... and it is not in the same 8 bit page of memory either... The RETURN from Asub seems to work ok and I found a terse note somewhere that says this is because the entire 13 bit original address of CALL was saved... However, I noticed that the PCLATH still shows the high order bits for 'dest' after the RETURN. Is this something I am supposed to change back to zero ??? If not, why doesn't this mess something else up after I continue following the RETURN ??? Surely someone has something posted on the net that can clarify this for me... Anyone have a pointer ??? Anyone care to put me on the straight and narrow... Bob Segrest PS: Every time I send mail to the PICLIST, the mail bounces back as undeliverable and I never see a copy of the messages I post come back from the mailing list. However my posts appear to be going out because I see the responses coming back to the mailing list. Is this normal ???