Quote Originally Posted by Darrel Taylor View Post
The Flash blocks of 64 bytes are at physical boudaries.
$69A0 is in the middle of the block that begins at $6980.

The next block starts at $69C0.
You have to write exactly 64 bytes per block, and the write to flash doesn't actually happen until the last of the 64 bytes is sent.

Also, there needs to be a space between the @ sign and goto.
thank you Darrel for you response
18f4550 datasheet states that write to program memory is executed on blocks of 32 bytes at a time and program memory is erased in blocks of 64 bytes at a time. i have also checked 18f4550 program memory using programmer, code does get written to flash.
i tired putting space between @ sign and goto it didn't helped much

if i don't use DT_INTS-18 and DT_HID260 then @ goto statement works, i think because there are no interrupts to disturb the @ goto.
but i want to use them because i want USB functionality and easy way of interrupts. so how do i use three of them together DT_INTS-18, DT_HID260 and @ goto

thank you