CODINGSDCC TUT'S PAR STEPHBB75 ★ Effacer l'écrans ★

Sdcc - 09 - Cls Ultra RapideCoding Sdcc Tut's Par Stephbb75

Je vous propose ici une fonction CLS qui est ultras rapide, et bien sur c'est de l'ASM :-)

Le principe pour effacer l'écran er simple, on remet tout les octets de la mémoire entre C000 et CFFF à 0. Pour effacer l'écran, on a : - le firmware, avec une fonction pour changer de mode (faite un MODE 1 sous basic, bas cela efface l'écran) qui est BC0E.
— le firmware encore avec une fonction qui efface l'écran BC14.
— du code, mettre la zone mémoire de l'écran à 0, on peut faire cela avec un pointeur (vous avez bien lut tous les autre article que j'ai fait quand même ? :-) )et une simple boucle for.
— du code, faire un memset.
— ... - en assembleur, en détournant l'utilisation de la pile.. . aller, je vous laisse chercher sur le net, moi je vous donne la fonction.

Je vous laisse aussi faire vos propre test pour voire quel méthode est la plus rapide.

// Efface l'ecran en utilisent la pile
// détournement de la pile pour faire un cls super rapide !
int PILE;
void CLS_WidthPile()
{
__asm
DI
LD (#_PILE),SP
LD B,#0 ; la boucle
LD SP,#0 ; pile a 0 (car 0 - 1 = 0xFFFF fin de l écran quand il est en 0xC000), comme cela on remonte jusqu a 0xC000
LD DE,#0 ;valeur que l'on vas mettre en mémoire
BOUC: PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
PUSH DE
DJNZ BOUC
LD SP,(#_PILE)
EI
RET

__endasm;
}

Voila, pas comme d'hab, je ne vous est pas fait de ZIP :-o

stephbb75

Page précédente : Sdcc - 08 - Swap d'Ecran

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Sdcc - 24 - Bezier
» Coding » Sdcc - 08 - Swap d'Ecran
» Coding » Sdcc - 14 - Animation Par Couleur
» Coding » Sdcc - 16 - 3D - Temps Reel Basic
» Coding » Sdcc - 05 - Ecrire du Text
» Coding » Sdcc - 23 - Slide Show
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 491 millisecondes et consultée 1895 fois

L'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.