Hallo

...ich war so frei sie gleich einzubauen.
So war's auch gedacht :)

Schön, immerhin ein Fortschritt. Zeig doch nochmal deinen aktuellen (geputzten?) Code. Ich würde das Übernehmen der Daten in eine Funktion schreiben und nochmals die high-Zeit verlängern:
Code:
void strobe(void)
{
   LCD_E = 1;                // Daten übernehmen
   delay100us(3);
   LCD_E = 0;
}
Hast du ein Datenblatt für dein Display (oder eine genaue Typangabe)? Ich verwende das oben erwähnte KS0066U-Datenblatt (war eine der ersten Fundstellen der Suchmaschine), vielleicht gibt's da Unterschiede.

Blockcursor 5x8 ist schon richtig. Ist das Init() und das Blinken immer noch so langsam?

Gruß

mic