1 DISABLE 2 PRINT "Full JB-077V1.00":SLEEP 2000:ON ERROR GOTO 561 3 COMMON SclDa$,ScrSt$,SPO%,TCM%,LVar$,HMITerm$,IOP%,PIO%,IOF%,IOMAP%,IP# 4 COMMON RxD%,Cfg%,TxD%,WtG!,WtD$,WtS$,WrkGW!,NumScales%,AxlWt!,SerDisp$ 5 COMMON WtUn$,WtGr$,WtNt$,WtInc%,WtS%,MFunc%,OMS$,OMT$,OMR%,OMIP$,browser% 6 COMMON RxDMsg%,TxDMsg%,TxDTrg%,SVC$,SVPtr%,SVStr$,Cheat%,TCDGWt#,JagDisp$,JagSum$ 7 COMMON BeTheScl,Thresh#,SclTyp%,ExcTm%,ExcWt#,EndTm%,TCDM%,TCDZ%,TCDO%,TCDU% 8 COMMON TCDN%,TCDX$,WghRng%,WtMot%,WtNet%,WtUnZ%,WtOvC%,WtCOZ%,WtRng%,LNS 9 COMMON SclState%,SPTRef#,SPTerm%,SPFilt%,LRxDMsg%,TransStat%,JS%,SKT%,ZScl% 10 COMMON SOMmsg$,SOMstr$,SOMsrc$,SOMterm$,SlavDsp$,RemoteNode%,RemNdScl% 11 EVENT key:ON EVENT key GOSUB 482 12 EVENT TIME 13 GOSUB 438:GOSUB 72:GoSub 314 14 ENABLE 15 Msg54%=1:CrLf$=Chr$(13)+Chr$(10):NetErrors%=0 16 IF browser%>0 THEN GOTO 563 17 IF LNS<1 THEN GOTO 20 18 IF BeTheScl=1 THEN GOTO 20 19 GOSUB 28 20 GOSUB 548 21 GOSUB 127 22 GOSUB 58 23 GOSUB 98 24 GOSUB 121 25 GOSUB 166 26 GOSUB 53 27 GOTO 16 28 IF RemNdScl%>0 THEN fw%=RemNdScl%:GOTO 30 29 fw%=1:IF LNS>1 THEN fw%=5 30 ON ERROR GOTO 38 31 WtG!(1)=TCDGWt#(fw%):WtS%(1)=0 32 IF TCDO%(fw%)<>0 THEN WtS%(1)=2:GOTO 36 33 IF TCDU%(fw%)<>0 THEN WtS%(1)=1:GOTO 36 34 IF TCDM%(fw%)<>0 THEN WtS%(1)=3:GOTO 36 35 IF TCDZ%(fw%)<>0 THEN WtS%(1)=4 36 WtMot%(1)=TCDM%(fw%):WtNet%(1)=TCDN%(fw%):WtOvC%(1)=TCDO%(fw%):WtUnZ%(1)=TCDU%(fw%) 37 WtCOZ%(1)=TCDZ%(fw%):WtUn$=TCDX$(fw%):WtRng%(1)=WghRng%(fw%):GoTo 41 38 IF ERR()<>32 THEN GOTO 561 39 NetErrors%=NetErrors%+1:IF NetErrors%>30000 THEN NetErrors%=30000 40 WtMot%(1)=1:GoTo 42 41 NetErrors%=0 42 ON ERROR GOTO 561:RETURN 43 RxDMsg%=0 44 IOF%(S1EnGrn%)=1:IOF%(S1ExGrn%)=1:IOF%(S2EnGrn%)=1:IOF%(S2ExGrn%)=1 45 IOF%(S1EnRed%)=1:IOF%(S1ExRed%)=2:IOF%(S2EnRed%)=1:IOF%(S2ExRed%)=2 46 RETURN 47 RxDMsg%=0 48 IOF%(S1EnGrn%)=0:IOF%(S1ExGrn%)=0:IOF%(S2EnGrn%)=0:IOF%(S2ExGrn%)=0 49 IOF%(S1EnRed%)=0:IOF%(S1ExRed%)=0:IOF%(S2EnRed%)=0:IOF%(S2ExRed%)=0:RETURN 50 IF IOF%(S1EnRed%)<2 THEN GOTO 52 51 IOF%(S1EnRed%)=1:IOF%(S1ExRed%)=2:IOF%(S2EnRed%)=1:IOF%(S2ExRed%)=2:RETURN 52 IOF%(S1EnRed%)=2:IOF%(S1ExRed%)=1:IOF%(S2EnRed%)=2:IOF%(S2ExRed%)=1:RETURN 53 FOR WO%=13 TO 24 54 IF IOF%(WO%)=0 THEN IOP%(WO%)=PIO%(WO%):GOTO 56 55 IF IOF%(WO%)=1 THEN IOP%(WO%)=0 ELSE IOP%(WO%)=1 56 NEXT WO% 57 RETURN 58 IF LNS>0 THEN GoTo 64 59 GSum#=0:MtSum%=0:NtSum%=0:OvSum%=0:UnSum%=0:CZSum%:RgSum%=0 60 IF NumScales%<1 THEN GOTO 65 61 FOR WTSN%=1 TO NumScales% 62 WrkGW!(WTSN%)=WtG!(WTSN%):GSum#=GSum#+WrkGW!(WTSN%):NEXT WTSN% 63 GoTo 65 64 GSum#=WtG!(1):MtSum%=WtMot%(1):NtSum%=WtNet%(1):OvSum%=WtOvC%(1):UnSum%=WtUnZ%(1):CZSum%=WtCOZ%(1):RgSum%=WtRng%(1) 65 RETURN 66 IF WtInc%=0 THEN GOTO 68 67 BeTheScl=1:DHWt$=LTRIM$(SerDisp$):GOTO 70 68 IF LNS>1 THEN DHWt$=LTRIM$(JagSum$):GOTO 70 69 DHWt$=LTRIM$(JagDisp$) 70 DHWt$=PADL$(DHWt$,6," ") 71 RETURN 72 ON ERROR GOTO 78 73 LCDCn%=55:LCDBr%=80 74 OPEN "Settings.LCD" FOR INPUT AS #0 75 INPUT #0,LCDCn$,LCDBr$ 76 LCDCn%=VAL(LCDCn$):LCDBr%=VAL(LCDBr$) 77 CLOSE #0 78 ON ERROR GOTO 561 79 LCDInit$=CHR$(4)+CHR$(20)+CHR$(23)+CHR$(15)+CHR$(LCDCn%)+CHR$(14)+CHR$(LCDBr%) 80 SFLSt$=LCDInit$+CHR$(12)+CHR$(1)+" JB-077, V1.00 MA "+" Full Length Scale " 81 SFLSt$=SFLSt$+"IP: "+IPS$(IP#) 82 SlavDsp$(1)=" JB-077, V2.00 SL ":SlavDsp$(2)=" Full Length Scale " 83 SlavDsp$(3)=" Mettler Toledo ":SlavDsp$(4)=" " 84 GOSUB 85:SLEEP 1000:RETURN 85 IF Cfg%(1)=1 THEN Print #1,SFLSt$; 86 IF Cfg%(2)=1 THEN Print #2,SFLSt$; 87 IF MFunc%<>1 THEN RETURN 88 IF Cfg%(3)=1 THEN Print #3,SFLSt$; 89 IF Cfg%(4)=1 THEN Print #4,SFLSt$; 90 RETURN 91 SlavDsp$(1)=" ":SlavDsp$(2)=" ":SlavDsp$(3)=" ":SlavDsp$(4)=" " 92 IF Cfg%(1)=1 THEN Print #1,CHR$(12); 93 IF Cfg%(2)=1 THEN Print #2,CHR$(12); 94 IF MFunc%<>1 THEN RETURN 95 IF Cfg%(3)=1 THEN Print #3,CHR$(12); 96 IF Cfg%(4)=1 THEN Print #4,CHR$(12); 97 RETURN 98 IF JS%(4)<>0 THEN GOTO 100 99 OGWtSt$=CHR$(17)+CHR$(16)+CHR$(255)+CHR$(3)+SPACE$(20):SlavDsp$(4)=" ":GOTO 116 100 IF NetErrors%<3 THEN GoTo 102 101 OGWtSt$=CHR$(17)+CHR$(16)+CHR$(255)+String$(20," "):SlavDsp$(4)=" ":GoTo 116 102 DHWR$=" ":IF RgSum%=0 THEN GOTO 104 103 Tmp$=Str$(RgSum%):DHWR$="W"+LTRIM$(Tmp$) 104 DHMT$=" ":IF MtSum%>0 then DHMT$=" "+CHR$(206)+" ":GOTO 105 105 DHDNG$=WtGr$:IF GSum#=0 THEN GOSUB 66:DHMT$=">0<":GOTO 110 106 IF WtInc%=0 THEN GOTO 108 107 DHWt$=LTRIM$(SerDisp$):GOTO 110 108 IF LNS>1 THEN DHWt$=LTRIM$(JagSum$):GOTO 110: 109 DHWt$=LTRIM$(JagDisp$) 110 DHWt$=PADL$(DHWt$,6," ") 111 IF OvSum%<>0 THEN DHWt$=STRING$(6,CHR$(222)):GOTO 113 112 IF UnSum%<>0 THEN DHWt$=STRING$(6,CHR$(224)) 113 OGWtSt$=CHR$(17)+CHR$(16)+CHR$(255)+CHR$(3)+DHDNG$+": "+DHWt$+" "+WtUn$ 114 OGWtSt$=OGWtSt$+" "+DHMT$+" "+DHWR$:OGWtSt$=PADR$(OGWtSt$,24," ") 115 SlavDsp$(4)=DHDNG$+": "+DHWt$+" "+WtUn$+" "+DHMT$+" "+DHWR$ 116 IF PhoCell%=25 THEN GOTO 120 117 IF IOP%(PhoCell%)<>1 THEN GOTO 120 118 OGWtSt$=CHR$(17)+CHR$(16)+CHR$(255)+CHR$(3)+"Loop Not Clear!!" 119 SlavDsp$(4)="PHOTOEYE BLOCKED !!" 120 SFLSt$=OGWtSt$: Gosub 85:RETURN 121 IF VAL(SOMmsg$)=0 THEN RETURN 122 DISABLE 123 QORDS$=SOMstr$:QORDR%=VAL(SOMsrc$):QORDT$=SOMterm$:QORDIP$="":GOSUB 301 124 ENABLE 125 SOMmsg$="0":RETURN 126 LVar$(17)="":KPStr$="":KPPtr%=1:KPPtrMem%=1:HMITerm$="":RETURN 127 IF TxDMsg%=0 THEN GOTO 130 128 IF TxDTrg%<>1 THEN TxDTrg%=1 129 RETURN 130 IF TMSTC%>0 THEN TxDMsg%=TMSTC%:TransStat%=TMSTC%:TxDTrg%=1:TMSTC%=0:RETURN 131 IF NumOM%=0 THEN GOTO 133 132 GOSUB 135:RETURN 133 IF Msg54%<>0 THEN TxDMsg%=54:TxDTrg%=1:Msg54%=0 134 RETURN 135 DISABLE 136 LVar$(24)=OMS$(NxtOtOM%):TxD%(1)=OMR%(NxtOtOM%):TxD%(2)=ASC(OMT$(NxtOtOM%)):LVar$(23)=OMIP$(NxtOtOM%) 137 NumOM%=NumOM%-1:IF NumOM%<1 THEN GOSUB 314:GOTO 139 138 NxtOtOM%=NxtOtOM%+1:IF NxtOtOM%>5 THEN NxtOtOM%=1 139 ENABLE 140 TxDMsg%=51:TxDTrg%=1:RETURN 141 TrnSt%=0:TransStat%=0:IF TrnMd%=1 THEN GOTO 144 142 PIO%(EntGrn%)=1:PIO%(EntRed%)=0:PIO%(ExtGrn%)=1:PIO%(ExtRed%)=0 143 PIO%(EntBar%)=0:PIO%(ExtBar%)=1:GOTO 147 144 PIO%(S1EnGrn%)=0:PIO%(S1EnRed%)=1:PIO%(S1ExGrn%)=0:PIO%(S1ExRed%)=1 145 PIO%(S2EnGrn%)=0:PIO%(S2EnRed%)=1:PIO%(S2ExGrn%)=0:PIO%(S2ExRed%)=1 146 PIO%(EntBar%)=1:PIO%(ExtBar%)=1 147 PRINT "Ready":RETURN 148 IF TrnMd%=1 THEN GOTO 150 149 IF TCWt#>Thresh# THEN RETURN ELSE GOTO 151 150 IF IOP%(Loop1%)<>0 OR IOP%(Loop2%)<>0 OR TCWt#>Thresh# THEN RETURN 151 GOSUB 141 152 FOR CG%=1 TO 20:TCM%(CG%)=0:NEXT CG% 153 RETURN 154 FOR STR%=1 TO 20:TCM%(STR%)=0:NEXT STR% 155 RETURN 156 TMSTC%=108:Print "Reset Sequence":GOSUB 141:GoSub 314:RETURN 157 ON ERROR GOTO 164 158 ZSNum%=1:IF RemNdScl%>0 THEN ZSNum%=RemNdScl%:GOTO 160 159 IF LNS>1 THEN ZSNum%=5 160 IF TCDZ%(ZSNum%)=1 THEN AtZero%=1:GoTo 165 161 IF TCWt#32 THEN GOTO 561 165 ON ERROR GOTO 561:RETURN 166 TCWt#=GSum#:IF TrnMd%=1 THEN GOTO 212 167 IF TrnSt%=0 THEN GOTO 177 168 IF TrnSt%=1 THEN GOTO 180 169 IF TrnSt%=2 THEN GOTO 186 170 IF TrnSt%=3 THEN GOTO 189 171 IF TrnSt%=4 THEN GOTO 190 172 IF TrnSt%=5 THEN GOTO 195 173 IF TrnSt%=6 THEN GOTO 200 174 IF TrnSt%=7 THEN GOTO 204 175 IF TrnSt%=8 THEN GOTO 208 176 GOSUB 141:RETURN 177 IF TCWt#1 THEN RETURN 183 IF ExtBLS%=25 THEN GOTO 185 184 IF IOP%(ExtBLS%)<>1 THEN RETURN 185 TrnSt%=2:RETURN 186 IF TCWt#0 THEN Print "Motion":RETURN 188 Print "OK TO Weigh":TMSTC%=104:TrnSt%=3:RETURN 189 TrnSt%=4 190 IF TCWt#1 THEN RETURN 192 GOSUB 314 193 TCM%(7)=0:Print "Transac Complete" 194 PIO%(ExtGrn%)=1:PIO%(ExtRed%)=0:PIO%(ExtBar%)=0:TrnSt%=5:RETURN 195 IF TCWt#>Thresh# THEN RETURN 196 PIO%(ExtGrn%)=0:PIO%(ExtRed%)=1:PIO%(ExtBar%)=1:PRINT "Truck is Gone" 197 GOSUB 314 198 TCZC%=20:IF LNS>0 THEN TrnSt%=6:AtZero%=0:GoSub 157:RETURN 199 TMSTC%=101:TrnSt%=7:RETURN 200 GoSub 157:IF AtZero%=1 THEN GoSub 141:RETURN 201 Print "Zeroing Scale":TCZC%=TCZC%-1 202 IF TCZC%<1 THEN Print "Scale Zero Error":TrnSt%=8:GOSUB 44 203 RETURN 204 IF TCWt#=0 OR TCM%(2)<>0 THEN TCM%(2)=0:Print "Scale at Zero":GoSub 141:RETURN 205 IF TCM%(3)=1 THEN TCM%(3)=0:PRINT "Scale Zero Error":TrnSt%=8:GOSUB 44:RETURN 206 TCZC%=TCZC%-1:IF TCZC%<1 THEN Print "Scale Zero Error":TrnSt%=8:GOSUB 44 207 RETURN 208 GOSUB 50 209 IF TCWt#=0 THEN GOSUB 48:GoSub 141:RETURN 210 IF TCM%(2)<>0 THEN TCM%(2)=0:GOSUB 48:GOSUB 141 211 RETURN 212 IF TrnSt%=0 THEN GOTO 225 213 IF TrnSt%=1 THEN GOTO 240 214 IF TrnSt%=2 THEN GOTO 244 215 IF TrnSt%=3 THEN GOTO 251 216 IF TrnSt%=4 THEN GOTO 255 217 IF TrnSt%=5 THEN GOTO 260 218 IF TrnSt%=6 THEN GOTO 268 219 IF TrnSt%=7 THEN GOTO 271 220 IF TrnSt%=8 THEN GOTO 272 221 IF TrnSt%=9 THEN GOTO 276 222 IF TrnSt%=95 THEN GOTO 279 223 IF TrnSt%=10 THEN GOTO 282 224 GOSUB 141:RETURN 225 IF IOP%(Loop1%)=1 THEN GOTO 228 226 IF IOP%(Loop2%)=1 THEN GOTO 232 227 GOSUB 141:RETURN 228 EntGrn%=S1EnGrn%:EntRed%=S1EnRed%:ExtGrn%=S1ExGrn%:ExtRed%=S1ExRed% 229 BSNGrn%=S2EnGrn%:BSNRed%=S2EnRed%:BSXGrn%=S2ExGrn%:BSXRed%=S2ExRed% 230 EntBar%=Bar1%:ExtBar%=Bar2%:EntLoop%=Loop1%:ExtLoop%=Loop2% 231 EntBLS%=BLS1%:ExtBLS%=BLS2%:GOTO 236 232 EntGrn%=S2EnGrn%:EntRed%=S2EnRed%:ExtGrn%=S2ExGrn%:ExtRed%=S2ExRed% 233 BSNGrn%=S1EnGrn%:BSNRed%=S1EnRed%:BSXGrn%=S1ExGrn%:BSXRed%=S1ExRed% 234 EntBar%=Bar2%:ExtBar%=Bar1%:EntLoop%=Loop2%:ExtLoop%=Loop1% 235 EntBLS%=BLS2%:ExtBLS%=BLS1% 236 GOSUB 154:PIO%(BSNGrn%)=0:PIO%(BSNRed%)=1:PIO%(BSXGrn%)=0:PIO%(BSXRed%)=1 237 TCZC%=25:IF LNS<1 THEN GOTO 239 238 Print "Zeroing Scale":TrnSt%=1:AtZero%=0:GoSub 157:RETURN 239 PRINT "Zero Scale":TMSTC%=101:TrnSt%=2:RETURN 240 GOSUB 148:IF TrnSt%=0 THEN RETURN 241 GoSub 157:IF AtZero%=1 THEN Print "Scale Zeroed":GOTO 249 242 TCZC%=TCZC%-1:IF TCZC%<1 THEN Print "Scale Zero Err#1":TrnSt%=10:GOSUB 44 243 RETURN 244 IF TCM%(3)=1 THEN TCM%(3)=0:PRINT "Scale Zero Err#2":TrnSt%=10:GOSUB 44:RETURN 245 TCZC%=TCZC%-1:IF TCZC%<1 THEN Print "Scale Zero Err#3":TrnSt%=10:GOSUB 44 246 GOSUB 148:IF TrnSt%=0 THEN RETURN 247 IF TCM%(2)<>0 OR TCWt#=0 THEN GOTO 249 248 RETURN 249 TCM%(2)=0:PIO%(EntGrn%)=1:PIO%(EntRed%)=0:PIO%(ExtGrn%)=1:PIO%(ExtRed%)=0 250 PIO%(EntBar%)=0:Print "Scale at Zero":TrnSt%=3:EndTmRef#=Timer():RETURN 251 IF TCWt#>Thresh# THEN Goto 254 252 IF (Timer()-EndTmRef#)>EndTm% THEN GOSUB 148 253 RETURN 254 PIO%(EntGrn%)=0:PIO%(EntRed%)=1:Print "Trk Entering Scl":TrnSt%=4:RETURN 255 IF IOP%(EntLoop%)=1 THEN RETURN 256 IF PhoCell%=25 THEN GOTO 258 257 IF IOP%(PhoCell%)=1 THEN RETURN 258 IF TCWt#1 THEN Print "Ent Barrier Up":RETURN 263 PIO%(EntBar%)=0:PIO%(ExtBar%)=0 264 TMSTC%=109:Print "Seq. Error @651":TrnSt%=10:GOSUB 44:RETURN 265 IF ExtBLS%=25 THEN GOTO 267 266 IF IOP%(ExtBLS%)<>1 THEN Print "Ext Barrier Up":RETURN 267 Print "Barriers Closed":TrnSt%=6:RETURN 268 IF TCWt#0 THEN Print "Motion":RETURN 270 Print "Ok to Weigh":TMSTC%=104:TrnSt%=7:RETURN 271 TrnSt%=8 272 IF TCWt#1 THEN RETURN 274 TCM%(7)=0:Print "Transac Complete" 275 PIO%(ExtGrn%)=1:PIO%(ExtRed%)=0:PIO%(ExtBar%)=0:TrnSt%=9:RETURN 276 IF TCWt#>Thresh# THEN RETURN 277 PIO%(ExtGrn%)=0:PIO%(ExtRed%)=1:PIO%(ExtBar%)=1 278 EndTmRef#=Timer():TrnSt%=95:RETURN 279 IF (Timer()-EndTmRef#)0 THEN TCM%(2)=0:GOSUB 48:GOSUB 141 284 IF TCWt#8 THEN GOTO 291 287 FOR TML%=1 TO 20: TCM%(TML%)=0: NEXT TML% 288 GOSUB 48:TransStat%=0:GoSub 314 289 PIO%(ExtGrn%)=1:PIO%(ExtRed%)=0:PIO%(ExtBar%)=0 290 IF TrnMd%=1 THEN TrnSt%=9 Else TrnMd%=5 291 RxDMsg%=0:IF TM%>0 AND TM%<=20 THEN TCM%(TM%)=1 292 RETURN 293 SlavDsp$(3)=" ":IF OpGuide%=0 THEN RETURN 294 SFLST$=CHR$(17)+CHR$(16)+CHR$(255)+CHR$(2)+SPACE$(20) 295 GOSUB 85:RETURN 296 ScrSt$="0":RxDMsg%=0 297 SlavDsp$(1)=" ":SlavDsp$(2)=" ":SlavDsp$(3)=" ":IF OpGuide%=0 THEN GoTo 300 298 SFLST$=CHR$(1)+SPACE$(60) 299 GOSUB 85 300 RETURN 301 IF TrnSt%=5 THEN GOTO 313 302 IF TrnSt%=9 THEN GOTO 313 303 IF PhoCell%=25 THEN GOTO 305 304 IF IOP%(PhoCell%)=1 THEN GOTO 313 305 IF TxDMsg%<>0 THEN GoTo 309 306 IF NumOM%>0 THEN GoTo 309 307 LVar$(24)=QORDS$:TxD%(1)=QORDR%:TxD%(2)=ASC(QORDT$):LVar$(23)=QORDIP$ 308 TxDMsg%=51:TxDTrg%=1:GoSub 314:GoTo 313 309 OMS$(NxtInOM%)=QORDS$:OMR%(NxtInOM%)=QORDR%:OMT$(NxtInOM%)=QORDT$:OMIP$(NxtInOM%)=QORDIP$ 310 NxtInOM%=NxtInOM%+1:IF NxtInOM%>1 THEN NxtInOM%=1 311 NumOM%=NumOM%+1:IF NumOM%<=1 THEN GoTo 313 312 NumOM%=1:NxtOtOM%=NxtInOM% 313 QORDS$="":QORDR%=0:QORDT$="":QORDIP$="":Return 314 DISABLE 315 QORDS$="":QORDR%=0:QORDT$="":QORDIP$="":NumOM%=0:NxtInOM%=1:NxtOtOM%=1:RxDMsg%=0 316 For FLB%=1 TO 1 317 OMS$(FLB%)="":OMR%(FLB%)=0:OMT$(FLB%)="":OMIP$(FLB%)="" 318 Next FLB% 319 ENABLE 320 RETURN 321 LVar$(18)=LVar$(1):LVar$(19)="":LVar$(20)="" 322 IF RxD%(1)<41 THEN GOTO 324 ELSE LVar$(19)=LVar$(2) 323 IF RxD%(1)<81 THEN GOTO 324 ELSE LVar$(20)=LVar$(3) 324 SFLSt$=CHR$(1)+SPACE$(60)+CHR$(1)+LVar$(18)+LEFT$(LVar$(19),20) 325 SlavDsp$(1)=LEFT$(LVar$(18),20) 326 IF (LEN(LVar$(18)) < 21) THEN SlavDsp$(2)=" ":SlavDsp$(3)=" ":GOTO 330 327 SlavDsp$(2)=MID$(LVar$(18),21,20) 328 IF (LEN(LVar$(19)) = 0) THEN SlavDsp$(3)=" ":GOTO 330 329 SlavDsp$(3)=LEFT$(LVar$(19),20) 330 IF OpGuide%=0 THEN GOTO 332 331 GOSUB 85 332 ScrSt$="2":RxDMsg%=0:RETURN 333 IF SPO%(2)=0 THEN GOTO 336 334 IF SPO%(2)=2 THEN DELEVENT #2 335 CLOSE #2:SPO%(2)=0 336 IF MFunc%<>1 THEN RETURN 337 IF SPO%(3)=0 THEN GOTO 340 338 IF SPO%(3)=2 THEN DELEVENT #3 339 CLOSE #3:SPO%(3)=0 340 IF SPO%(4)=0 THEN RETURN 341 IF SPO%(4)=2 THEN DELEVENT #4 342 CLOSE #4:SPO%(4)=0:RETURN 343 ON ERROR GOTO 358 344 IF Cfg%(1)=0 OR SPO%(1)>0 THEN GOTO 359 345 IF Cfg%(1)=1 THEN OpGuide%=1 346 IF Cfg%(1)>39 THEN GOTO 349 347 OPEN "com1: xpr null" FOR OUTPUT AS #1 348 SPO%(1)=1:GOTO 359 349 IF SPTerm%(1)=4 THEN OPEN "com1: event len40 trm10" FOR INPUT AS #1:GOTO 354 350 IF SPTerm%(1)=5 THEN OPEN "com1: event len40 trm13" FOR INPUT AS #1:GOTO 354 351 IF SPTerm%(1)=6 THEN OPEN "com1: event len40 trm3" FOR INPUT AS #1:GOTO 354 352 IF SPTerm%(1)=7 THEN OPEN "com1: event len1" FOR INPUT AS #1:GOTO 354 353 GOTO 359 354 FLUSH #1 355 ON EVENT #1 GOSUB 532 356 SPO%(1)=2:S1$="":INPUT #1,S1$ 357 GOTO 359 358 Cfg%(1)=0:SPO%(1)=0 359 ON ERROR GOTO 374 360 IF Cfg%(2)=0 OR SPO%(2)>0 THEN GOTO 375 361 IF Cfg%(2)=1 THEN OpGuide%=1 362 IF Cfg%(2)>39 THEN GOTO 365 363 OPEN "com2: xpr null" FOR OUTPUT AS #2 364 SPO%(2)=1:GOTO 375 365 IF SPTerm%(2)=4 THEN OPEN "com2: event len40 trm10" FOR INPUT AS #2:GOTO 370 366 IF SPTerm%(2)=5 THEN OPEN "com2: event len40 trm13" FOR INPUT AS #2:GOTO 370 367 IF SPTerm%(2)=6 THEN OPEN "com2: event len40 trm3" FOR INPUT AS #2:GOTO 370 368 IF SPTerm%(2)=7 THEN OPEN "com2: event len1" FOR INPUT AS #2:GOTO 370 369 GOTO 375 370 FLUSH #2 371 ON EVENT #2 GOSUB 536 372 SPO%(2)=2:S2$="":INPUT #2,S2$ 373 GOTO 375 374 Cfg%(2)=0:SPO%(2)=0 375 IF MFunc%<>1 THEN GOTO 408 376 ON ERROR GOTO 391 377 IF Cfg%(3)=0 OR SPO%(3)>0 THEN GOTO 392 378 IF Cfg%(3)=1 THEN OpGuide%=1 379 IF Cfg%(3)>39 THEN GOTO 382 380 OPEN "com3: xpr null" FOR OUTPUT AS #3 381 SPO%(3)=1:GOTO 392 382 IF SPTerm%(3)=4 THEN OPEN "com3: event len40 trm10" FOR INPUT AS #3:GOTO 387 383 IF SPTerm%(3)=5 THEN OPEN "com3: event len40 trm13" FOR INPUT AS #3:GOTO 387 384 IF SPTerm%(3)=6 THEN OPEN "com3: event len40 trm3" FOR INPUT AS #3:GOTO 387 385 IF SPTerm%(3)=7 THEN OPEN "com3: event len1" FOR INPUT AS #3:GOTO 387 386 GOTO 392 387 FLUSH #3 388 ON EVENT #3 GOSUB 540 389 SPO%(3)=2:S3$="":INPUT #3,S3$ 390 GOTO 392 391 Cfg%(3)=0:SPO%(3)=0 392 ON ERROR GOTO 407 393 IF Cfg%(4)=0 OR SPO%(4)>0 THEN GOTO 408 394 IF Cfg%(4)=1 THEN OpGuide%=1 395 IF Cfg%(4)>39 THEN GOTO 398 396 OPEN "com4: xpr null" FOR OUTPUT AS #4 397 SPO%(4)=1:GOTO 408 398 IF SPTerm%(4)=4 THEN OPEN "com4: event len40 trm10" FOR INPUT AS #4:GOTO 403 399 IF SPTerm%(4)=5 THEN OPEN "com4: event len40 trm13" FOR INPUT AS #4:GOTO 403 400 IF SPTerm%(4)=6 THEN OPEN "com4: event len40 trm3" FOR INPUT AS #4:GOTO 403 401 IF SPTerm%(4)=7 THEN OPEN "com4: event len1" FOR INPUT AS #4:GOTO 403 402 GOTO 408 403 FLUSH #4 404 ON EVENT #4 GOSUB 544 405 SPO%(4)=2:S4$="":INPUT #4,S4$ 406 GOTO 408 407 Cfg%(4)=0:SPO%(4)=0 408 ON ERROR GOTO 561:RETURN 409 S1EnGrn%=26:S1EnRed%=26:S1ExGrn%=26:S1ExRed%=26:S2EnGrn%=26:S2EnRed%=26 410 S2ExGrn%=26:S2ExRed%=26:Bar1%=26:Bar2%=26:Loop1%=25:Loop2%=25:BLS1%=25:BLS2%=25 411 EntGrn%=26:EntRed%=26:ExtGrn%=26:ExtRed%=26:BSNGrn%=26:BSNRed%=26:BSXGrn%=26:BSXRed%=26 412 EntBar%=26:ExtBar%=26:EntLoop%=25:ExtLoop%=25:EntBLS%=25:ExtBLS%=25 413 PhoCell%=25:Illumin%=26:StrtWghPB%=26:TrnMd%=0 414 FOR SP%=5 TO 16 415 IF Cfg%(SP%)=0 THEN GOTO 422 416 IF Cfg%(SP%)=51 THEN EntLoop%=SP%-4:Loop1%=EntLoop%:TrnMd%=1 417 IF Cfg%(SP%)=52 THEN ExtLoop%=SP%-4:Loop2%=ExtLoop%:TrnMd%=1 418 IF Cfg%(SP%)=53 THEN EntBLS%=SP%-4:BLS1%=EntBLS% 419 IF Cfg%(SP%)=54 THEN ExtBLS%=SP%-4:BLS2%=ExtBLS% 420 IF Cfg%(SP%)=55 THEN PhoCell%=SP%-4 421 IF Cfg%(SP%)=56 THEN StrtWghPB%=SP%-4 422 NEXT SP% 423 FOR SP%=17 TO 28 424 IF Cfg%(SP%)=0 THEN GOTO 436 425 IF Cfg%(SP%)=1 THEN EntGrn%=SP%-4:IOMAP%(1)=EntGrn%:S1EnGrn%=EntGrn% 426 IF Cfg%(SP%)=2 THEN EntRed%=SP%-4:IOMAP%(2)=EntRed%:S1EnRed%=EntRed% 427 IF Cfg%(SP%)=3 THEN ExtGrn%=SP%-4:IOMAP%(3)=ExtGrn%:S1ExGrn%=ExtGrn% 428 IF Cfg%(SP%)=4 THEN ExtRed%=SP%-4:IOMAP%(4)=ExtRed%:S1ExRed%=ExtRed% 429 IF Cfg%(SP%)=5 THEN EntBar%=SP%-4:IOMAP%(5)=EntBar%:Bar1%=EntBar% 430 IF Cfg%(SP%)=6 THEN ExtBar%=SP%-4:IOMAP%(6)=ExtBar%:Bar2%=ExtBar% 431 IF Cfg%(SP%)=7 THEN Illumin%=SP%-4:IOMAP%(7)=Illumin% 432 IF Cfg%(SP%)=8 THEN BSNGrn%=SP%-4:IOMAP%(8)=BSNGrn%:S2EnGrn%=BSNGrn% 433 IF Cfg%(SP%)=9 THEN BSNRed%=SP%-4:IOMAP%(9)=BSNRed%:S2EnRed%=BSNRed% 434 IF Cfg%(SP%)=10 THEN BSXGrn%=SP%-4:IOMAP%(10)=BSXGrn%:S2ExGrn%=BSXGrn% 435 IF Cfg%(SP%)=11 THEN BSXRed%=SP%-4:IOMAP%(11)=BSXRed%:S2ExRed%=BSXRed% 436 NEXT SP% 437 RETURN 438 GOSUB 333:GOSUB 343:GOSUB 409 439 Thresh#=Cfg%(29)/10.0 440 SclTyp%=Cfg%(30):ExcTm%=Cfg%(31):ExcWt#=Cfg%(32)/10.0:EndTm%=Cfg%(33):RETURN 441 ON ERROR GOTO 448 442 OPEN "Setup" FOR OUTPUT AS #0 443 FOR UC%=1 TO 33 444 Cfg%(UC%)=RxD%(UC%) 445 WRITE #0,STR$(RxD%(UC%)) 446 NEXT UC% 447 CLOSE #0 448 RxDMsg%=0:PRINT "Re-Booting . . .":SLEEP 2000:RESETJAG 449 LVar$(18)=LVar$(1):LVar$(19)="":LVar$(20)="" 450 IF RxD%(1)<41 THEN GOTO 452 ELSE LVar$(19)=LVar$(2) 451 IF RxD%(1)<81 THEN GOTO 452 ELSE LVar$(20)=LVar$(3) 452 SFLSt$=CHR$(1)+SPACE$(60)+CHR$(1)+LVar$(18)+LEFT$(LVar$(19),20) 453 SlavDsp$(1)=LEFT$(LVar$(18),20) 454 IF (LEN(LVar$(18)) < 21) THEN SlavDsp$(2)=" ":SlavDsp$(3)=" ":GOTO 458 455 SlavDsp$(2)=MID$(LVar$(18),21,20) 456 IF (LEN(LVar$(19)) = 0) THEN SlavDsp$(3)=" ":GOTO 458 457 SlavDsp$(3)=LEFT$(LVar$(19),20) 458 IF OpGuide%=0 THEN GOTO 460 459 GOSUB 85 460 ScrSt$="3":RxDMsg%=0:RETURN 461 LVar$(18)=LVar$(1):LVar$(19)="":LVar$(20)="" 462 SFLSt$=CHR$(1)+SPACE$(60)+CHR$(1)+LVar$(18); 463 SlavDsp$(3)=" ":SlavDsp$(1)=LEFT$(LVar$(18),20) 464 IF (LEN(LVar$(18)) < 21) THEN SlavDsp$(2)=" ":GOTO 466 465 SlavDsp$(2)=MID$(LVar$(18),21,20) 466 IF OpGuide%=0 THEN GOTO 468 467 GOSUB 85 468 ScrSt$="3":RxDMsg%=0:RETURN 469 STOPTIME 470 FOR CF%=1 TO 26 471 IOF%(CF%)=0 472 NEXT CF% 473 RxDMsg%=0:RETURN 474 FOR FI%=1 TO 11 475 IF RxD%(FI%)<0 OR RxD%(FI%)>2 THEN GOTO 478 476 IF IOMAP%(FI%)<13 OR IOMAP%(FI%)>24 THEN GOTO 478 477 FIOTmp%=IOMAP%(FI%):IOF%(FIOTmp%)=RxD%(FI%) 478 NEXT FI% 479 RxDMsg%=0:RETURN 480 SKPtr%=ASC(SVC$(SVI%)):IF SKPtr%<0 THEN SKPtr%=SKPtr%+256 481 KPKey$=CHR$(SKT%(SKPtr%)):GOTO 483 482 KPKey$=INKEY$ 483 IF KPKey$="" THEN RETURN 484 IF TrnSt%=5 THEN GOTO 504 485 IF TrnSt%=9 THEN GOTO 504 486 IF PhoCell%=25 THEN GOTO 488 487 IF IOP%(PhoCell%)=1 THEN GOTO 504 488 IF ASC(KPKey$)<>6 THEN GOTO 491 489 KPPtr%=KPPtr%-1:IF KPPtr%<1 THEN KPPtr%=1:KPStr$="":GOTO 494 490 KPStr$=LEFT$(KPStr$,LEN(KPStr$)-1):GOTO 494 491 IF KPKey$=41 THEN KPT$="":GOTO 501 494 IF ScrSt$<>"3" THEN GOTO 482 495 KPPtrMem%=KPPtr%:KPOGStr$=CHR$(17)+CHR$(16)+CHR$(255)+CHR$(2)+KPStr$ 496 SFLSt$=PADR$(KPOGStr$,24," ") 497 SlavDsp$(3)=KPStr$ 498 IF OpGuide%=0 THEN GOTO 482 499 GOSUB 85 500 GOTO 482 501 DISABLE 502 QORDS$=KPStr$:QORDR%=0:QORDT$=KPT$:QORDIP$="":GOSUB 301 503 ENABLE 504 GoSub 126:GoTo 482 505 IF SVC$(SVI%)="" THEN GOTO 531 506 IF SPTerm%(SVI%)=7 THEN GOTO 480 507 IF SPFilt%(SVI%)=1 THEN GOTO 514 508 IF SPFilt%(SVI%)=2 THEN GOTO 516 509 IF SPFilt%(SVI%)=3 THEN GOTO 518 510 IF SPFilt%(SVI%)=4 THEN GOTO 521 511 IF SPFilt%(SVI%)=5 THEN GOTO 524 512 IF SPFilt%(SVI%)=6 THEN GOTO 527 513 SVStr$(SVI%)=SVC$(SVI%):GOTO 529 514 IF LEN(SVC$(SVI%))<2 THEN GOTO 531 515 SVStr$(SVI%)=LEFT$(SVC$(SVI%),LEN(SVC$(SVI%))-1):GOTO 529 516 IF LEN(SVC$(SVI%))<3 THEN GOTO 531 517 SVStr$(SVI%)=LEFT$(SVC$(SVI%),LEN(SVC$(SVI%))-2):GOTO 529 518 IF LEN(SVC$(SVI%))<3 THEN GOTO 531 519 SVC$(SVI%)=RIGHT$(SVC$(SVI%),LEN(SVC$(SVI%))-1) 520 SVStr$(SVI%)=LEFT$(SVC$(SVI%),LEN(SVC$(SVI%))-1):GOTO 529 521 IF LEN(SVC$(SVI%))<4 THEN GOTO 531 522 SVC$(SVI%)=RIGHT$(SVC$(SVI%),LEN(SVC$(SVI%))-1) 523 SVStr$(SVI%)=LEFT$(SVC$(SVI%),LEN(SVC$(SVI%))-2):GOTO 529 524 IF LEN(SVC$(SVI%))<5 THEN GOTO 531 525 SVC$(SVI%)=RIGHT$(SVC$(SVI%),LEN(SVC$(SVI%))-1) 526 SVStr$(SVI%)=LEFT$(SVC$(SVI%),LEN(SVC$(SVI%))-3):GOTO 529 527 IF LEN(SVC$(SVI%))<23 THEN GOTO 531 528 SVStr$(SVI%)=MID$(SVC$(SVI%),6,4)+MID$(SVC$(SVI%),12,6):GOTO 529 529 QORDS$=SVStr$(SVI%):QORDR%=SVI%:QORDT$="":QORDIP$="":GOSUB 301:SVStr$(SVI%)="" 530 GOSUB 126 531 SVC$(SVI%)="":RETURN 532 DISABLE 533 SVC$(1)=S1$:SVI%=1:GOSUB 505 534 ENABLE 535 INPUT #1,S1$:RETURN 536 DISABLE 537 SVC$(2)=S2$:SVI%=2:GOSUB 505 538 ENABLE 539 INPUT #2,S2$:RETURN 540 DISABLE 541 SVC$(3)=S3$:SVI%=3:GOSUB 505 542 ENABLE 543 INPUT #3,S3$:RETURN 544 DISABLE 545 SVC$(4)=S4$:SVI%=4:GOSUB 505 546 ENABLE 547 INPUT #4,S4$:RETURN 548 IF RxDMsg%=0 THEN RETURN 549 IF RxDMsg%=1 THEN GOTO 461 550 IF RxDMsg%=2 THEN GOTO 449 551 IF RxDMsg%=8 THEN GOTO 441 552 IF RxDMsg%=9 THEN GOTO 321 553 IF RxDMsg%=12 THEN GOTO 314 554 IF RxDMsg%=13 THEN GOTO 296 555 IF RxDMsg%=14 THEN GOTO 474 556 IF RxDMsg%=15 THEN GOTO 469 557 IF RxDMsg%=16 THEN GOTO 43 558 IF RxDMsg%=17 THEN GOTO 47 559 IF RxDMsg%>100 THEN GOTO 286 ELSE RxDMsg%=0 560 RETURN 561 PRINT "ERR";ERR();",LIN":ERL():JS%(1)=2:JS%(2)=1:JS%(3)=1:SLEEP 1000 562 END 563 DELEVENT 564 JS%(1)=2:JS%(2)=1:JS%(3)=1:Print "Exiting . . .":GOSUB 333:SLEEP 1000:GOSUB 91 565 NEW 566