Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- asm ("mov sp,#0x12000000");
- void main(void)
- {
- unsigned char ligne = 0xA0; // Pour simplifier le code on stock la valeur d'1 ligne dans "ligne"
- unsigned char *ptr; // Pointeur de l'écran
- unsigned int ini = 0xa4000100; // Stock la valeur intiale du pointeur dans "ini"
- unsigned int x = 0; // position x du pixel à tracer
- unsigned int y = 0; // position y du pixel à tracer
- unsigned char color, colorf = 0; // Color et Colorf (qui sert de variable intermédiaire)
- unsigned int xf; // Xf permet de savoir quel pixel on utilise (pair ou impair)
- ptr = (unsigned char *) ini; // On initialise le pointeur
- while (ptr < (unsigned char *) (ini+240*ligne)) { // On éteint tous les pixels
- *ptr++= 0xFF; // F = blanc 0 = noir
- } //
- while (y < 240){ // Pour chaque ligne
- while (x < 320){ // Jusqu'à la fin de la ligne
- while (color <= 15){ // En parcourant toutes les couleurs 0->15
- xf = x>>1; // Un octet représente deux pixels, on divise la largeur par 2
- if (xf<<1==x){colorf = (color<<4)+0b1111;} // Si le pixel est celui de gauche, on rajoute le masque sur les bits de poids faible
- else {colorf = color+0b11110000;} // Sinon on rajoute le masque sur les bits de poids fort
- ptr = (unsigned char*) (ini+(xf+ligne*y)); // On met le pointeur sur le pixel double correspondant à x et y
- *ptr = *ptr&colorf; // enfin on assigne la valeur du pixel sur l'octet pointé avec le masque
- color++; // On incrémente la couleur
- x++; // On incrémente la position x
- }
- color = 0; // On réinit la couleur à 0
- }
- x = 0; // On revient au début de la ligne
- y++; // Et on passe à la ligne suivante pour faire pareil
- }
- b:
- goto b;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement