Gentlemen, 1. Calculate the absolute address for the data (with a 16 bits add subroutine). 2. Transfer the value of high byte of the address to 0x0A. 3. Transfer the value of low byte of the address to 0x02. 4. PC has changed and program jumps to the address of the data. 5. At the address, program returns with the data in work register. Is it applicable to 16C73A? I have tried in MPLAB and seems to be ok. But I wonder why it doesn't change the current address after finishing step 2 . Any explanation? Best regards, Xinhua Rong, BG6CR Computer of CS University of Science and Technology of China _____________________________________________ JW6 G)C{SJ<~ SJ<~5c TZO_SNO7 MxIOADLl MxIO9R:E =pHZMu9z TZO_I16> LxTiJP3! Hm<~OBTX P]OPSi@V