constants [[portb 6][portb-ddr $86]] global [value] global [x] global [nc] global [fc] to receive setbit 7 portb-ddr clearbit 6 portb-ddr clearbit 5 portb-ddr setx 0 setfc 0 setnc 0 loop [ setvalue testbit 7 portb setx leftshift x 1 ifelse value = 0 [setx (x or 0) ] [setx (x or 1) ] setx x and $3F ifelse x = $32 [ setnc ((nc + 1) % 2) if nc = 1 [ setbit 6 portb setbit 5 portb clearbit 6 portb setnc 0 setfc 0 wait 2 ] setx 0 ] [ ifelse x = $0D [ setfc ((nc + 1) % 2) if fc = 1 [ setbit 5 portb setbit 6 portb clearbit 5 portb setnc 0 setfc 0 wait 2 ] setx 0 ] [ ifelse x = $15 [ clearbit 5 portb clearbit 6 portb setfc 0 setnc 0 setx 0 wait 2 ] [ setfc 0 setnc 0 ] ] ] repeat 4 [no-op] ] end