DD/CG RAM:
Register schreiben ( = Commands schicken) kann man unabhängig vom grad selektierten RAM.
Nur wenn man Daten schreibt (oder liest), muss man wissen, was gerade selektiert ist (CGRAM muss man nur selektieren, wenn man Zeichen programmieren will).

Zwei mal in 4-bit-mode:

1. Umschaltung mit &H02 direkt am Port:
OK: Wenn man im 8-bit-mode ist, und die &H02 direkt an den LCD_PORT anlegt, schaltet man in den 4-bit mode um. ABER: Es sind ja gar nicht nicht alle 8 Datenleitungen zum LCD durchkontaktiert. Das LCD erhält also an seinen 8 Datenleitungen nur die bits $B0010xxxx, wobei die 'x' undefiniert sind. Das LCD erkennt deshalb zwar das Command 001="FunctionSet" mit DL=0= "4-bit-mode", aber die restlichen beiden Bits für "Zeilen-Zahl" und "Matrix-Grösse" können nicht gesetzt werden.

2. Deshalb im 4-bit-mode Kommando &H28
Die Zeilenzahl und die char Matrix kann man nur mit FunctionSet angeben, deshalb (nochmal) FunctionSet sagen (und dabei im 4-bit-mode bleiben), und jetzt auch die beiden bits für "2 Zeilen" (N=1) und "5x8 Matrix" (F=0) setzen; das geht ja jetzt, weil das ganze Command in 2 Takten über den 4-bit-Bus übertragen wird.

Mach nix, sooo genau hatte ich's vorher auch nicht angeschaut...