Explanation:
(SP) ← $00F0 Initialize SP away from program and data memory
IXH ← (START_ADR) = ($20), IXL ← (START_ADR +1) = ($21)
Initialize IX with the starting address of the block to be filled. IX will always point at teh next address to fill.
ACCB will contain the next value to write out to memory. The first value written is '00'. ACCB ← '00'
Write the next value out to the next address of the block (IX) ← (ACCB)
Point IX at the next address to write to IX ← (IX + 1)
ACCB contains the next value to write to memory ACCB ← (ACCB + 1)
If (ACCB) ≠ then all values have not been written, so branch and write another.
If ACCB ≠ 0 then PC ← WR_AGAIN otherwise (PC) = FINISHED
If get here then all 256 bytes are written, stay here.