30

Il a mis en commentaire, ce à quoi correspond son appel (SymFindFirst(NULL,FO_RECURSE)), regarde dans la doc de TIGCC à quoi ça correspond.

31

Oui j'ai regardé, enfin pour les arguments c'est bon (0-->NULL,#2-->la cte)

Ah non,c'est bon j'ai tout compris: en fait il fait une recherche sur tous les symboles qui puissent résider sur la catoche, et il compare les noms après
AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser

32

Ouais c'est pour ça que c'est bourrin et que je pense qu'il existe bien mieux, par exemple peut-être la routine de recherche de fichiers de la TICT.
Ensuite quand tu programmes en même temps sur PC et sur calculatrice avec AS, c'est mieux d'utiliser les mêmes techniques et puis le jsr ROMCALL, je sais pas trop comment ça marche, enfin ça me plaît pas. D'ailleurs moi je mets directement les offsets des romcalls quand je programme sur calculatrice parce que ça m'évite d'avoir à inclure le fichier "ams" (j'ai des problèmes de mémoire au sinon sad).
avatar
;)

33

Des problèmes de mémoires?eek T'as combien de fichiers sut ta TI?
AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser

34

DlgMessage = -$1B4 par exemple. C'st ca la différence entre les deux fichier

Ensuite, au lieu de faire
move.l ($c8),a5
move.l DlgMessage*4(a5),a0
jsr (a0)

tu fais simlement
jsr DlgMessage

Compare ce que j'ai posté avec ce que toi tu as fais
AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser

35

Expérimentation pour AS (j'encourage à mettre dans des tutos,même si je si nioob grin )
*************

Utilisation d'un tableau
*intialisé avec des chaines
*affichage avec DlgMessage


Problèmes rencontrés
*****************

des registre utilisés (avant correction), d0,d1 et a0, qui, utilises a long terme,
ont enraine des erreurs
d0,d1==>probleme dans la boucle for
a0==> probleme dans l'affichage des chaines, à partir de eleve[1]

(Pour moi, le court terme se situe entre deux appels de ROMCALL,voire meme fonction si nécessaire, et long terme: si c'est plus large que ca, plus irrégulier)

Programme
*********

include "ams_c"
bra main
even
titre: dc.b 'Eleve',0
even
eleve: ds.l 5
even
eleve1: dc.b 'Jean',0
even
eleve2: dc.b 'Olivier',0
even
eleve3: dc.b 'Jacques',0
even
eleve4: dc.b 'Chantale',0
even
main :
movem.l d3/a5, -(a7)
lea eleve, a5
move.l #eleve1, (a5)
move.l #eleve2, 4(a5)
move.l #eleve3,8(a5)
move.l #eleve4,12(a5)
move.l #eleve5,16(a5)
loopstart:
move.w #0, d3
even
loopmain:
cmp.w #16,d3
bgt loopend

move.w #1,-(a7)
move.w #0,-(a7)
move.l 0(a5,d3.w),-(a7)
pea titre
jsr DlgMessage
lea 12(a7),a7
loopnext:
addq.w #4,d3
bra loopmain
even
loopend:
movem.l (a7)+,d3/a5
rts
AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser

36

Apparamment, tu as résolu tes pb "à court terme", mais je te précise juste qu'un appel à n'importe quel ROM_CALL est susceptible de modifier les registres d0, d1, d2, a0 et a1. Il te faut donc les sauver avant (ou bien en utiliser d'autres)

37

Ok merci, ca m'interessais beaucoup


AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser

38

J'ai trouvé plus rapide pour ouvrir un fichier chaine. (Ma chaine s'appelle exemple et son contenu est "tatayoyo" grin ), il y a la ROMCALL StrToTokN pour transformer une chaine C ANSI en SYMSTR

include "ams_c"

pea symstr
pea variable
jsr StrToTokN
lea 8(a7),a7


move.w #0,-(a7)
move.l a0,-(a7)
jsr SymFindPtr
lea 6(a7),a7

move.w 12(a0),-(a7)
jsr HeapDeref
lea 2(a7),a7

adda #3,a0
move.l a0,-(a7)
jsr ST_helpMsg
lea 4(a7),a7

rts
symstr: ds.b 20 ;(Taille recommandee dans la doc de tigcc)
variable: dc.b 'exemple',0

==> le fichier source est bien réduit
AS: donnons nous les moyens de programmer plus facilement

La solitude, c'est l'occasion de se poser beaucoup de questions que l'on a pas
souvent l'occasion de se poser