110112Fermer
deephLe 16/10/2012 à 20:56
Erf en déboguant mon propre code je me suis rendu compte qu'il faut se méfier des rom calls _setxxop1 et _dispop1a (du moins pour s'en servir comme un "_vdispA" sorry) :

_vdispa:
	bcall _setxxop1
	ld a,3 ; (ou plus)
	bjump _dispop1a

Apparemment il faut mettre le nombre de "digits" à afficher dans l'accumulateur avant d'appeler _dispop1a (ce qui est débile, il ne peut y en avoir que 3 au maximum de toute façons, non ?), sinon il est possible de tout faire bugger ( cf http://www.cemetech.net/projects/uti/viewtopic.php?p=129413#129413 ), et en plus de ça d'après mes tests ces rom calls buggent de toute façons sur certaines ROM (notamment TI 84+ 2.41 et supérieures)... Ou alors je m'y prend mal (mais bon elle n'est pas documentée sur le wikiti...) :/

D'autres avis (chickendude, contra) ?

Autrement il y a une autre version tirée de Bubble Bobble (de Dwedit), peut être pas plus optimisée mais plus sûre :

_vdispa:
	ld h,0
	ld l,a

_vdisphl:
	push de
	push hl
	ld de,op1+5
	xor a
	ld (de),a

_vdisphl_loop:
	bcall _divhlby10
	add a,'0'
	dec de
	ld (de),a
	ld a,h
	or l
	jr nz,_vdisphl_loop
	ex de,hl
	bcall _vputs
	pop hl
	pop de
	ret

D'ailleurs je viens de me rendre compte qu'il y a du link dans ce jeu, ça vaudrait peut être le coup d’œil...

edit : Autrement quelqu'un sait pourquoi "bjump _vputmap" bug complètement ? Ça m'a pris la tête pendant 30min sorry