For WRITECODE, my PBP manual (2.60) states (p. 176):

If interrupts are used in a program, they must be turned off (masked, not DISABLED) before executing a WRITECODE, and turned back on (if desired) after the WRITECODE is complete.

It recommends using

DEFINE WRITE_INT 1

1. Is this likewise necessary with DT interrupts?

2. Is this also the case with ERASECODE? (The manual does not say.)

3. Is this a toggle?

And . . .

4. The manual gives the syntax:

ERASECODE Block

If a block is 32 words (16F88), may I assume that this can be done in a loop, incrementing the STEP by 32 ($20) each time?