Сборку чего?

---------- Post added at 06:05 ---------- Previous post was at 05:55 ----------

О, ответили:
It looks like a peephole rule problem. When compiled with --no-peep the resulting assembly looks correct to me.
Действительно, опция --no-peep генерит:
Код:
	ld	iy,#_i
	ld	a,0 (iy)
	sub	a, #0x03
	jp	NZ,00108$
	jp	00109$
00108$:
	jp	00103$
00109$:
	ld	a,#0x00
	jp	00104$
00103$:
	ld	iy,#_i
	ld	a,0 (iy)
	inc	a
00104$:
	ld	iy,#_i
	ld	0 (iy),a
Ну, то есть peephole не работает, и старая лапша.