Non dans tous les cas il te faut un "ret" pour retourner à l'adresse stockée dans la pile. Mais bon c'est tout simple et y'a pas besoin de jouer avec la pile à mon avis :
boucle:
ld hl,$0001
ld (currow),hl
ld hl,(numerau_essaye)
ld h,0
bcall _disphl
bcall _getkey
ld hl,numerau_essaye
dec a
push af
call z,droite ; 'a' est détruit durant la routine donc il vaut mieux le sauver avec la pile
pop af
dec a
; etc...
cp 4
jp nz,boucle
ret
droite:
ld a,80
cp (hl)
ld a,(hl)
jp m,droite100
add a,20
ld (hl),a
ret
droite100:
sub 80
ld (hl),a
ret ; ici on retourne simplement où l'appel à la routine "droite" a eu lieu...