Oui c'est dans ce sens à cause des djnz.
Sinon voilà en gros l'explication :
map_display:
bcall _grbufclr
ld c,5 ; nombre maximum de tiles verticaux +1
map_display_y:
ld b,6 ; nombre maximum de tiles horizontaux
map_display_x:
push bc
call tile_display
pop bc
djnz map_display_x ; on s'occupe d'abord des tiles horizontaux (de droite à gauche)
dec c ; d'où le +1
ld b,c
djnz map_display_y ; et ensuite des tiles verticaux (de bas en haut)
call ionFastCopy
ret
Pour le reste, oui il y a un push/pop bc en trop, merci de me le faire remarquer !
dec c
ld a,(map_x)
add a,b
ld h,0
ld l,a
ld a,(map_y)
push bc