That's a simple problem.
TBoot by default allocates a page for user configuration. This is controlled by the FLASH_DATA_SIZE constant.
You have placed your code in that area which is considered 'illegal'. The idea is you want to protect your user's existing configuration when updating the app. And if your data format changes, you can always have your app overwrite it with or convert it to a new one, if you like.
So, your options are:
1. Zero the size of the reserved-by-default configuration area by adding -dFLASH_DATA_SIZE to your assembly process (if you don't need any user configuration memory).
2. Move your application to start at $E200 (instead of $E000).
3. Add -dALLOW_EEPROM to your assembly process to enable erasing & programming of the reserved data flash used as simulated EEPROM. (Not recommended.)
If you also add the -exp option to asm8 you will get a file ending with .exp extension. This file shows something like the following:
; Generated by ASM8 v9.75 Win32 [Thursday, February 15, 2018 6:55 pm]
bps_300 set $0DA7,0
bps_1200 set $0369,0
bps_2400 set $01B4,0
bps_4800 set $00DA,0
bps_9600 set $006D,0
bps_19200 set $0036,0
bps_38400 set $001B,0
bps_57600 set $0012,0
bps_115200 set $0009,0
APP_CODE_START set $E200,0
APP_CODE_END set $FBFF,0
BOOTROM set $FC00,0
BOOTRAM_END set $0080,0
BOOTROM_VERSION set $0074,0
RVECTORS set $FBC0,0
As you can see APP_CODE_START and APP_CODE_END are the limits of your application memory.
If you zero the default flash set aside with -dFLASH_DATA_SIZE then you will get this for APP_CODE_xxx:
APP_CODE_START set $E000,0
APP_CODE_END set $FBFF,0
Your app (including the redirected vectors) should lie between these two addresses (inclusive).
The vectors can be defined in their default location or their redirected location (both will work). If using the default locations, TBoot will manage them automatically and move them to end at the end at APP_CODE_END.
So, your actual app excluding the vectors should extend no more than one byte before the redirected vectors, see symbol RVECTORS.
Let me know if it worked.