Tu es en ADL=1 donc tes registres font 24 bits.
si tu fais par exemple:
ld hl, (adresse) (adresse est la valeur d'une adresse peut importe laquelle)
ou
ld (adresse), hl
qu'est ce qui se passe?
sur les ti c'est en "little endian" ce qui veut dire que quand tu stockes une valeur à une adresse, c'est les octets de poids plus faibles stockés en premier.
donc si tu fais:
ld (adresse),hl
tu as les 8 bits dans l stockés à "adresse", les 8 bits de h stockés à "adresse+1", et les 8 bits de hlu stockés à "adresse+2".
pareil en sens inverse.
ld hl, (adresse)
la valeur dans à l'adresse "adresse" va dans l, celle dans "adresse+1" va dans h, et celle de "adresse+2" va dans hlu.
donc si tu veux stockés seulement une valeur 8 bits à une adresse, tu la mets par exemple dans l, et ensuite tu la stockes:
ld l, 7
ld (adresse),l
là on a seulement modifié la valeur à cette adresse.
donc dans ton code quand tu écris:
LD hl,0
LD (curRow), hl
LD (curCol), hl
tu peux le simplifier. déjà comment sont stockés les valeurs de curRow et curCol?
comme tu peux le voir dans le wiki:
http://wikiti.brandonw.net/index.php?ti ... By_Address
à l'adresse $D00595 il y a curRow, à $D00596 curCol, et l'octet d'après est inutilisé.
donc si tu écris:
LD hl,0
LD (curRow), hl
tu mets un 0 dans curRow, dans curCol, et dans l'octet d'après

donc fait très attention, si par exemple tu veux simplement modifié la valeur de curRow et que tu fais par exemple,
ld hl,7
ld (curRow),hl
00000000-00000000-00000111
hlu--------------h-----------l-----
et donc tu mets un 7 dans curRow et 0 dans curCol
si tu veux simplement mettre un 7 dans curRow sans toucher à curCol tu fais:
ld l,7
ld (curRow),l
j'espère que j'ai été assez clair
