Dave,

I have completely re-installed MPLAB (version 6.4.2)

here is what I get on the 252 using your code:

$0000 - $00 $00 $00 $00 $00 $19
$0008 - $42 $A4 $01 $C3 $02 $A3 $C2 $E3
$0010 - $D4 $03 $23 $63 $B4 $FD $3D $0D
$0018 - $85 $E5 $95

I found the following statement regarding the 18Fxxx issue on the melabs site:

If you use DATA or EEPROM to load values into data space at program time, you will encounter inconsistency in the addressing of this data. The Microchip assembler won't address odd-numbered locations in data space. Therefore, you have to multiply the addresses in the DATA and EEPROM statements by 2. The EPIC programmer will correct the addresses at program time, so you can read the values back without the address doubling.

What am I doing wrong ? (apart from not using an EPIC programmer)