1

Bonjour, forum !!
Je viens de commencer l'asm depuis quelques temps
et comme tous les newbies, ben je fais des fautes grin
(ca doit etre vraiment bete, sur 20 lignes de code mad )

voila mon prog :

;-------------------------header--------------------
.NOLIST
#include "ion.inc"
.LIST

#ifdef TI83P
.org progstart-2
.db $BB,$6D
#else
.org progstart
#endif
xor a
jr nc,commencement
.db "Interface_port",0

;---------------------------------------------------


commencement:

ld a,0d0h ;On met les 2 fils
out (0),a ;au niveau bas

ld a,0d3h ;Pis
out (0),a ;au niveau haut

ld a,250 ;On met la valeur 250
ld b,a ;dans le registre b

boucle: ;---------------debut-boucle-----------------
ld a,0d0h ;On met les 2 fils
out (0),a ;au niveau bas

ld a,0d1h ;On met le fil ROUGE
out (0),a ;au niveau haut

djnz boucle ;-----------------fin-boucle-----------------

ld a,0d2h ;On met le fil BLANC
ld (0),a ;au niveau haut

ret ;et la c'est terminé

.end
END

Le programme s'assemble et run tres bien, mais
il fait pas ce que je veux!! rage
C'est comme s'y il ignorait la boucle !
bref, euh , HELP ME !!

2

Je ne suis pas très bon en asm mais comme le forum est un peu inactif en ce moment...Je me lance quand même. roll

Je vais essayer de te donner quelques pistes de recherche :
(donc ne t'inquiète pas si mes propositions sont fausses...)

Un saut ne se présente pas sous la forme de :
jp nz,boucle
confus

Qu'est-ce que djnz ?

Ensuite, un saut n'est pas précédé de :
cp a,b

Ton jp nz,boucle serait donc executé lorsque a est différent de b (je crois).

Qu'est-ce que out(0)? confus

Encore une fois, je ne suis pas expert en asm...(loin de là) donc je suis peut-être largement à coté du problème...

J'espère cependant t'avoir aidé, ou au moins avoir aidé à écarter certaines causes du problème. happy

Au fait sur pour quel model est-ce destiné? 83+ 84 84+ je pense?

Bonne chance.

Contra

3

'djnz' sert à décrémenter b et tester s'il vaut 0 et si c'est pas le cas, ça saute au label.

A mon avis si ça bug là c'est que c'est dû à une mauvaise utilisation des ports ou un problème hardware avec ce que tu as branché sur la prise jack.

Juste une chose, tu peux directement affecter un registre avec une constante sans devoir passer par l'accumulateur si mes souvenirs sont bons (donc 'ld b,250' devrait marcher).

4

Ah ba merci de m'avoir repondu ^^

le probleme contra c'est que je peux pas utiliser le "cp a,b jp nz,boucle" , parce que quand j'utilise le port de la ti83 (le "out(0)" ) eh ben le registre a est utilise et je peux plus faire de boucles avec sad
et donc j'ai vu sur le forum la combi du "djnz" grin

Enfin j'ai reflechi et ptet ben que ca va trop vite pour le port parallele (j'espionne le port de ma ti comme ca) mais ca parait bizarre

Ah ba tiens j'avais pas vu qu'on pouvait directement assigner une valeur comme ca aux registres !! cool ca m'économise une ligne smile mais ca resout pas mon probleme sad

je vais voir a l'oscillo la geule du signal , mais c'est etrange que ca aille trop vite pour mon ordi eek

Sinon pour le hardware deeph ca peut que marcher, comme je trouvais pas ces jack bas j'ai carrement ajoute un autre port femelle a cote triso ( de facon propre, hein )

5

enfait ca marche impec!!! une bonne serie de nop (une ptite cinquantaine gol ) et j'ai pu voir les beaux crenaux grin grin
donc le bug est resolu ! ( je savais bien que c'etait un truc tout bete roll )

6

Suggestion:

ld b,250