I was obviously up too late last night and forgot to include a couple of important items in regard to putting the boot loader at the end of code space. The boot loader would start programming at address 0x00 - the first 3 lines would always be the same but the 4th line would be resolved by the compiler to reflect the actual start location of user code. BOOT.asm would never have to change once it was loaded because it will always jump to location 0x03 which in turn jumps to user code. org 0x00 movlw high(BootLoader) movwf PCLATH goto BootLoader goto ColdStart ;jump point for boot loader org 0x04 ;ISR stuff near the end of code space, BootLoader ;test TX line and either enter the boot load routine or reset PCLATH and jump to 0x03 which in turn jumps to ColdStart. I'm thinking that I'd want to test for the cause of the reset - if it was *not* MCLR, just clear PCLATH and jump to 0x03. Tony - would it be possible for you to create a version of ROMzap.exe that starts at 0x00 instead of 0x80? Better yet, is it worthwhile to make the first line of zap.dat contain the start address? That would allow us to play around with different memory schemes. Thoughts, comments? dwayne Dwayne Reid Trinity Electronics Systems Ltd Edmonton, AB, CANADA (780) 489-3199 voice (780) 487-6397 fax Celebrating 16 years of Engineering Innovation (1984 - 2000) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Do NOT send unsolicited commercial email to this email address. This message neither grants consent to receive unsolicited commercial email nor is intended to solicit commercial email.