Jaa, hogy ilyen kis tömbről van szó, akkor az, amit említettem, fölös, mert nagyon helypazarló, viszont, ha jól látom az ix+4 tárolja az I változót, amit A-ba töltesz, és hasonlítod össze az L-lel, ha A kisebb, mint L, akkor lesz C, így nem hajtódik végre a ciklusod.
JR NC, END_FOR_i ,és JR NC, END_FOR_j kéne
meg még egy dolgot kiszúrtam a i=i+2-nél:
LD (IX+5),A helyett LD (IX+4),A kéne.
de a j++ megvalósítható INC (IX+5)-tel
az i=i+2 meg:
INC (IX+4)
INC (IX+4)-gyel
Nem tudom milyen fordítót használsz, van pár, ami nem szereti a LD BC,HL-t, mert ilyen z80 utasítás nincs, ha szereti a fordító, hagyhatod így is, de úgy látom fölösleges is ez az utasítás, mert:
LD L,(IX+2)
LD H,(IX+3) ; HL <- base address of char tomb[][]
LD BC,HL ; BC <- base address of char tomb[][]
helyett
LD C,(IX+2)
LD B,(IX+3) ; BC <- base address of char tomb[][]
ez is megadható