Mini routines Z80 utiles ou collection de Helpers optimisésNEG HL xor a sub l ld l,a sbc a sub h ld h,aAjouter une valeur 8 bits signée à HL ; HL = HL + C ld a,c add a ; récupère le signe de C sbc a ; si signé, alors A=255 sinon A=0 ld b,a ; répercuter le signe de C dans BC add hl,bcValeur absolue de HL absHL bit 7,h : ret z ; positif, rien à faire xor a : sub l : ld l,a sbc a : sub h : ld h,a retValeur absolue de BC absBC bit 7,b : ret z ; positif, rien à faire xor a : sub c : ld c,a sbc a : sub b : ld b,a retValeur absolue de DE absDE bit 7,d : ret z ; positif, rien à faire xor a : sub e : ld e,a sbc a : sub d : ld d,a retValeur absolue de A absA or a : ret p ; positif, rien à faire neg retComparaison de HL et DE : CP_HL_DE or a sbc hl,de add hl,de retEffacer une zone mémoire sur une longueur donnée memset xor a .loop ld (hl),a cpi jp pe,.loop retDésactiver le système temporairement : desactiver_systeme di ld hl,(#38) : ld (restaure_systeme+1),hl ld hl,#C9FB : ld (#38),hl ei ret restaure_systeme ld hl,#C9FB : ld (#38),hl retAffichage décimal de la valeur de HL dispHL ld bc,-10000 : call num1 ld bc,-1000 : call num1 ld bc,-100 : call num1 ld c,-10 : call num1 ld c,-1 num1 ld a,'0'-1 num2 inc a add hl,bc jr c,num2 sbc hl,bc call affiche_caractere_ascii retComment calculer la racine carré de HL? Voici une routine qui le fait en arrondissant à l'inférieur : racineHL ; résultat dans le registre E ld bc,#800 ld e,c xor a .shl4loop add hl,hl rl c adc hl,hl rl c jr nc,$+4 set 0,l ld a,e add a ld e,a add a bit 0,l jr nz,$+5 sub c jr nc,$+7 ld a,c sub e inc e sub e ld c,a djnz .shl4loop bit 0,l ret z inc b retPensez à jeter un oeil dans la rubrique des [ liens ], en particulier les sites pour calculatrices Texas Instrument qui regorgent de routines de calcul dont certaines ont été recopiées ici.Roudoudou CPCrulez[Content Management System] v8.732-desktop/c Page créée en 511 millisecondes et consultée 47 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|