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
Tu dois faire un AND entre un masque et la lecture du port pour avoir la touche désirée.
C'est quoi dans mon exemple? (J'ai pas très bien compris ce que tu as voulu dire)
pour esc, c le dernier bit sur la colone 0 je crois
Ben, c'est que j'ai fait? Mais ca reagit aussi avec ENTER, (-) , ... toutes les touches de la colonne 0 !
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
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 ?
Enfin si, je sais pas pourquoi. J'ai du mal le programmer
Ca marche pour la touche UP ou pas ?
celui de Thibaut dans GX (tu le trouves dans les anciennes sources e hibtext ou en demandant à thibaut)
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
comment tu veux éviter les rotations ?
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
neurone> avec up aussi, mon code foire
geogeo> merci, je vais essayer ton code
Tails: pke quand je lis ton code pour moi, ca fait detecte la touche UP (sur ti89) je dois surement me planter ...
comment les désactiver ? Tu peux m'envoyer une source
Sinon, j'ai essayé de rajouter le _rowread de tigcc, maiis j'ontiens un "memory error"
Tails: recherche dans le forum DUMMY_HANDLER (par le moteur de recherche) tu devrais trouver ton bonheur
??
(avec google je tombe sur rien)
geogeo: en principe, il faut au minimum 12 nop, pas 6. Le hardware n'est pas rapide à ce point-là.
En ce qui me concerne, c'est bon, je vais utiliser les ROMCALLS prévues à cet effet dans kbd.h
En fait, si on utilise le grayscale, le _rowread est obligatoire ?
Ah merci! Donc je vais m'en tenir aux ROMCALLS, inutile de jouer l'expert, ca me réussit très mal.