bon je m'attaque maintenant a ngetchx(),
quelqun a t'il deja reussi a comprendre ngetchx, j'arrive vraiment pas a capter son fonctionnement...
unsigned char good(unsigned char *row asm("a0"))
{
asm("
movem.l %d1-%d2,-(%a7)
moveq.l #0,%d0
moveq.l #0,%d2
boucle0:
move.w #0,(0x600018) |on teste toutes les touches
nop
nop
nop
nop
move.b (0x60001B),%d0
not.b %d0 |tant qu'une touche n'a pas été pressé on teste
beq boucle0
move.l #0b11111110111111,%d1 |le masque
boucle1:
move.w %d1,%d2
and.w #0b000000001111111,%d2 |on a maintenant dans d2 le masque de la ligne
move.w %d2,(0x600018) |que l'on teste
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
move.b (0x60001B),%d2 |
not.b %d2 |si une touche a été pressé dans cette ligne on met le masque dans row
beq zero
and.b #0b01111111,%d1
move.b %d1,(%a0)
movem.l (%a7)+,%d1-%d2 |et on par
bra fin1
zero: |sinon
lsr.l #1,%d1 |on decale notre masque
cmp.b #255,%d1 |si on fait nos 7 masque (plus de 0 dans le premier octet de d1
bne boucle1 |on se casse
fin0:
move.b #255,(%a0)
movem.l (%a7)+,%d1-%d2
fin1:
");
}
Kevin Kofler :
Et d'ailleurs, c'est très sale de trafiquer la table des handles directement, les ROM_CALLs Heap* sont là pour ça!
ExtendeD :Va vite être lassé.
Ximoon :
Une question comme ça... Tu essaies de faire quoi au juste ?
bidoo
: ah j'avais oublié d'enlever l'auto int 1
.
