Hi,
ändere mal testweise $crystal=16000000
in $crystal=32000000

Dann sind die Zeiten in Bascom doppelt so lang.
Vielleicht geht es ja dann.
Hatte ich schon öfter, daß Grafikdisplays nur mit langsamerem Timing laufen
Meistens konnte ich das dann durch zusätzliche Pullups direkt am Display mit dem richtigen Timing zum laufen bringen.

Gruß
Christopher