1

Salut, g lu Zguide et j'ai essayer d'enlever les int et de lire le clavier.
Cependant ca bloque la caltos, voici le code:
testouches:
move.w #$700,d0
trap #1
move.w #%1111111011111111,$600018
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
btst.b #6,$60001B
beq exit2
move.w #%1111111110111111,$600018
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
btst.b #6,$60001B
beq puiss
bra testouches

Puis à puiss et à exit je met:

move.w #0,D0
trap #1


Pourtant je ne pense pas avoir fait de faute avec le zguide mais ca "fige" la caltos et ca enlève les gris...reste plus que le reset.

Aussi, pourquoi dans zguide y'a
MOVE.w #$700,d0 ; Désactive toutes les interruptions masquables
TRAP #1 ; en armant les bits 8, 9 et 10 du registre SR

MOVE.w #0,D0 ; Active toutes les interruptions masquables
TRAP #1 ; en desarmant les bits 8, 9 et 10 du registre SR

Pour activer et désactiver les ints, alors que dans son fichier exemple il met:

MOVE.w #%0000011100000000,D0 ; désactive toutes les
TRAP #1 ; interruptions masquables


MOVE.w #%0000011100000000,D0 ; Active toutes les interruptions masquables
TRAP #1 ; en desarmant les bits 8, 9 et 10 du registre SR

Je me suis dit que le binaire et l'hexa était égaux, mais d'après mes caluculs ce n'est pas le cas, à moins que je ne soit trompé.
En préretraitre

2

pour le binaire/hex/decimal -> y'a un prog sur ticalc : hexbindc.exe

3

Je m'était trompé, c bien la même chose qd il enlève les int.
Cependant, quand il les remets pkoi il met un coup #0, et dans l'autre il met %0000011100000000???
En préretraitre

4

Gris et matrice clavier, c compliqué, demande à frekazoid de t'expliquer...
En fait le gris marche avec les ints, donc si tu bloque les ints, tu bloques aussi le gris. Il faut donc bloquer seulement les ints du clavier, en changeant l'adresse des routines de ces ints en mettant des simples rte
Cours et tutos Asm: http://membres.lycos.fr/sirryl

5

Bon bah si c compliqué, faudrait que frakazoid m'explique wink
Sinon, personne n'a le tuto de Skip Jordan???
Je l'avais mais je l'ai égaré!!!
Je crois qu'il parlait d'une autre méthode qui permettai de scanner le clavier sans enlever les ints mais je suis plus sûrtonguetongue
En préretraitre

6

Alors:

>gugusg: Cependant, quand il les remets pkoi il met un coup #0, et dans l'autre il met %0000011100000000???

Le deuxième %0000011100000000 est éffectivement une erreur. Ça serait évidemment %0000000000000000.

>Pen^2: pour le binaire/hex/decimal -> y'a un prog sur ticalc : hexbindc.exe

Pas besoin de programme. La TI-89/92+ peut le faire sans problèmes.

>gugusg: Bon bah si c compliqué, faudrait que frakazoid m'explique wink

Mets ça avant d'activer les niveaux de gris:
 move.l $64,old_int_1
 move.l $74,old_int_5
 lea.l dummy_int(PC),a0
 move.l a0,$40064
 move.l a0,$40074

et ça à la fin du programme, après de désactiver les niveaux de gris:
 move.l old_int_1(PC),$40064
 move.l old_int_5(PC),$40074
 rts
dummy_int: rte
old_int_1: dc.l 0
old_int_5: dc.l 0


>gugusg: Je crois qu'il parlait d'une autre méthode qui permettai de scanner le clavier sans enlever les ints mais je suis plus sûr tongue tongue

Il y en a plusieures:
1. kbd_queue, un ROM call à procédure d'appel très particulière:
 moveq.l #6,d0
 trap #9

et qui donne le résultat en a0 comme d'habitude.
Il faut ensuite utiliser le ROM call "normal" OSdequeue pour lire de la file d'attente des touches (keyboard queue).
2. Une méthode encore plus facile, mais plus lente: les ROM calls ngetchx et kbhit
[edit]Edité par Kevin Kofler le 23-06-2001 à 14:45:29[/edit]
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é

7

c koi dummy_int ?

8

Merci!!!
Si je met tes fonctions avants d'activer les gray, faut quand même que je désactive les ints dans le prog. Je pense que oui mais je préfère être sursmile
Ca fait quoi tes fonctions??? Ca détourne les int5 pour les gray, ce qui fait que quand on les désactive après les grays marcheront encore?
En préretraitre

9

>gugusg:

>Si je met tes fonctions avants d'activer les gray, faut quand même que je désactive les ints dans le prog.

attention Justement non!

>Ca fait quoi tes fonctions??? Ca détourne les int5 pour les gray, ce qui fait que quand on les désactive après les grays marcheront encore?

Je détourne les interruptions vers des interruptions vides avant d'activer les niveaux de gris. Cela désactive les routines d'interruptions de AMS, mais comme je ne désactive pas totalement les auto-interruptions n°1 et 5, les fonctions de niveaux de gris pourront installer leur propre routine par dessus.
Bref, c'est pour désactiver les routines d'interruptions de AMS sans désactiver les interruptions elles-mêmes.

C'est également expliqué là (mais en C): http://tigcc.ticalc.org/doc/faq.html#86.
[edit]Edité par Kevin Kofler le 23-06-2001 à 15:04:34[/edit]
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é

10

sinon, le idle_loop, y marche plus alors???
Comment il marche idle_loop?? avec les int ou pas???
Merci de tes explications (g pigé le principe mais c'est sûr que pour le refaire tout seul, c pas encore de mon niveau tongue
En préretraitre

11

heu je me repete c koi le dummy_int ?

12

C vrai ca, c quoi???
En préretraitre

13

>gugusg: sinon, le idle_loop, y marche plus alors???

Exact. Il ne marchera plus parce qu'il dépend des interruptions d'AMS.

>oxman: c koi dummy_int ?

Lis les sources: c'est le label d'une routine comportant un simple rte.
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é

14

OK, c clair maintenant!!!
Va falloir que j'enlève tous mes idle_loop et que je les remplace par un scannage du clavier gringringrin
Mais c pas grave pare que ce sera mieux après, et c'est ce qui compte
En préretraitre

15

k m'ci

(mais g pas compris ta source lol)

16

test
En préretraitre

17

Kevin
>>Pen^2: pour le binaire/hex/decimal -> y'a un prog sur ticalc : hexbindc.exe

>Pas besoin de programme. La TI-89/92+ peut le faire sans problèmes.

je sais bien, mais g pas tjs ma ti sous la main, et les copiers coller du binaire c pratique smile
[edit]Edité par Pen^2 le 23-06-2001 à 16:00:32[/edit]

18

Sinon, comment fait-on pour afficher une variable non fixe???
Je sais faire afficher une variable du style:
variable:
dc.b "xxx",0
mais pour afficher une variable:
variable:
dc.b 5
et qui peut varier en faisant un:
sub.b #1,variable
Je sais pas???
confusconfusconfus
Je pense que c'est faisable parce que plein de programme le font, mais là je sèche!!!
En préretraitre

19

convertit simplement le "5" en caractère 5 :
en tibasic :
ord("5") = 53
donc tu fais 53-5=48
et tu additionne 48 a ta variable
bien sur pour une valeur de 0 à 9 !
après t'es assez grand pour faire le reste !

:D

20

Justement, ce que je veut c'est comment convertir en ASM le chiffre 5 en "caractère" 5
comment passer de
dc.b 5
à
dc.b "5",0

[edit]Edité par gugusg le 23-06-2001 à 23:59:55[/edit]
En préretraitre

21

22

merci beaucoup
J'espère qu'on aura plus de smiley dans le forum bientôt!!!cool
En préretraitre

23

bon, je l'ai trouvée:
Valeurs à entrer:

1 = mot (x)

2 = mot (y)

3 = mot (couleur)

4 = octet (la variable à afficher)

3 = 0, la chaine sera affichée en blanc sur noir

3 = 1, la chaine sera affichée en noir sur noir

3 = 2, la chaine sera affichée en faisant un ou exclusif

3 = 3, la chaine sera affichée en gris sur blanc

3 = 4, la chaine sera affichée en noir sur blanc

Macro:

Nombre MACRO
move.l (4),-(a7)
pea sFormat(pc)
pea string(pc)
jsr tios::sprintf
lea 12(a7),a7
move.w 3,-(a7)
pea string(pc)
move.w 2,-(a7)
move.w 1,-(a7)
jsr tios:grinrawStrXY
lea 10(a7),a7
ENDM



G quelques questions:
à quoi sert une macro en particulier, et quel est son avantage par rapport à:
Nombre:
x
x
x
rts
quelque part dans le programme...

est ce que:
pea xxx(pc) et
lea xxx,-(a7)
sont équivalent. Si oui quel est le + rapide!!!

Que sont sFormat(pc) et string(pc) (peut-être des
appels en rom???) et à quoi sert la fonction du tios "sprintf"

En espérant ne pas trop vous déranger, je préfèrerait une réponse dans mon mail parce que je part 5 jours, alors ce sera plus simple pour moi!!!
merci tongue
En préretraitre

24

>gugusg:

>à quoi sert une macro en particulier, et quel est son avantage par rapport à:
>Nombre:
>x
>x
>x
>rts
>quelque part dans le programme...

Une macro correspond à ce que l'on appelle une "fonction inline" dans les langages de types fonctionnels comme le C, alors que l'autre solution correspond à une fonction "normale". L'avantage d'une "fonction inline" est de gagner en vitesse en supprimant les sauts à faire (bsr et rts). Mais attention, il y a aussi un désavantage: les "fonctions inline" font que l'on recopie le code à chaque utilisation et sacrifient donc la taille pour la vitesse. Dans certains cas, l'augmentation de la taille ne se justifie pas par l'accélération.

>est ce que:
>pea xxx(pc) et
>lea xxx(pc),-(a7)
>sont équivalent. Si oui quel est le + rapide!!!

Théoriquement oui (à condition de rajouter le (pc) au lea). En pratique, lea xxx,-(a7) n'existe pas (!), donc la question de la vitesse ne se pose pas.

>Que sont sFormat(pc) et string(pc) (peut-être des
>appels en rom???) et à quoi sert la fonction du tios "sprintf"

La fonction sprintf est documentée ici: http://tigcc.ticalc.org/doc/stdio.html#sprintf.
Comme la déclaration de sprintf te suggèrera peut-être, tu es censé avoir des labels dans le programme:
sFormat: ;format de la chaîne
 dc.b '%lu',0 ;unsigned long int (entier de 4 octets non signé) + 1 octet nul *
string: ;buffer pour le résultat
 ds.b 11 ;taille de 2147483648, nombre le plus grand tu type "unsigned long" spécifié plus haut + 1 octet nul *

;* Les octets nuls correspondent à la convention C pour la fin des chaînes de caractères.


PS: Je t'ai envoyé une copie de ce message par mail.
[edit]Edité par Kevin Kofler le 24-06-2001 à 22:38:02[/edit]
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é

25

test