[...]
#define ScoreActu Saferam1+5
[...]
Fin: ; Label de quand on perd
bcall(_grbufclr) ; Efface le graph buffer
bcall(_clrLCDFull) ; Efface l'écran
bcall(_homeUp) ; Met le pointeur en (0,0)
ld hl,Text ; Charge le texte à afficher dans le registre hl
bcall(_puts) ; Affiche le texte à l'écran
call getK ; Appel ma routine de getKey (direct input)
ld a,(ScoreActu) ; Charge le score actuel dans l'accumulateur
push af ; Met la valeur du registre a dans la pile
call _zeroop1 ; On utilise _chkfindsym pour trouver l'adresse du programme en mémoire
ld de,op1 ; On charge la valeur d'op1 dans le registre de
ld hl,Prog ; On met la valeur de Prog dans hl
ld bc,13 ; Le nombre d'octets a copier (le nombre de caractère du nom + 2)
ldir ; copie, incrémente et recommence
call _chkfindsym
inc de ; on calcule l'emplacement de Score dans le prog.
inc de
ld hl,Score-$9D95
add hl,de
pop af ; On rentre la valeur du score (la variable ScoreActu, donc)
ld (hl),a
ret ; fin du programme
Text:
.db " T'as perdu ! ",0
Score:
.db 0000h
Prog: .db 5,"NOM DU PROG",0
(Donc ça c'est la fin du programme) Et v'là la partie du programme qui est supposée afficher le score :
[...]
lbl1:
[...]
lbl2:
bcall(_grbufclr)
bcall(_clrLCDFull)
bcall(_homeUp)
ld hl,(Score)
bcall(_puts)
call getK jp lbl1
Mais ça ne veut pas marcher, mais en même temps à mon avis c'est plus compliqué que ça...