s16_nc.tmb for the SI51 16 channel switch input unit. Checks normally closed switch contacts and sends a string of characters when any contact is opened or closed. Format is: SSUUIIX SS=site number 01-99 UU=unit number 01-99 II=input 01-16 X=1 for activated, 0 for not is a carriage return is a line feed ------------------------------- NEW --- site number 1 H=1 --- unit number 2 M=1 --- init eeprom to input states 3 GOSUB 130 --- LED as power indicator 4 LED=1 --- check for change at inputs 10 READSW 11 IF A=0 10 --- check for alarms 20 S=1 21 LOOP 16 --- eeprom offset 22 A=239 --- add input number 23 A=A+S 24 E=A 25 READEE E --- skip if alarm not set 27 IF A=0 40 --- see if alarmed state 28 CHECKSW S --- skip if alarm state 29 IF A<>0 60 --- clear alarm status 30 A=0 31 B=0 32 WRITEEE E --- send alarm clear message 33 LED=0 34 GOSUB 100 35 PRINT "0" 36 PRINT 13 37 PRINT 10 38 LED=1 --- jump to next input 39 GOTO 60 --- alarm not set --- see if alarmed state 40 CHECKSW S --- skip if not alarmed state 41 IF A=0 60 --- set alarm status 42 A=1 43 B=0 44 WRITEEE E --- send alarm set message 45 LED=0 46 GOSUB 100 47 PRINT "1" 48 PRINT 13 49 PRINT 10 50 LED=1 --- next input 60 A=S 61 A=A+1 62 S=A 63 ENDLOOP --- back to main loop 70 GOTO 10 -------------------- send site in H --- 100 A=H 101 B=9 102 IF A>B 104 103 PRINT "0" 104 PRINT H --- send unit in M --- 110 A=M 111 B=9 112 IF A>B 114 113 PRINT "0" 114 PRINT M --- send input in S --- 120 A=S 121 B=9 122 IF A>B 124 123 PRINT "0" 124 PRINT S 125 RETURN --- init eeprom to inputs --- 130 S=1 131 LOOP 16 --- eeprom offset 132 A=239 --- add input number 133 A=A+S 134 E=A --- check state 135 CHECKSW S 136 IF A<>0 140 --- set alarm status 137 A=0 138 B=0 139 GOTO 142 140 A=1 141 B=0 142 WRITEEE E --- next input 143 A=S 144 A=A+1 145 S=A 146 ENDLOOP 147 RETURN