Hallo Community!

Han mal wieder ein Problem.

Ich hab meinen 32 er und 8 er per RS232 direkt verbunden und tausche Daten aus , die ich in einer Caseanweisung weiterverarbeite.
Folgendes Problem:

Bisher hab ich einen String mit fester Länge gezählt und beim Empfang des letzten Bytes springt es in die Caseanweisung.
Wie ist es möglich einen String mit variabler Länge zu übertragen?

Code:
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 19200


Dim S_cmd As String * 5                                     'für RS232
Dim B_cmd(5) As Byte At S_cmd Overlay                       'Liegt auf der Adresse des Strings s! RS232
Dim N As Byte                                               'zähl variable RS232

On Urxc Onrxd
Enable Urxc
Enable Interrupts

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8


Cursor Off


     If N < 6 Then

      Select Case S_cmd
      Case "Start"                                          '
       Goto Lcd1
      Case "Graph"
        Goto Graph1                                         ' + Chr(13);
      End Select
  N = 0
S_cmd = "     "

    End If




Lcd1:



Locate 1 , 1 : Lcd "Wilkommen zu Bertls GLCD"
Locate 2 , 1 : Lcd "Bascom T6963c support"
Locate 3 , 1 : Lcd "123456789012345678901234567890"
Locate 16 , 1 : Lcd "Unterste Zeile "

 Wait 4
 Cls


Return


Graph1:


Line(64 , 64) -(130 , 64) , 1
Line(130 , 64) -(130 , 100) , 1
Line(130 , 100) -(64 , 100) , 1
Line(64 , 100) -(64 , 64) , 1

Wait 4

Cls


Return







Onrxd:
  Incr N
  B_cmd(n) = Udr

Return