Well, I already have buffer, but 32x1 pixels in size, because the data is sent to display line by line.
But the problem is different, I can't understand why this works only per 8 bit: SCREEN32[Y+8]=CHAR2.0(Y) - if I enter any other number instead of 8, which is not multiple of 8, say 5 or 17, everything becomes garbled, while it should not. So, maybe I'm writing in array incorrectly?

I was able to solve this problem by replacing array with string of Boolean logic operations, but I'd like to keep array, because later I want to display more letters, with variable width...
Code:
char1=char1 | char2>>5
char2=char2 <<3 | char3>>2
char2=char2 | char4>>7
char3=char4<<1
char4=0