Closed EdouardBERGE closed 4 years ago
Ce sont des opérateurs que l'on peut utiliser dans une expression?
a = XORMEM 0 #FFFF
Non, ça poke une valeur 8 bits à l'endroit de l'instruction Le calcul est réalisé en toute fin d'assemblage et... POKE !
code type de contrôle d'une ROM
checkrom
; DE=xorvalue followed by sumvalue
xor a
ld hl,#C000
ld bc,#FB43 ; loop #3FFE times
.makexor xor (hl) : inc hl : djnz .makexor : dec c : jr nz,.makexor : ex hl,de : cp (hl) : jp nz,romKO : inc l : ex hl,de
ld hl,#C000
ld bc,#FB43
xor a
.makesum add (hl) : inc hl : djnz .makesum : dec c : jr nz,.makesum : ex hl,de : cp (hl) : jp nz,romKO
jr romOK
et en fin de ROM
xormem 0,#3FFB
summem 0,#3FFB
le résultat est sur 1 octet (en particulier la somme) ? et que se passe-t-il si la directive est dans la zone mémoire ? Comme si ca valait 0?
nouvelles directives
paramètres pour les deux => adresse de début, adresse de fin
à utiliser dans la banque ou l'espace mémoire courant uniquement pour le moment
calcule un xor de tous les octets, ou la somme et poke en mémoire
actuellement si un segment compressé précède la directive, le poke n'est pas relogé (mais il le sera à terme)