Hallo Christopher,

Ich hoffe, wir reden von einem HD44780 kompatibilem, oder ?

Zu dem Unterstrich hätte ich folgende Idee, zwar ungetestet, müßte aber klappen,

Angenommen wir wollen Zeichen 0-5 Unterstreichen, gehen wir zum Zeichen 0, schalten den Unterstrich ein und senden in Abständen von sag ich mal 10-50 ms ein Befehl, den Cursor einen Schritt weiter nach rechts zu gehen.
Wenn wir bei der Stelle 5 sind dan zurück nach 0.
Man dürfte da wohl kein Flackern sehen denke ich

Zu den Sonderzeichen, nein, Du mußt das Display nicht neu initialisieren,
mal aus dem Kopf,
Eigene Zeichen liegen in CG RAM bei der Adresse 0 angefangen, also 0x00-0x07 Zeichen 1 0x08-0x0F Zeichen 2 usw.
Man sendet jetzt 'Set CGRam Address' mit der gewünschten Adresse dann ganz Normal die Daten, anschließend zurück in DDRam , fertig.
So kann man 1 Zeile vom Zeichen auswechseln, ein ganzes Zeichen, oder alle 8, ja nach dem.

Gruß Sebastian