Aber wiso funktionniert der Code dann mit einstelligen
Zahlen?
Die Definition Byte ist numerisch
Die Definition "1" ist ein String

Der BASCOM-Compiler ist so tolerant, das er automatisch den String "1" in einen numerischen Wert umwandelt.
Andere Compiler geben einen Fehler aus, denn richtig wäre ja wie gesagt:
B=inkey()
If B = asc("1") Then
Bei Strings mit größeren Längen (z.B. "res") würde das nicht mehr gehen.
(Ich bin mir jetzt nicht sicher ob ein Compilefehler kommt, oder nur der erste Buchstabe ("r") konvertiert wird)

Für einen kleinen Codeschnipsel wäre ich dir sehr sehr dankbar!!!!!
Die Codeschnipsel habe ich Dir doch gegeben, soll ich Dir etwa Dein ganzes Programm schreiben ???

Code:
$baud = 9600 
$crystal = 8000000 

Config Serialin = Buffered ,Size = 20

Dim A As Byte 
Dim B As String * 1
Dim C As String * 20

Waitms 1250 

Begin: 

C = ""
Do 
   A = Inkey() 
   B = chr(A)
   C = C + B
 
   If B = "1" Then 
      Portd.2 = 1 
      Waitms 1250 
      Portd.2 = 0 
      Print "2" 
      C = ""
   End If 
   If B = "3" Then 
      Portd.2 = 1 
      Waitms 1250 
      Portd.2 = 0 
      Print "4" 
      C = ""
   End If 
   If C = "res" Then 
      Portd.2 = 1 
      Waitms 1250 
      Portd.2 = 0 
      Print "4" 
   End If 
   if A = 13 then
      C = ""
   end if
Loop