+; decide what to do
+sbic PORTD,PD6
+rjmp REC_CARD_HIGH
+rjmp REC_CARD_LOW
+
+REC_CARD_HIGH:
+
+; output high on port to cam
+sbi PORTD,PD3
+
+; toggle icp sense
+cbi TCCR1B,ICES1
+;in r16,TCCR1B
+;cbr r16,ICES1
+;out TCCR1B,r16
+
+; build the byte ;) - still wrong!
+ori r21,1
+lsl r21
+
+;
+; hier gehts weiter ...
+;
+
+reti
+
+REC_CARD_LOW:
+
+; output low on port to cam
+ldi r16,0
+out PORTD,r16
+
+; toggle int0 sense
+in r16,MCUCR
+cbr r16,ISC00
+out MCUCR,r16
+
+reti
+
+;
+; rec_cam routines
+;
+
+REC_CAM:
+
+; int1 -> input, int0 -> output
+ldi r16,(1<<DDD2)
+out DDRD,r16
+
+; decide what to do
+sbic PORTD,PD3
+rjmp REC_CAM_HIGH
+rjmp REC_CAM_LOW
+
+REC_CAM_HIGH:
+
+; output high on port to card
+ldi r16,(1<<PD2)
+out PORTD,r16
+
+; toggle int1 sense
+in r16,MCUCR
+cbr r16,ISC10
+out MCUCR,r16
+
+reti
+
+REC_CAM_LOW:
+
+; output low on port to card
+ldi r16,0
+out PORTD,r16
+
+; toggle int 1 sense
+in r16,MCUCR
+cbr r16,ISC10
+out MCUCR,r16
+
+reti
+
+;
+; t1_overflow routine
+;
+
+T1_OVERFLOW:
+
+add r22,r1 ; inc counter overflow register
+
+reti
+