' {$STAMP BS2} ' {$PBASIC 2.5} forw VAR Word back VAR Word left VAR Word right VAR Word up VAR Word down VAR Word LOW 5 DO PULSOUT 4, 1200 SERIN 4, 16468, [WAIT("!"), forw.HIGHBYTE, forw.LOWBYTE, back.HIGHBYTE, back.LOWBYTE, left.HIGHBYTE, left.LOWBYTE, right.HIGHBYTE, right.LOWBYTE, up.HIGHBYTE, up.LOWBYTE, down.HIGHBYTE, down.LOWBYTE] IF (forw=0) THEN HIGH 0 LOW 1 HIGH 2 LOW 3 ELSE LOW 0 LOW 1 LOW 2 LOW 3 ENDIF IF (back=0) THEN LOW 0 HIGH 1 LOW 2 HIGH 3 ELSE LOW 0 LOW 1 LOW 2 LOW 3 ENDIF IF (left=0) THEN HIGH 0 LOW 1 LOW 2 HIGH 3 ELSE LOW 0 LOW 1 LOW 2 LOW 3 ENDIF IF (right=0) THEN LOW 0 HIGH 1 HIGH 2 LOW 3 ELSE LOW 0 LOW 1 LOW 2 LOW 3 ENDIF IF (up=1) THEN PULSOUT 14, 850 ELSE PULSOUT 14, 750 ENDIF IF (down=1) THEN PULSOUT 14, 650 ELSE PULSOUT 14, 750 ENDIF LOOP