( POLAROID 6500 MODULE PINOUT ( 1 GND ( 2 BLNK ( GND ( 3 ( 4 INIT ( 5 ( 6 OSC ( 7 ECHO ( 8 BINH ( GND ( 9 V+ ( MAKE INIT HIGH, THEN TIME FOR RETURN ON ECHO LINE ( HOLD BLNK/BIHN LOW FOR SINGLE ECHO ( TAKE BLNK HIGH AFTER 2.3S AND TAKE BLNK HIGH AFTER EACH ECHO FOR MULTIPLE ( TMRA 0D00 ( TMRB 0D20 ( TMRC 0D40 ( TMRD 0D60 ( Count rising edges of primary source while secondary input high active ( 011 ( COUNT MODE ( 1100 ( PRIMARY COUNT SOURCE IP/16 ( 00 ( SECONDARY COUNT Counter # 1 input ( 0 ( COUNT ONCE - 0 FOR REPEATEDLY ( 0 ( COUNT LENGTH - 0 FOR ROLL OVER ( 0 ( DIR COUNT - 0 FOR UP ( 0 ( COINIT NO FORCE BY OTHER CHANNELS ( 000 ( OUPUT MODE, Active while counter is active ( 011 1100 00 0 0 0 0 000 ( 0111 1000 0000 0000 ( 7800 ( STATUS 00 TCF, TCFIE ( 00 TOF, TOFIE ( 00 IEF, IEFIE ( 1 IPS ( 0 INPUT ( 10 CAPTURE REGISTER OPERATION CAP ON FALLING EDGE ( 0 MASTER ( 0 EEOF ( 0 VAL ( 0 FORCE ( 0 OPS ( 0 OEN ( 0280 ( BASE + F ( CMP1 VALUE ( BASE + 0 ( CMP2 VALUE ( BASE + 1 COLD HEX : -LOOPVAR P@ DUP @ 0= IF DUP 1 + @ SWAP ! TRUE ELSE 1-! FALSE THEN ; 40 -LOOPVAR CNT MACHINE POLARANGER ON-MACHINE POLARANGER APPEND-STATE WAIT4START APPEND-STATE WAIT1TICK APPEND-STATE WAIT4ECHO IN-STATE WAIT4START CONDITION CNT CAUSES PA7 ON ( TMRC0 HIGH 0 D45 ! ( ZERO TMRC0 CNTR REG. 0 D4D ! ( ZERO TMRC1 CNTR REG. 0 D40 ! ( ZERO TMRC0 CMP1 REG. ( 0 D41 ! ( ZERO TMRC0 CMP2 REG. 0 D40 ! ( ZERO TMRC1 CMP1 REG. ( 0 D41 ! ( ZERO TMRC2 CMP2 REG. THEN-STATE WAIT1TICK TO-HAPPEN IN-STATE WAIT1TICK CONDITION TRUE CAUSES 7A00 D46 ! ( CTRL REG. TMRC0 CNT RISING IP/16 2ND PIN#0 0280 D47 ! ( SCR REG. TMRC0 CAP MODE RISING EDGE ( 7880 D4E ! ( CTRL REG. TMRC1 CNT RISING IP/16 2ND PIN#1 ( 0280 D4F ! ( SCR REG. TMRC1 CAP MODE RISING EDGE THEN-STATE WAIT4ECHO TO-HAPPEN IN-STATE WAIT4ECHO CONDITION D47 @ 0800 AND CAUSES PA7 OFF THEN-STATE WAIT4START TO-HAPPEN WAIT4START SET-STATE EVERY 2710 CYCLES SCHEDULE-RUNS POLARANGER ( 500 TIMES/SEC MIN : RANGE D42 @ BB / U. ." in. " ; : Z DECIMAL BEGIN CR D42 @ U. RANGE ?TERMINAL UNTIL ;