1

J'ai essayé de me faire un _rowread avec AS : le programme efface l'ecran et attend un appui sur la touche ESC.
Mais le problème, c'est que ESC est une touche de la colonne0, et moin programme s'arrête des qu'une touche de la colonne 0 est pressée, et non pas que pour la touche ESC.

voila ma source  include "ams"    link a6,#-3840    pea 3840  pea $4c00  pea -3840(a6)  jsr memcpy  lea 12(a7),a7  jsr clrscr touche:  move.w #$ffbf,$600018  nop  nop  nop  nop  nop  nop  nop  nop  nop  nop  nop  nop  btst.b #0,$60001b  bne touche  pea 3840  pea -3840(a6)  pea $4c00   jsr memcpy  lea 12(a7),a7    unlk a6  rts 
Le gentil timide du 64

2

Tu dois faire un AND entre un masque et la lecture du port pour avoir la touche désirée.

3

C'est quoi dans mon exemple? (J'ai pas très bien compris ce que tu as voulu dire)
Le gentil timide du 64

4

pour esc, c le dernier bit sur la colone 0 je crois

5

Ben, c'est que j'ai fait? Mais ca reagit aussi avec ENTER, (-) , ... toutes les touches de la colonne 0 !
Le gentil timide du 64

6

tu as fait un and 1<<6 (ou 8, je sais plus) what

pke quand tu testes une colonne, tu testes toutes les touches d'une colonne ... et il te faut selectionner une touche maintenant ... smile
tu fais ca en faisant un AND avec le bon bit

7

J'ai essayé comme tu as dit, mais je n'ai pas réussi

j'ai fait

(les 12 nop)
move.b #1,d0
and.b $60001b,d0
btst #0,d0
bne touche
Le gentil timide du 64

8

mais ca, ca marche pas pour toutes les touches de la colonne 0 ?
ca doit marcher pour la touche UP ce que tu as fait nan ?

9

Enfin si, je sais pas pourquoi. J'ai du mal le programmer
Le gentil timide du 64

10

Ca marche pour la touche UP ou pas ?

11

Le mieux serait de faire une fonction decode et de faire l'appel comme ça:

move.w #8,d0
bsr decode
btst.b #6,d0
beq ESC_TI92


decode:
deplace 0xFFFE dans d1 (prepare le masque)
rotation de nombre de bits de d0 avec d1 (contient la ligne voulus)
depace d1 dans 0x600018
nop (6 nop suffisent)
....
Récupére la ligne dans d0 donc 0x60001B dans d0
rts

Il ne reste plus qu'à déterminer le ou les bits activé dans cette ligne qui correspondent à une touche.


Si vous avez un rowread plus optimisé je suis partant. smile

avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

12

celui de Thibaut dans GX (tu le trouves dans les anciennes sources e hibtext ou en demandant à thibaut)

13

Merci. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

14

Il me semble qu'un and est plus rapide qu'un btst, non ?
Et si tu pouvais éviter les fonctions de rotations, ce ne serait que plus rapide

15

comment tu veux éviter les rotations ?

16

Bah au lieu d'appeler ta fonction avec fonction(2);, tu l'appelles avec fonction(0b11111011);
Ça demande un peu plus de travail au programmeur, mais ce n'est pas la mort

17

oué ...

18

neurone> avec up aussi, mon code foire
geogeo> merci, je vais essayer ton code
Le gentil timide du 64

19

Tails: pke quand je lis ton code pour moi, ca fait detecte la touche UP (sur ti89) je dois surement me planter ...

20

Tails
a écrit : J'ai essayé de me faire un _rowread avec AS : le programme efface l'ecran et attend un appui sur la touche ESC.

* Il faut désactiver ou rediriger les auto-interruptions n°1 et 5.
* C'est beq touche qu'il faut mettre, pas bne touche.
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é

21

comment les désactiver ? Tu peux m'envoyer une source
Le gentil timide du 64

22

Sinon, j'ai essayé de rajouter le _rowread de tigcc, maiis j'ontiens un "memory error"
Le gentil timide du 64

23

Tails: recherche dans le forum DUMMY_HANDLER (par le moteur de recherche) tu devrais trouver ton bonheur

24

??
(avec google je tombe sur rien)
Le gentil timide du 64

25

geogeo: en principe, il faut au minimum 12 nop, pas 6. Le hardware n'est pas rapide à ce point-là.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

26

Ah bon, pourtant quand j'utilise cette foction ça suffit 6 nop mais bon au temps en mettre 12 pour éviter les problèmes. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

27

En ce qui me concerne, c'est bon, je vais utiliser les ROMCALLS prévues à cet effet dans kbd.h
Le gentil timide du 64

28

En fait, si on utilise le grayscale, le _rowread est obligatoire ?
Le gentil timide du 64

29

non

30

Ah merci! Donc je vais m'en tenir aux ROMCALLS, inutile de jouer l'expert, ca me réussit très mal.
Le gentil timide du 64