Manipuler l'écran du CPC
Équivalent du vecteur #BC26 - Passer à la ligne suivanteMéthode universelle ld a,h : add 8 : ld h,a : and #38 : ret nz ld a,LargeurEcran : add l : ld l,a : ld a,#C0 : adc h : ld h,a : res 3,h retMéthode pour la page #C000 (2 nops + rapide) ld a,h : add 8 : ld h,a : ret nc ld a,LargeurEcran : add l : ld l,a : ld a,#C0 : adc h : ld h,a : res 3,h retVous pouvez adapter cette routine pour n'importe quel registre (avec l'utilisation de LDIR, on préfère passer le registre DE à la ligne)
Équivalent du vecteur #BC29 - Passer à la ligne précédenteMéthode universelle ld a,h : sub 8 : ld h,a : and #38 : cp #38 : ret nz ld a,lo(16384-LargeurEcran) : add l : ld l,a : ld a,#3F : adc h : ld h,a : set 3,h retVous pouvez adapter cette routine pour n'importe quel registre (avec l'utilisation de LDIR, on préfère passer le registre DE à la ligne)
Faire évoluer son pointeur écran en restant dans la même ligne de blocQuand on décale l'écran vers la droite ou la gauche, il faut gérer le rebouclage de la ligne de bloc.Ce snipet fonctionne partout et sur toutes les lignes. ld a,h : and %11111000 : ld c,a : Mettre les 5 bits supérieurs de HL dans C inc hl ld a,h : and 7 : or c ; ne récupérer que la position dans le bloc et forcer le blocC'est pareil pour INC HL que DEC HL que ADD HL,BC
Afficher en entrelacé avec le codage grayIl faut au préalable organiser ses données en conséquence et (idéalement) organiser ses données en zig-zag (convGeneric et Martine savent le faire en option). Ensuite, pour passer à la ligne "suivante", un RES ou un SET suffit car l'ordre des lignes fait qu'il n'y a qu'un seul bit à changer dans l'adresse. Ce n'est paspossible d'utiliser cette optimisation avec les lignes dans l'ordre logique. set 3,h ; #C000 => #C800 set 4,h ; #C800 => #D800 res 3,h ; #D800 => #D000 set 5,h ; #D000 => #F000 set 3,h ; #F000 => #F800 res 4,h ; #F800 => #E800 res 3,h ; #E800 => #E000 add hl,de ; #E000 => #C0xx avec DE = LARGEUR_ECRAN - #2000Roudoudou CPCrulez[Content Management System] v8.732-desktop/c Page créée en 379 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. |
|