Hola Enrique, creo entenderte que tus dudas son que no sabes que hace cada línea de código que has puesto en la parte de arriba, así que trataré de explicarte que hace en cada una a ver si es eso lo que buscas saber, sino perdoname por interpretarte mal...
Aquí declaras una variable float(tipo de variable con decimales para que lo entiendas a grandes rasgos) llamada Page_inc con el valor 0.5
float Page_inc=0.5;
si el valor Y_address pongamos que vale 1000 es mayor que (el calculo de este paréntesis que seria(page_no vale 2): 1024-(((2)*128)+5) cuyo resultado es 261 asi que la condición del IF seria afirmativa y continuamos
if (Y_address>(1024-(((page_no)*128)+5)))
Aquí lo mismo comparamos la suma de Y_address+column si es igual a Page_inc + 0.5 (aquí veras (int) lo que hace es pasar Page_inc que es float a una variable tipo int así que quitas los decimales que hayan y eso multiplicado por 128)
if ((Y_address+column)==(128*((int)(Page_inc+0.5))))
{
aquí comparamos si column es = 5, si lo es hacemos el break; ese break hace que nos salgamos de las llaves del anterior if y no se ejecute las líneas que hay debajo (GLCD…)
if (column==5)
break;
aqui llamas a esta funcion y meteindole el valor 0x40
GLCD_Command(0x40);
aquí haces que sea igual Y_addres a Y address+column
Y_address = Y_address+column;
En estas dos líneas siguientes haces el complemento a 1 de CS1 y CS2, es decir si CS1 vale en binario 0000 0000 pasara a valer 1111 1111
CS1 = ~CS1;
CS2 = ~CS2;
aqui llamas a esta funcion metiendole la suma de esos valores
GLCD_Command((Page+Page_inc));
Page_inc=Page_inc+0.5;
}
aqui no entiendo del todo bien que hace, pienso que con esos calculos muestra el caracter que sea en la LCD
GLCD_Char(font[str-32][column])