Je me mets à l'assembleur z80 sur ti 83 plus. J'utilise notamment le bouquin Jump-Start Z80 machine code. Ouvrage pas trop mal pensé, mais....malheureusement bâclé, donc pas mal de fautes dans la traduction en hexadécimale des instructions. Mais au moins, cela force à chercher, tester...bref, s'y mettre quoi !

Mais j'ai un souci avec le code suivant :
- Code: Select all
#include "ti83plus.inc"
#define progStart $9D95
.org progStart-2
.db $BB,$6D
bcall(_ClrLCDFull)
ld hl,location
ex de,hl
ld hl,image
bcall(_DisplayImage)
ret
location
.db $05,$05
image:
.db $08,$08,$3c,$7e,$ff,$ff,$ff,$ff,$7e,$3c
c'est le code du bouquin...en gros, cela doit dessiner une jolie petite bille...mais une fois lancé, ben j'obtiens rien à l'écran. Pas de plantage, juste rien

Si je prends par contre le code suivant :
- Code: Select all
#include "ti83plus.inc"
#define progStart $9D95
.org progStart-2
.db $BB,$6D
bcall(_ClrLCDFull)
ld de,$505
ld hl,image
bcall(_DisplayImage)
ret
image:
.db $08,$08,$3c,$7e,$ff,$ff,$ff,$ff,$7e,$3c
ben j'ai ma petite boule. Malheureusement, j'ai besoin d'une variable "location" pour la faire bouger ensuite....
Donc je comprends pas où est le souci. J'ai regardé la commande "ex" sur le manuel du Z80. A part échanger les registres, elle ne détruit rien..
Si quelqu'un pouvait m'éclairer de sa science du binaire, honnêtement je comprends pas où je foire dans le code.
Merci d'avance