Om du är säker på att allt är rättkopplat & att schemat stämmer, så måste felet ligga i mjukvaran. Så vi kan nog inte hjälpa dig så länge du kör med andras mjukvaror som ingen har koll på hur dom fungerar!
Edit...
Du har 2 pinnar som inte är kopplade, vad heter dom?. & om dom inte ska användas så kanske dom behöver vara kopplade till gnd eller Vcc , så att dom inte flyter omkring så att säga!.
Vad jag vet så brukar vissa LCD:er vara indelade i två delar med varsitt chip. Sen sitter det troligtvis någon form av "chip select"-ingång.. kan tänka mig att den kabeln sitter fel eller inte alls.
Har du kollat inställningarna för LPT-porten? Testa gå in i BIOS och prova samtliga inställningar. Blir det ingen skillnad så ställ tillbaka till det den står på nu.
eftersom nedre halvan av displayen visar skräp kan det kanske bero på att grafik-minnesadressen i programet är inställd på ett annat värde än vad RAM-minnet i din display är placerat.
i programmet står det:
#define G_BASE 0x0200 // base address of graphics memory
börjar minnet på 0x200 i den display du använder?
edit: kollade i min kod jag skrev för en T6963 LCD, där använde jag G_BASE=0, du kan ju testa med 0 och se om det fungerar bättre
sorry såg att du hade använt VB programet, men samma sak gäller här:
WriteData(0);
WriteData(2);
WriteCtrl($42); (* Graph Home @ 0200h *)
så om du har möjlighet att kompilera om koden kan du ju testa att skriva WriteData(0) istället för WriteData(2) ifall minnet på din LCD startar på samma adress som på min, dvs 0