+ out UDR,r17
+
+ ; decharge rc pin
+ cbi PORTD,PORTD2
+
+ ; reset timer counter 1 and enable overflow interrupt
+ out TCNT1H,r0
+ out TCNT1L,r0
+ ldi r17,(1<<TOIE1)
+ out TIMSK,r17
+
+ ; global interrupt enable
+ sei
+
+ ; loop forever
+ MAIN_LOOP:
+
+ ldi r21,0
+ WLOOP1:
+ ldi r22,0
+ WLOOP2:
+ inc r22
+ cpi r22,0xff
+ brne WLOOP2
+ inc r21
+ cpi r21,0xff
+ brne WLOOP1
+
+ ; tell the world
+
+ ; separate with a space
+ ldi r17,0x20
+ SPACE1:
+ sbis UCSRA,UDRE
+ rjmp SPACE1
+ out UDR,r17
+
+ ; aco status
+ ldi r17,0x30
+ sbic ACSR,ACO
+ ldi r17,0x31
+ ACO_STAT:
+ sbis UCSRA,UDRE
+ rjmp ACO_STAT
+ out UDR,r17
+
+ ; aci status
+ ldi r17,0x30
+ sbic ACSR,ACIE
+ ldi r17,0x31
+ ACI_STAT:
+ sbis UCSRA,UDRE
+ rjmp ACI_STAT
+ out UDR,r17
+
+ ; pin status
+ ldi r17,0x30
+ sbic PORTD,PORTD2
+ ldi r17,0x31
+ PIN_STAT:
+ sbis UCSRA,UDRE
+ rjmp PIN_STAT
+ out UDR,r17
+
+ ; ti status
+ ldi r17,0x30
+ in r23,TIMSK
+ sbrc r23,TOIE1
+ ldi r17,0x31
+ TI_STAT:
+ sbis UCSRA,UDRE
+ rjmp TI_STAT
+ out UDR,r17
+
+ ; a space again for separation
+ ldi r17,0x20
+ SPACE2:
+ sbis UCSRA,UDRE
+ rjmp SPACE2
+ out UDR,r17
+
+ ; loop
+ rjmp MAIN_LOOP