Hallo Basti,

ich hab grade mal bei Bascom nachgeschaut und folgendes gefunden (wie du auch bei Elektronik Projekt):

Code:
Label2:
 Dim A As Byte
 If A > 1 Then
    Return               'generates a RET because it is inside a condition
 End If
Return                   'generates a RETI because it is the first RETURN
Return                   'generates a RET because it is the second RETURN
Und nun ein Stück deines Codes:

Code:
If C0 = 1 Then 
Return 
Else 
Goto Haltep1 
End If 
Return
Wenn ich das richtig interpretieren, dann erzeugt Bascom für dein erstes RETURN ein RET (da innerhalb einer Bedingung) und beim zweiten Mal ein RETI

Also ich denke, das ist der Fehler. Am besten du definierts eine Sprungmarke vor dem letzten Return und springst aus der Bedingung dahin mit Goto.

Grüße
Flite