nitro :
What about continuing in english in the International forum so that Nyall and other people can help more ?![]()
I think I'll stop with the suggestions before I become obnoxious

nitro :
What about continuing in english in the International forum so that Nyall and other people can help more ?![]()
Kevin Kofler
:Godzil :
pour le move.b dn,-(a7)
je ne trouve pas d'info comme quoi en realité a7 serait décrémenté de 2 au lieu de 1
Tu n'as pas bien cherché alors.
en plus le code move.b dn,-(an) n'est pas spécifique a a7.
Mais a7 est traîté spécialement par le processeur.
non je suis désolé (cf mon livre sur le 68000) :
Addressage indirect Prédécrémenté
Le registre d'addresse An contienu une addresse mémoire. Cette addresse doit être décrémenté de N pour donner l'addresse de l'opérande.
N = 1 si l'opérande est un octet
N = 2 si l'opérande est un mot
N = 4 si l'opérand est un mot double
An = An - N et AE = (An)
Jette ton livre alors. Le 68kguide donne la bonne information.
00 01 111 100 xxx xxx M T D D o a s s v i t t e l R M l e o e g d e
ScanKbd: ; keyScan par ExtendeD (modified) moveq.l #9,d0 moveq.l #-2,d2 movea.l #$600018,a0 SaveRow: move.w d2,(a0) moveq.l #11,d1 ; d1=0 WaitKeys: dbra.s d1,WaitKeys ; copy the ports to a virtual keybord table move.b 3(a0),-(a7) ; a7 will we incremented of 2 !! rol.w #1,d2 dbra.s d0,SaveRow lea.l 20(a7),a7 ; restore the stack
Godzil
: Si j'ai cherché et pas dans une seule doc (et je cherche que dans les docs officielles hein !)
Jette ton guide alors. Qui l'a écrit d'ailleurs ?
J'aimerait que tu ai un peu plus de respect envers les gens qui écrivent les livres
Ximoon :ScanKbd: ; keyScan par ExtendeD (modified) moveq.l #9,d0 moveq.l #-2,d2 movea.l #$600018,a0 SaveRow: move.w d2,(a0) moveq.l #11,d1 ; d1=0 WaitKeys: dbra.s d1,WaitKeys ; copy the ports to a virtual keybord table move.b 3(a0),-(a7) ; a7 will we incremented of 2 !! rol.w #1,d2 dbra.s d0,SaveRow lea.l 20(a7),a7 ; restore the stack
C'est le code que j'utilise dans mes fonctions de type getkey, et a7 est bien prédécrémenté de 2. Après vérification au débuger, le code généré comporte effectivement ce qui est inscrit. A7 est traité différemment pour de simples raisons techniques.
Pollux :
boah, c pas vraiment une justification : tu peux forcer a7 à prendre une valeur impaire, ça va aussi faire foire les instructions de branchement... Par contre ça permet de passer efficacement des "char" à une fonction C par la pile (à condition que la convention de passage soit fait pour, ce qui n'est pas le cas sur TI ^^), et qques autres astuces...