I would like to thank all of you that replied to this request. I have completed the bootloader and publish the following tips on the changes required. Please contact me if you would like help or a copy of the final code.
Differences in QE128 and HCs08 bootloaders
1. Illegal instruction (ILOP) on HCS09 ($8D) is now a legal QE128 instruction.
Changed value from byte to work ($9e1f). This increased code size.
2. Protection block size increased from 512 to 1024 bytes, so saved relocation
vector address REL_VECT changed from $FDC0 to $FBC0. Since the nterrupt vectors ar no longer
redirected, only the relocated reset vector at address $FBFE is used to vector to the
start of the application.
3. Also, since the interrupt vectors ar no longer redirected, the original vector table
must point to code used to go to the real vecots. This required coordination with the
application program. The bootloader and application progam must coordinate in this redirection.
e.g. Vector at location $FFCE is My_Timer2_Interrupt and
My_Timer2_Interrupt has instruction JMP, (int) Timer2_Interrupt pointing to usual ISR.
4. Protection bit in NVPROT.FPOPEN changed from 0 to 1 to protect bootloader flash.
5. Removed test of SRS for false (short) reset pulse.
6. Added data block corresponding to SIZE = 128 for QE128 flash size and locations.
7. Modifications will also be needed to handle loading memory in pages for addresses above 64K.