Thank you.  I found a bug, I'm ashamed.  I used to output data code:    unsigned int i;   for (i = 0; i < (GDISP_SCREEN_WIDTH * (GDISP_SCREEN_HEIGHT / 8)); i++) {     write_data(g, RAM(g) + i, 1); }  as needed:    unsigned int i;   for (i = 0; i < (GDISP_SCREEN_WIDTH * (GDISP_SCREEN_HEIGHT / 8)); i++) {     write_data(g, RAM(g)[i], 1); }  sorry. uploaded working code repository.