30

ou ca ?
pour les rom call ?
pour les rom call, ya pas de pb...
avatar

31

Ouais, pour les rom_call.
Ben, a part ça, je vois pas vraiment ou il pourrait y avoir un prbm. Bon, faut dire aussi que je suis pas une référencegrin
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

32

Et puis, c'est le seul truc que j'ai à peu prés comprisrotfl
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

33

Est-ce que tu sais comment qu'on fait pour créer une variable exploitable par AMS ?
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

34

ben normalement mon prog cree une srting...
(je crois que j'ai trouvé la ou ca buggue : c l'addresse que renvoie DerefSym qui est mauvaise)
avatar

35

*Tu gère mal la rom call DerefSym. Elle renvoie un pointeur. Il faut que tu le prennes dans a0, et non dans d0.
fait move.l a0,a4 ;on sauve la SYM_ENTRY

*La rom call HeapDeref a besoin comme paramètre un handle, qui tient sur un mot.
fait move.w d0,-(a7) ;on empile pour dereferencer
et un addq.l #2,a7 après.

*move.l d0,a4 ;on sauve le pointeur
>fait movea.l a0,a4, car HeapDeref renvoie une adresse.

*à la fin:
addq.l #1,a4 ;0.b
>efface le vraiment, un nouveau bloc alloué n'est pas forcément initilalisé à 0.
fait clr.b (a4)+

*move.w $32,(a4)+ ; sign du kernel .w , 0.b
a4 pointe sur une adresse impaire, tu auras une address error
fait un truc de ce genre:
move.b $32,(a4)+
move.b $33,(a4)+


* move.b #45,1(a4) ;STR_tag .b
ici encore, tu dois absolument effacer à la main l'octet d'avant.
Fait un clr.b (a4)+ puis un move.b #45,(a4).

Attention, avec ton programme, s'il n'y a pas de kernel installé, ça renverra une chaîne vide.
Ah oui, et n'oublie pas de verifier si "kerinfo" est archivé, et désarchive le dans ce cas.

36

oui merci smile
pour les a0 au lieu de d0 j'aivais deja trouvé...

pour le reste : merci encore :


gwahooo ca marche oui

enpuis si il n'y a pas de kernel : oui je l'avais prévu, c plus simple ainsi
pour l'archive : si c archivé, ca va créer une var twin en ram non ?
[edit]Edité par azerty83 le 12-02-2002 à 22:23:46[/edit]
avatar

37

Et c'est quel partie de ton prog qui créer la chaine ?
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

38

ben tout...
(de la creation de l'entree dans la vat a l'allocation de la memoire en passant par le remplissage de la zone allouée)
avatar

39

>azerty83 : pour l'archive : si c archivé, ca va créer une var twin en ram non ?
ouais, en fait c'est pas très gênant, c'est juste que quand on resetera la calc, on tombera sur l'ancien valeur de kerinfo, au moment ou on l'avait archivée, et pas sur sa dernière valeur.
[edit]Edité par ExtendeD le 13-02-2002 à 21:03:24[/edit]

40

ouais...
de toutes facons si on reset, yaura plus de kernel tongue
et puis je ne sais pa sdu tout comment archiver, effacer des variable alors tongue
avatar

41

Merci, azerty83, et pour l'amélioration, je vais en plus donner la version du kernel installétongue
Avec ce que tu m'a filé, je pense pouvoir me débrouilléwink
Et merci ExtendeD d'avoir aidé azerty83smile
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

42

enfi la version ca ve etre goret a utiliser, c du decimal representé en hexa...fou
avatar

43

Pourquois ?
suffit de faire un ord(var). Ca te renvois le truc en déçimale. Et il suffit de traduire en hexa (tu vas pas me dire que tu sais pas faire ça pour avoir la version)grin
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

44

oui enfin c goret...
(tu renvoie ca dans une expr ou une string ?)
avatar

45

ben string, c'est plus simple à exploiter.
Ce serait bien si ça l'envoyer dans une list (OS+version), mais je sais pas comment on faitsad
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

46

J'ai un petit prbmgrin
Bon, j'ai repris entièrement les sources de azerty83, j'ai fait un copié-collé à la suite du premier (sauf l'entète), j'ai changer les adresses de RAM ($32 et $33 par $30 et $31), j'ai déplacer dc.b 'kerninfo' pour le mettre à la fin (et que j'ai remplacer par kername) et j'ai ajouter un dc.b 'kerver' à la fin juste au dessous.

Quand je le démarre, j'ai l'écran qui s'efface (sauf la sl) puis qui se redessine et j'ai PO (pour preos) qui est stcké dans kervar. Kername est ignorer.

Voici la source (un peu longue) :

include "OS.h"
xdef _nostub
xdef _ti92plus
xdef _ti89
movem.l a4-a5,-(a7)
move.l $c8,a5

pea.l sym(pc)
move.l SymAdd*4(a5),a0
jsr (a0)

move.l d0,(a7)
move.l DerefSym*4(a5),a0
jsr (a0)

move.l a0,a4

move.l #7,(a7)
move.l HeapAlloc*4(a5),a0
jsr (a0)

move.w d0,12(a4)

move.w d0,(a7)
move.l HeapDeref*4(a5),a0
jsr (a0)

move.l a0,a4
move.w #5,(a4)+
clr.b (a4)+
move.b $32,(a4)+
move.b $33,(a4)+
clr.b (a4)+
move.b #45,(a4)
dc.b 0,'kername'

pea.l sym(pc)
move.l SymAdd*4(a5),a0
jsr (a0)

move.l d0,(a7)
move.l DerefSym*4(a5),a0
jsr (a0)

move.l a0,a4

move.l #7,(a7)
move.l HeapAlloc*4(a5),a0
jsr (a0)

move.w d0,12(a4)

move.w d0,(a7)
move.l HeapDeref*4(a5),a0
jsr (a0)

move.l a0,a4
move.w #5,(a4)+
clr.b (a4)+
move.b $30,(a4)+
move.b $31,(a4)+
clr.b (a4)+
move.b #45,(a4)

addq.l #4,a7
movem.l (a7)+,a4-a5
rts
dc.b 0,'kername'
dc.b 0,'kerver'
sym:
dc.b 0


Normalement, ça devrait mettre PO dans kername et ÿG dans kerver.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

47

Tu viens de faire tourné sous tes yeux l'anti-crash de PreOS (remercie le au passage de ma part smile).
En asm, quand tu fais dc.b "...", tu forces le compilo à écrire dans le programme des données et non des instructions, et les données restent dans l'executable exactement à l'endroit ou tu les as déclarées. Si tu le mets juste après une instruction, la calc croira que ces données sont aussi des instructions, et essaiera de les executer, et donc risquera de planter.
Il faut donc mettre tout les dc.b à la fin de ton programme, après ton rts final.

48

Vive PreOS !!!rotfl

PreOSbangbugs

Sinon, même en mettant tous les dc.b aprés le rts, ça me renvois toujours pas la version du kernel. Kername est toujours aussi bassement ignoré.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

49

deja il faut que tu mette 2 labels (sym1 et sym2) si tu veux pouvoir utiliser les 2 noms...
a la fin, fais :

dc.b 0,'kername'
sym2:
dc.b 0,'kerver'
sym1:
dc.b 0


je pens que ca ira mieux
(pour le reste, g po regardé)
avatar

50

Maintenant, grace à azerty83, c'est ÿG qui est stocké dans kername et kervar qui est ignorerrotfl
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

51

ben moi je verrais bien ca :
 include "OS.h" 
 xdef _nostub 
 xdef _ti92plus 
 xdef _ti89 
 movem.l a4-a5,-(a7) 
 move.l $c8,a5 

 pea.l sym[4]1[/4](pc) 
 move.l SymAdd*4(a5),a0 
 jsr (a0) 

 move.l d0,(a7) 
 move.l DerefSym*4(a5),a0 
 jsr (a0) 

 move.l a0,a4 
 
 move.l #7,(a7) 
 move.l HeapAlloc*4(a5),a0 
 jsr (a0) 

 move.w d0,12(a4) 

 move.w d0,(a7) 
 move.l HeapDeref*4(a5),a0 
 jsr (a0) 

 move.l a0,a4 
 move.w #5,(a4)+ 
 clr.b (a4)+ 
 move.b $32,(a4)+ 
 move.b $33,(a4)+ 
 clr.b (a4)+ 
 move.b #45,(a4)  

 pea.l sym[4]2[/4](pc)  
 move.l SymAdd*4(a5),a0 
 jsr (a0) 

 move.l d0,(a7) 
 move.l DerefSym*4(a5),a0 
 jsr (a0) 

 move.l a0,a4 
 
 move.l #7,(a7) 
 move.l HeapAlloc*4(a5),a0 
 jsr (a0) 
  
 move.w d0,12(a4) 
 
 move.w d0,(a7) 
 move.l HeapDeref*4(a5),a0 
 jsr (a0) 
 
 move.l a0,a4 
 move.w #5,(a4)+ 
 clr.b (a4)+  
 move.b $30,(a4)+  
 move.b $31,(a4)+ 
 clr.b (a4)+ 
 move.b #45,(a4) 

 addq.l #4,a7  
 movem.l (a7)+,a4-a5 
 rts 
 dc.b 0,'kername' 
sym1:
 dc.b 0,'kerver' 
sym2: 
 dc.b 0 
avatar

52

No such op-codeconfus a pu clavier sur PC¸ sorrymourn
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

53

Vive les clavier quand mêmerotfl
TI-GCC me dit : "No such op-code" à chaque ligne.
Ce qui veu dire, si j'ai bien traduit, ce n'est pas une instruction connus. J'ai l'impression qu'il à pété un cable, luitongue
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

54

Vérifie que tes instructions commencent bien par un espace et que cet espace soit un vrai (pas un espace protégé).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

55

Effectivement, ça peut servirgrin
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

56

Ca fonctionne !!!!
Mal, mais ça fonctionnegrin
Bon reste plus qu'a faire en sortes de ne pas faire intervenir l'anti-crash de PreOS.
ExtendeD à dis que c'était à cause des dc.b qu'il fallait mettre aprés le rts final. Si c'est un rts final, c'est qu'il faut en mettre un avant.
Je dirais... aprés le move.b "45,(a4). Si c'est pas ça, je me demandait aussi s'il faillait pas mettre un plus aprés ce même a4.
Me tromperais-je ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

57

Non, le rts est bien placé. C'est juste que tu as mal rafraîchi la pile. Remplace le addq.l #4,a7 à la fin par addq.l #8,a7.
Et ça peut s'optimiser tout ça avec des sous-routines, la création des 2 variables est presque identique.

58

Ok. Ben, en fait, je suis encore pire qu'azerty83, donc déjas, un truc qui fonctionne, ce serait déjas biensmile
Aprés, on verras pour l'opticool
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

59

Au fait, ça change quoi qu'on mette 4, 8 9, 10.... ?
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

60

4, 8 9, 10 ?
confus
heu dequoi que tu parles là ?
avatar