Yo,hat was gedauert.Mußte noch was tun.
Hier ein gaaaaanz einfaches Beispiel und nicht optimiert.
Ich weiß das es noch zig andere und bessere Metoden gibt aber wir fangen mal nachvolziehbar an.
Die Checksumme ist natürlich Einfachst aber da kannste ja reinsetzen was de haben möchstest.
Ich hab das jetzt mal in 10 Minuten so aussem Ärmel geschüttelt also keine Mosereien von der dritten Seite die sich bis jetzt bedeckt gehalten hat. 
Es geht nur ummes Prinzip.
Schau mal ob de das verstehst.
Die vielen If Then Geschichten lassen sich natürlich noch besser darstellen (zb. Case)
Ich hoff das ich auf die schhnelle keinen dicken Käfer reingeknetet habe.
Code:
'-------------------------------------------------------------------------------
' Erwartet werden 5 Zeichen Nutzdaten plus checksumme
' Startzeichen ist chr 15
'-------------------------------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Dim A As Byte 'Allgemein
Dim C As Byte 'Für Checksumme
Dim B(5) As Byte 'Nutzdaten
Dim Z As Byte 'Zähler
Z = 0
C = 0
Do 'Hauptschleife
If Ischarwaiting() = 1 Then Gosub Empfang 'wenn zeichen im Puffer dann "Empfang"
If Z = 7 Then Gosub Auswertung
'Hier könnete ihre Werbung stehen
Loop
Empfang:
A = Waitkey()
If Z > 0 Then Goto Empfang2 'wenn z schon größer dann weiter bei Empfang2
If A = 15 Then Incr Z 'Wenn Startzeichen dann Z auf Startposition und
Return ' zurück zum Hauptprogramm
Empfang2:
If Z < 6 Then B(z) = A 'Daten einsortieren
C = C Xor A 'Checksumme bilden.Einfach aber brauchbar.
Incr Z 'z um eins rauf für den nächsten
Return
Auswertung:
If C <> 0 Then
Z = 0 'Prüfen ob die Checksumme stimmt.wenn nicht dann alles neu.
C = 0
Return
End If
'hier die Verarbeitung
Z = 0 'Nach der Verarbeitung alles wieder auf 0 und zurück
C = 0
Return
Lesezeichen