// remonter d'une ligne l'affichage à l'écran (il pourra être judicieux d'utiliser memmove définie dans string.h pour cela) void defilement(void) { uint8_t i; uint8_t j; // defilement: chaque ligne monte par 1 for(i = 0; i < 24; i++) { memmove(ptr_mem(i, 0), ptr_mem(i + 1, 0), 160); } // nouvelle ligne vide en bas for(j = 0; j < 80; j++) { ecrit_car(24, j, ' ', VERT); } }
// écrire le caractère c aux coordonnées spécifiées void ecrit_car(uint32_t lig, uint32_t col, char c, int32_t COLOR) { //get pointeur sur la case mémoire uint16_t *ptr_format = ptr_mem(lig, col); //format: depend de la valeur de couleur / c est le charactere a ecrire *ptr_format = COLOR | c; return; }
void efface_ecran(void) { for(int i = 0; i < LARGEUR_ECRAN * HAUTEUR_ECRAN; i++) { *(ptr_mem(0, i)) = 0xF00 ; } lig_ = 0 ; col_ = 0 ; }
void defilement(void) { memmove((void*)print_addr, (void*)(print_addr + 2 *LARGEUR_ECRAN), LARGEUR_ECRAN * (HAUTEUR_ECRAN - 2) * 2); for(int i = 0; i < LARGEUR_ECRAN; i++) { *(ptr_mem(HAUTEUR_ECRAN - 2, i)) = 0xF00 ; } }
void ecrit_car(int lig, int col, char c, int ctext, int cfond, int cl) { *ptr_mem(lig, col) = c|(ctext<<8)|(cfond<<12)|(cl<<15); }