( Milestone 1 ) : HIGH OVER C@ OR SWAP C! ; : LOW OVER C@ SWAP NOT AND SWAP C! ; : MOVE 0= IF PORTB BIT1 LOW ELSE PORTB BIT1 HIGH THEN 0= IF PORTB BIT0 LOW ELSE PORTB BIT0 HIGH THEN 30 OC1M C! 0 OC1D C! 0 TOC1 ! TOC4 ! TOC3 ! 3C TCTL1 C! ; : S 1 1 0 0 MOVE ; S : DELAY 14 1 DO LOOP ; : WAIT 0 DO DELAY LOOP ; ( Milestone 2 ) : ADC0-3 10 ADCTL C! ; : ADC4-7 14 ADCTL C! ; : UPDATE0-3 ADC0-3 BEGIN ADCTL C@ 80 AND UNTIL ; : UPDATE4-7 ADC4-7 BEGIN ADCTL C@ 80 AND UNTIL ; : T UPDATE0-3 ." ADR1 = " ADR1 C@ . ." ADR2 = " ADR2 C@ . ." ADR3 = " ADR3 C@ . ." ADR4 = " ADR4 C@ . ; : T2 UPDATE4-7 ." ADR1 = " ADR1 C@ . ." ADR2 = " ADR2 C@ . ." ADR3 = " ADR3 C@ . ." ADR4 = " ADR4 C@ . ; : DELAY2 0 DO LOOP ; : BUZZ ( tone length -- ) 0 DO PORTB 16 HIGH DUP DELAY2 PORTB 16 LOW DUP DELAY2 LOOP . ; : UP 5 50 BUZZ 3 62 BUZZ 1 75 BUZZ ; : FLAT 1 75 BUZZ 1 75 BUZZ 1 75 BUZZ ; : DOWN 1 75 BUZZ 3 62 BUZZ 5 50 BUZZ ; : BACKNTURN HALFL @ HALFR @ 0 0 MOVE BUMPBACK @ DELAY2 S 1000 DELAY HALFL @ HALFR @ 0 1 MOVE BUMPTURN @ DELAY2 S 1000 DELAY HALFL @ HALFR @ 1 1 MOVE ;