Posté le 24/11/2007 à 13:49 Membre depuis le 15/03/2005, 3470 messages
Yep,

Comme le dit le titre j'ai un problème lors de la création d'une AppVar pour mon programme. Après une petite recherche sur WikiTI, voilà ce qu'on me dit :

ld hl,appvarName
RST rMov9ToOP1
ld hl,10
B_CALL CreateAppVar

appvarName: db AppVarObj,"VARNAME",0


Déjà je croit que le 'RST rMov9ToOP1' est égal à un 'bcall(_Mov9ToOP1)' et que ça doit mettre le contenu d'hl dans op1. Mais dans les deux cas ça ne marche pas (même en remettant le contenu d'op1 à zéro avant d'essayer de la créer sad)...

Ensuite, c'est bien la longueur du nom de l'AppVar qu'il faut mettre dans hl ? Si c'est ça j'ai pas compris pourquoi je doit mettre 10 dans hl si le nom ne fait que 9 octets (en comptant le 0).
Posté le 24/11/2007 à 15:21 Membre depuis le 06/02/2006, 349 messages
Nan c'est la taille de la variable qu'il faut mettre dans HL :

(83psysroutines.pdf) (p356) :

Inputs :
Registers :
HL = size of AppVar to create in bytes
Flags :
none
Other :
OP1= name of the AppVar to create


Ensuite "RST rMov9ToOP1" c'est bien "bcall(_Mov9ToOP1)" et ça met bien le contenu de HL dans OP1

L'exemple qu'ils donnent dans le "manuel officiel" (http://education.ti.com/guidebooks/sdk/83p/83psysroutines.pdf)
c'est :
LD HL,DOGname
RST rMOV9ToOP1          ;OP1=name
LD HL,50
B_CALL  CreateAppVar ;if returns then variable created

DOGname:       DB     AppVarObj,'DOG',0
Posté le 24/11/2007 à 15:24 Membre depuis le 15/03/2005, 3470 messages
(Nan mais j'avais déjà essayer avec ça et ça ne marche toujours pas...)

Ouaip sinon je me disait bien que ça ne pouvait pas être la taille du nom.

edit : Erf je viens de trouver le bug, j'avais un flag de désactivé quand j'appelai la rom call, du coup ça faisait n'importe quoi cheeky
Posté le 24/11/2007 à 16:52 Membre depuis le 11/04/2007, 1076 messages
Dsl, j'y connais rien, mais faudrait regarder dans la source de Celtic2 qui a cette fonction... (sur unitedti.org)