+ ; timer0 interrupt enable
+ rcall TIMER0_INT_INIT
+
+SAMPLE:
+
+ ; sample as long as there is storage capacity
+ sbrs state,0
+ rjmp SAMPLE
+
+ ; timer0 interrupt disable
+ rcall TIMER0_INT_END
+
+ ; signal finish
+ ldi uart_rxtx,0x66
+ rcall UART_TX
+
+IDLE:
+
+ ; wait for commands via uart
+ rcall UART_RX
+
+ ; decode instruction
+ cpi uart_rxtx,0x52
+ breq RESET
+ cpi uart_rxtx,0x54
+ breq TRANSFER
+
+ rjmp IDLE
+
+TRANSFER:
+
+ ; reset storage pointer
+ ldi ZL,low(STORAGE)
+ ldi ZH,high(STORAGE)
+ ldi scount,0
+
+TRANSFER_LOOP:
+
+ ; transmit storage
+ ld uart_rxtx,Z+
+ rcall UART_TX
+
+ ; count sent data
+ add scount,one
+
+ ; check amount of sent data
+ cpi scount,128
+ breq IDLE
+
+ rjmp TRANSFER_LOOP