what_bit: 'only count sensor events when door locked or if alarm exists IF bit0=1 OR alm_level_flag>0 THEN sensor_flag=1 GOSUB read_screen 'save all sensor event conditions to menu.log LOCATE 16,62 PRINT count1 'sensor count bitstat=sensor XOR sensor2 'XOR to determine changed bit bitpattern$=bin$(bitstat) 'give it an alpha pattern LOCATE 15,40 PRINT SPC(27) LOCATE 15,40 PRINT "XOR bit ";bitpattern$ SELECT CASE bitpattern$ CASE "1" IF bit0=1 THEN what$="Kitchen Door locked." ON ERROR RESUME NEXT KILL "menu*.log" END IF IF bit0=0 THEN what$="Kitchen Door UNLOCKED." IF sensor_flag=1 THEN INCR count1 END IF CASE "10" IF bit1=1 THEN what$="Downstairs doors/windows closed." IF bit1=0 THEN what$="Downstairs door/window OPEN." IF sensor_flag=1 THEN INCR count1 END IF CASE "100" IF bit2=1 THEN what$="Upstairs windows closed." IF bit2=0 THEN what$="Upstairs window OPEN." IF sensor_flag=1 THEN INCR count1 END IF CASE "1000" IF bit3=1 THEN what$="Clear upstairs." IF bit3=0 THEN what$="MOTION upstairs." IF sensor_flag=1 THEN INCR count1 END IF CASE "10000" IF bit4=1 THEN what$="Clear in living room." IF bit4=0 THEN what$="MOTION in living room." IF sensor_flag=1 THEN INCR count1 END IF CASE "100000" IF bit5=1 THEN what$="Clear in dining room." IF bit5=0 THEN what$="MOTION in dining room." IF sensor_flag=1 THEN INCR count1 END IF CASE "1000000" IF bit6=1 THEN what$="Clear in kitchen." IF bit6=0 THEN what$="MOTION in kitchen." IF sensor_flag=1 THEN INCR count1 END IF CASE "10000000" IF bit7=1 THEN what$="Clear in back room." IF bit7=0 THEN what$="MOTION in back room." IF sensor_flag=1 THEN INCR count1 END IF END SELECT sensor_flag=0 IF alm_level_flag>0 OR _ 'an alarm condition or bitpattern$ = "1" OR _ 'if keylock status changed or bitpattern$ = "10" OR _ 'downstairs door/window status changed or bitpattern$ = "100" THEN 'or upstairs window status changed GOSUB save_log 'write to log END IF RETURN