'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2004 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 9/20/2004 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** DEFINE OSC 4 'aliases bLeft var portb.0 bRight var portb.1 bUp var portb.2 bDown var portb.3 bReset var portd.0 openLight var portd.1 testLight var portb.7 input bLeft input bRight input bUp input bDown output openLight output testLight lCount var word rCount var word uCount var Word dCount var word lPrev var byte rPrev var byte uPrev var byte dPrev var byte lTumbler var byte rTumbler var byte uTumbler var byte dTumbler var byte lTumbler = 0 rTumbler = 0 uTumbler = 0 dTumbler = 0 lCount = 0 rCount = 0 uCount = 0 dCount = 0 lPrev = 0 rPrev = 0 uPrev = 0 dPrev = 0 bReset = 0 low testlight main: serout2 portd.3, 16468, ["lCount = ", DEC lCount, 10, 13] serout2 portd.3, 16468, ["rCount = ", DEC rCount, 10, 13] serout2 portd.3, 16468, ["uCount = ", DEC uCount, 10, 13] serout2 portd.3, 16468, ["dCount = ", DEC dCount, 10, 13] serout2 portd.3, 16468, ["lTumbler = ", DEC lTumbler, 10, 13] serout2 portd.3, 16468, ["rTumbler = ", DEC rTumbler, 10, 13] serout2 portd.3, 16468, ["uTumbler = ", DEC uTumbler, 10, 13] serout2 portd.3, 16468, ["dTumbler = ", DEC dTumbler, 10, 13] if bReset = 1 then gosub reset endif if bLeft = 1 and lPrev = 0 then lCount = lCount + 1 lPrev = 1 endif if bleft = 0 then lPrev = 0 endif if bRight = 1 and rPrev = 0 then rCount = rCount + 1 rPrev = 1 endif if bRight = 0 then rPrev = 0 endif if bUp = 1 and uPrev = 0 then uCount = uCount + 1 uPrev = 1 endif if bUp = 0 then uPrev = 0 endif if bDown = 1 and dPrev = 0 then dCount = dCount + 1 dPrev = 1 endif if bDown = 0 then dPrev = 0 endif if lCount = 1 and rcount = 0 and uCount = 0 and dCount = 0 then lTumbler = 1 'high testLight endif if lCount = 1 AND rCount = 1 AND uCount = 0 and dCount = 0 then rTumbler = 1 'high testLight endif if lCount = 1 AND rCount = 1 AND uCount = 1 and dCount = 0 then uTumbler = 1 'high testLight endif if lCount = 1 AND rCount = 1 AND uCount = 1 and dCount = 1 then dTumbler = 1 'high testLight endif if lTumbler = 1 AND rTumbler = 1 AND uTumbler = 1 and dTumbler = 1 then gosub open endif goto main reset: lCount = 0 rCount = 0 uCount = 0 dCount = 0 lTumbler = 0 rTumbler = 0 uTumbler = 0 dTumbler = 0 lPrev = 0 rPrev = 0 uPrev = 0 dPrev = 0 breset = 0; low openlight high testLight pause 500 low testLight return open: High openlight return