J'ai dans un programme un timer qui me renvoie un nombre de cycle d'horloges stocké dans HL qui doit être divisé par 32768 pour renvoyer un nombre de secondes (on va limiter à la partie entière)
Pour cela l'idée serait soit de faire 15 rotations à droite de HL (32768=2^15) mais dans la doc du eZ80 ou les tutos (et même des forums comme Cemetech), je ne trouve pas d'instructions de rotations sur 24 bits, seulment sur 8 bits à la fois, or on n'a accès qu'à h et à l pas à hla comme vous le savez
J'ai essayé l'istruction rrd https://ez80.readthedocs.io/en/latest/docs/bit-shifts/rrd.html,
j'ai fait un test mais ça plante sous CEmu :
- Code: Select all
#include "ti83pce.inc"
.assume ADL=1
.db tExtTok,tAsm84CeCmp
.org userMem
call _ClrScrnFull
call _homeup
ld a,0
ld (curRow),a
ld hl,1000000
rrd
call _dispHL
ret
Ma deuxième idée était de lire ou transférer les 9 bits de gauche (HLA + le bit fort de H) mais je n'ai pas trouvé d'instruction pour accéder à la valeur de HLA...
Je suis sûr qu'il y a un moyen simple mais après quelques jours de recherches perso, j'avoue que je commence un peu à vouloir avancer plus loin...
merci d'avance