60

La ROM Call ngetchx fait l'attente toute seule. Pour les codes, c'est ceux de TI-Basic un peu différents (http://tigcc.ticalc.org/doc/kbd.html#ngetchx)

61

M.ExtendeD, je peux donc faire key_left equ #337 ou je peux mettre directement key_left ?

62

Tu peux faire "key_left equ 337" puis utiliser cmp #key_left... etc.

63

Mercci M.ExtendeD, on m"a dit qu'il était mieux de prévoir pour les 89, 89TI, et V200 en plus; c une grosse galère si les codes ne sont pas les memes !

64

D'où l'interêt des RAM Calls du kernel qu'on définit soit même et qui prennent dynamiquement à l'exécution la bonne valeur en fonction du modèle.
Sinon tu utilises les macros du préprocesseur de l'assembleur pour mettre des conditions autour de tes equ.

65

Dites, après ngetchx, comment fait-on pour masquer l'effet de l'appui sur les touches maj, diamond, hand, second ?

66

Ca devient plus complexe, il faut passer par les ports $600018 et $60001B pour faire une lecture de clavier bas niveau (doit y avoir des tutoriaux là-dessus).

67

j'ai lu un truc la dessus mais en quoi çà peur inhiber l'appui sur les touches dont je parlais ?

68

C'est-à-dire, empêcher l'affichage des icônes correspondantes, ou pour qu'un combo se comporte comme un appui simple ?
Dans les 2 cas, tu ne peux pas passer par les routines de l'AMS, et tu dois réimplementer à la main une routine de lecture de touches bas-niveau (ou passer par les routines de la bibliothèque statique de TIGCC, cf kbd.h, tout est documenté).

69

c'est bien pour empecher l'affichage des icones correspondantes lesquelles polluent l'écran dessiné !
Je préferre réimplémenter à la main.

70

Comme tu veux. Personellement j'arrête le support dans ce cas.

71

Qu'entends-tu par là ?

72

Que ce ne sera pas moi qui répondra à tes questions là-dessus smile

73

Je ne voulais pas que çà te dérange, je voulais juste obtenir un lien ou deux là dessus. dsl si je t"embete!

74

Meuh non. Je poste pas si quelqu'un m'embête, c'est encore plus simple smile

75

Comment fait-on pour afficher le contenu d'un registre et en fait qu'est-ce qu'on ne peut pas mettre directement dans un registre de données ?
Où trouver de la doc sur la taille en octets de ce que l'on met dans un registre ?

76

un regisre, c'est 32 bits, donc 4o
comment ça, ce qu'on ne peut pas mettre directement dans un registre ? confus
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

77

Oui, merci M.Flanker, par exempla un chiffre négatif, une chaine de caractere, comment fais-on pour afficher çà ? Avec drawstr ? Non!

78

printf plutôt.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

79

Merci M.Sasume, cad pareil qu'avec drawstr ?

80

une chaîne de caractères, ça ne tient pas dans un registre. Le registre (d'adresse) va servir à dire où est placée la chaîne
 lea    coucou(pc),a0
 move.l 200,a5
 move.w  #4,-(a7)
 move.l  a0,-(a7)
 move.w  #8,-(a7) ; ordonnée
 move.w  #10,-(a7) ; abcisse
 move.l  1700(a5),a0;DrawStrXY
 jsr     (a0)
 lea     10(a7),a7
 rts
coucou:
 dc.b  "Salut, ça farte ? "


pour les nombres, il faut d'abord les convertir en chaîne de caractère, regarde la doc de printf pour le faire
(ou comme tu peux essayer de faire une fonction de conversion à la main, en sachant que le code de '0' c'est 48, '1' => 49, etc...)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

81

En fait pour les chaines de caractère j'ai bien compris sauf que j'utilise le drawstr. Par contre je vois pas dans la doc sur printf comment on convertit un chiffre en chaine et puis si on convertit un chiffre en chaine, pourquoi utiliser printf pour l'afficher et pas drawstr ? Je suis paumé !

82

En fait je voulais juste faire une boucle qui compte de 1 à 1000 par exemple, en affichant 1, 2, 3,... ; histoire de comparer la vitesse par rapport au basic...

83

printf réalise la conversion numbre->chaine et l'affiche.
drawstr affiche seulement une chaine de caractères.
sprintf réalise seulement la conversion nombre->chaine (et bien d'autres conversions, en fait, on parle plutôt de formatage, réfère toi à la doc de printf).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

84

Ah bon, mais ce n'est pas une rom_call, comment l'appelle-t-on ?

85

On appelle les fonctions pareil que les romCall, on empile les paramètres puis on fait un saut.
move.x xx,-(a7)
...
jsr nomDeLaFonction
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

86

J'ai fait çà, çà ne marche marche:
move.w #1000,d0
move.w #1,-(a7)
move.w d0,-(a7)
move.w printf*4(a5),a0
jsr (a0)

çà me mets relocatability error sur la ligne du printf

87

bsr printf
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

88

çà, çà ne marche pas et puis je comprends pas:

move.w #1000,d0
move.w #1,-(a7)
move.w d0,-(a7)
bsr printf

89

Mais printf il lui faut une chaine de format pour décrire ce qu'il va recevoir, va voir la doc à printf.
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

90

printf est une routine de tigcclib.a, donc il faut que tu linkes tigcclib.a à ton projet pour que ça marche.
Renseigne-toi sur le fonctionnement de cette routine sur internet, il y a énormément de doc.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »