Anfangen würde ich z.B. so:

Code:
Dim Uart_buffer As String * 100
Dim Byte_empfangen As Byte
Dim Buffer_overlay(101) As Byte At Uart_buffer Overlay
Dim Buffer_pointer As Byte

On Urxc Urxc_isr
Enable Urxc
Enable Interrupts

Do
   'deine Hauptschleife
Loop

End

Urxc_isr:
   If Buffer_pointer < 100 Then Incr Buffer_pointer         'falls zuviele zeichen kommen, ist hier die Bremse
   Byte_empfangen = UDR
   'hier könntest du jetzt einige Checks machen, wie z.B. auf CR/LF oder auch eine Vorauswertung des Empfangs
   'wenn du z.B. das CR/LF gar nicht im Buffer abspeichern willst, dann lässt du den Befehl eben weg und setzt stattdessen nur ein Flag
   'welches du dann in der Hauptschleife auswertest.
   'auf die Art musst du nicht so viel machen, wenn deine Übertragung vollständig ist, sondern verteilst
   'dies auf die relativ langen Pausen zwischen den eingehenden Zeichen

   'hier kannst du auch deinen Timer starten um zu überprüfen, ob die Übertragung nicht aus irgendeinem Grund aufgehört hat

   Buffer_overlay(buffer_pointer) = Byte_empfangen          'und schließlich das Zeichen im Buffer abspeichern
Return