Code:
char readChar(void);
char Instring[MAX_CHAR];
char InIdx = 0;

SIGNAL(SIG_USART_RECV) { 
     Instring[InIdx] = readChar();
     switch (Instring[InIdx])
     {
     case ENTER:                    // ev. signalisieren an "Main()"
           Instring[InIdx] = 0;   // korr. Stringterminator to \0
           break;  
    case START:                   // Startzeichen ?? 
           InIdx = 0;  
           break;  
     default:
           InIdx++; 
           break;  
    }
    if (InIdx > MAX_CHAR)    
    {  overflow, was machen wir ?  }
}
So etwa halt
Nicht berücksichtigt sind falsche Zeichen, CAN od. Delete usw. und ECHO, wenn es eine Tastatureingabe ist
Die Auswertung ist Case-Sensitiv, muß man aufpassen