die lösung war einfach - mit toggle hats dann geklappt.

hier der aktuelle Programm-Code mit Kommentaren

Code:
$regfile = "m128def.dat"
$crystal = 16000000
$framesize = 100
$swstack = 100
$hwstack = 100
$baud = 57600
'$sim

Luefter_pwm Alias Portb.4 : Config Luefter_pwm = Output : Luefter_pwm = 0
Testpin Alias Portf.4 : Config Testpin = Output : Testpin = 0

Declare Sub Lcd_ausgabe()
Declare Sub Lcd_put(_x As Byte)
Declare Sub Lcd_cls()
Declare Sub Lcd_print(byval _x As Byte , Byval _y As Byte , Byval _text As String)

'################### LCD Settings #############################################
Dim Lcd_textbuffer As String * 20 , Lcd_textbuffer1 As String * 20
Config Lcdpin = Pin , Port = Portc , E = Portd.5 , Rs = Portg.3
Config Lcd = 20 * 4
Config Portg.4 = Output

Lcd_enable Alias Portd.5
Lcd_rs Alias Portg.3
Lcd_rw Alias Portg.4
Lcd_data Alias Portc
Cursor Off
Initlcd
Deflcdchar 0 , 4 , 14 , 31 , 4 , 4 , 4 , 4 , 32             ' Pfeil hoch
Deflcdchar 1 , 4 , 4 , 4 , 4 , 31 , 14 , 4 , 32             ' Pfeil runter
Deflcdchar 2 , 27 , 27 , 27 , 27 , 27 , 27 , 27 , 32        ' Pause-Zeichen
Deflcdchar 3 , 16 , 24 , 28 , 30 , 28 , 24 , 16 , 32        ' Play-Zeichen
Deflcdchar 4 , 32 , 32 , 31 , 31 , 31 , 31 , 31 , 32        ' Stop-Zeichen
Deflcdchar 5 , 32 , 32 , 32 , 32 , 12 , 10 , 12 , 10        ' kleines R
Deflcdchar 6 , 32 , 32 , 32 , 32 , 10 , 10 , 12 , 10        ' kleines K
Deflcdchar 7 , 32 , 32 , 32 , 32 , 8 , 8 , 8 , 14           ' kleines L
Cls


Dim Lcd_4zeilen As String * 80
Dim Lcd_4zeilen_char(80) As Byte At Lcd_4zeilen Overlay


Dim I As Byte
Dim Text As String * 20


Do

   Call Lcd_print(1 , 1 , "Das ist die 1. Zeile")
   Call Lcd_print(1 , 2 , "Das ist die 2. Zeile")
   Text = "T" + Chr(5) + "= 5 " + Chr($df) + "C"
   Call Lcd_print(1 , 3 , Text)
   Call Lcd_print(1 , 4 , "Das ist die 4. Zeile")

      Toggle Testpin
      Call Lcd_cls()
      'Cls
      Toggle Testpin

   Call Lcd_ausgabe
   Waitms 100
Loop
End


Sub Lcd_ausgabe
Local _i As Byte
   For _i = 1 To 80 : Call Lcd_put(lcd_4zeilen_char(_i)) : Next _i
End Sub


Sub Lcd_put(_x As Byte)
' Dauer für die Ausgabe von 20 Zeichen:  1,1ms
'                           80 Zeichen:  3,1ms   (bei 27 nop's Pause)
' mit Lcd Chr(_x) in der Funktion 20 Z:  23ms

   If _x = 0 Then _x = $a0                                  'chr(0) auf Leerzeichen mappen
   Lcd_data = _x                                            'Datenbyte auf Bus legen
   Lcd_rw = 0                                               'Schreibbefehl
   Lcd_rs = 1                                               'Datenpuffer
   !nop
   !nop
   Lcd_enable = 1
   !nop
   !nop
   Lcd_enable = 0


   'auf Display-Ready warten
      Toggle Ddrc                                           'Busrichtung lesen
      Lcd_rw = 1                                            'Lesebefehl
      Lcd_rs = 0                                            'Steuerpuffer
      !nop
      !nop
      Do
          Toggle Lcd_enable
          !nop
      Loop Until Pinc.7 = 0                                 'auf busy-flag warten
      Toggle Ddrc                                           'Busrichtung schreiben
End Sub



Sub Lcd_print(byval _x As Byte , Byval _y As Byte , _text As String * 20)
'Z1S1 = 1-20
'Z2S1 = 41-60
'Z3S1 = 21-40
'Z4S1 = 61-80
Local _position As Byte
Local _anzahl As Byte
Local _i As Byte
   Select Case _y
      Case 1 : _position = 0
      Case 2 : _position = 40
      Case 3 : _position = 20
      Case 4 : _position = 60
   End Select
   _position = _position + _x
   _anzahl = Len(_text)
   _i = Memcopy(_text , Lcd_4zeilen_char(_position) , _anzahl)
End Sub


Sub Lcd_cls()
'Dauer knapp 1.6ms
'Bsacom CLS dauert 5.2ms
   Lcd_data = 1                                             'Datenbyte auf Bus legen
   Lcd_rw = 0                                               'Schreibbefehl
   Lcd_rs = 0                                               'Datenpuffer
   !nop
   !nop
   Lcd_enable = 1
   !nop
   !nop
   Lcd_enable = 0

   'auf Display-Ready warten
      Toggle Ddrc                                           'Busrichtung lesen
      Lcd_rw = 1                                            'Lesebefehl
      Lcd_rs = 0                                            'Steuerpuffer
      !nop
      !nop
      Do
          Toggle Lcd_enable
          !nop
      Loop Until Pinc.7 = 0                                 'auf busy-flag warten
      Toggle Ddrc                                           'Busrichtung schreiben
End Sub