Hi Alain,

With DATA (1), 0 (10). Skip location 0 then write 10 0's. The total is 11. 1 byte skipped, and
10 bytes to be written.

PBP produces asm that looks like this;

ORG EEPROM_START + 00000h
DW 0000000FFh ' locations 0 and 1. Note FF is the skipped location 0.
DW 000000000h ' locations 2 and 3
DW 000000000h ' location 4 and 5
DW 000000000h ' locations 6 and 7
DW 000000000h ' locations 8 and 9
DW 000000000h ' locations 10 and 11

Which looks like this in EEPROM;

0000- ff 00 00 00 00 00 00 00
0008- 00 00 00 00

DW defines a data word, so each word is made up of two bytes. If you write an odd number
of bytes, the most significant byte will be cleared because DW forms everything as a word
value. On the 18F series, program memory (where EEPROM is) is all word aligned.

It's a bit easier to see if you do something like this;

DATA 1,2,3,4,5,6,7,8,9

Which produces;

ORG EEPROM_START + 00000h
DW 000000201h
DW 000000403h
DW 000000605h
DW 000000807h
DW 000000009h

And in EEPROM it looks like this;

0000- 01 02 03 04 05 06 07 08
0008- 09 00 <-- note the msb here is 0

You just have to remember that there will always be an even number of bytes written to
EEPROM. The 18F reference manual shows how this works.