Can someone tell me why the code below doesn't work?

I'm using an 18F8722. All variables are WORDs.
I do get the proper output for 4 words, starting at
$1F38, but all the other bytes are $FF. I'm on an even word boundary, and $1F00 divides evenly by 64, so I should also be on a block boundary.


For AA = $1F00 to $1F3F STEP 2
ERASECODE AA
NEXT AA

For BB = $1F00 to $1F3F STEP 2
WRITECODE BB,$5555
NEXT BB

For CC = $1F00 to $1F3F STEP 2
READCODE CC,DD
HSEROUT [HEX4 CC," ",HEX4 DD,13,10]
NEXT CC