Code:
Sub1:
   For I = 0 To 7
Lread1:
      Enable Interrupts
      Config Powermode = Idle     'PCINT0 ist aktiv, bei Flanke wird er geweckt und je nach auf-/absteigender Flanke Edge gesetzt
      Disable Interrupts
      If Flagbyte <> 1 Then                                 '1 für Sub1, 2 für Sub2, ... 255 für Reset
         Return
      End If
      If Edge = 1 Then
         Goto Lread1
      End If
      Timer0 = 196
      Start Timer0
      Rotate Inputbyte, Right
      Waitus 15
      Inputbyte.7 = PINB.0
   Next I
   Stop Timer0
Return
Wobei auch ich den Empfang komplett in einer Timer_ISR erledigen würde. Ähnlich dem DCF Empfang.