* }
*
* param cb: r24:r25
+ * return: r24
+ * modifys: r22-r27,r30,r31
*/
.global circularbytebuffer_get_fifo
circularbytebuffer_get_fifo:
ldd r23, Z+BUFFER_SIZE_OFFSET
cp r22, r23
brne 10f
+5:
ldi r24, 1
ret
10:
ldd r22, Z+FILLCOUNT_OFFSET
ldd r23, Z+BUFFER_SIZE_OFFSET
cp r22, r23
- brne 10f
- ldi r24, 1
- ret
+ brlo 10f
+ rjmp 5b
+; ldi r24, 1
+; ret
10:
- clt
- tst r22
- brne 11f
- set
+; clt
+; tst r22
+; brne 11f
+; set
11:
inc r22
std Z+FILLCOUNT_OFFSET, r22
20:
std Z+HEAD_OFFSET, r26
std Z+HEAD_OFFSET+1, r27
- brtc 30b
- std Z+TAIL_OFFSET, r26
- std Z+TAIL_OFFSET+1, r27
+; brtc 30b
+; std Z+TAIL_OFFSET, r26
+; std Z+TAIL_OFFSET+1, r27
rjmp 30b