entrypoint: ;at power_up gate=input/highz data=input/highz wait 50 ms data=output/low wait 850 ms gate=output/low wait 314 ms loop: wait 72 ms ;pause (eighteen "1=low" bits) sendbyte("S") ;1st letter sendbyte("C") ;2nd letter sendbyte("E") ;3rd letter sendbyte(...) ;4th letter (A, E, or I, depending on region) goto loop sendbyte(char): sendbit(0) ;one start bit (0=highz) for i=0 to 7 sendbit(char AND 1) ;output data (LSB first) char=char/2 next i sendbit(1) ;1st stop bit (1=low) sendbit(1) ;2nd stop bit (1=low) return sendbit(bit): if bit=1 then data=output/low elseif bit=0 then data=input/highz wait 4 ms ;4ms per bit = 250 bits per second return