14Fermer16
deephLe 08/08/2011 à 12:48
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...