procedure get_byte {
arguments_none
returns byte
variable count byte
variable char byte
while (serial_in) {
call delay()
}
call delay()
call delay()
call delay()
char := 0
count_down count 8 {
call delay()
char := char >> 1
if (serial_in) {
char@7 := 1
}
call delay()
call delay()
nop extra_instructions_per_bit - 7
}
call delay()
call delay()
return char
}