Label not displayed when y > 67

Oh, I see the problem. In disp_flush you get an area and buffer. Your task is to copy the buffer to the area. The data to copy will be at beginning of the buffer.

Take look at Drawing part of the documentation and the example disp_flush function.

Now I see the problem with your disp_flush too. Instead of

vram_data_write(gbuf[(unsigned int) row * HW_COLUMNS + (unsigned int) col], TRUE);


/*At the beginning of `disp_flush`*/
uint8_t * buf8 = (uint8_t *) color_p; 

/*In the loop*/
vram_data_write(*buf8, TRUE);

I now see my interpretation of the callbacks and internal mechanism of the library were deep flawed, so I went around on a wild goose chase following these mistaken assumptions.
Your suggestion was correct, and now everything works perfectly.

Thank you for tagging along and having the patience to carry me to the correct interpretation; I will make another post to make sure I understand everything clearly.

Glad to hear that it’s working now!