;%CONFIG% BASICATOM28NANO $a $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 ;%CONFIG% BASICATOM28NANO $a $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 ;%CONFIG% BASICATOM28NANO $a $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 ;%CONFIG% BASICATOM28NANO $a $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 $0 alt var long altmsl var long baroadc var word baroadc1 var word baroadc2 var word baroadc3 var word baroadc4 var word baroadc5 var word baroav var word groundlevel1 var word groundlevel2 var word groundlevel3 var word groundlevel var word boostalt var word peakalt var word peakdisplay var word grounddisplay var word machdelay var word deployalt var word md1 var word md2 var word md3 var word groundfeet var word altfeet var long hundred var byte thousand var byte ten var byte tenthousand var byte Pause 1000 adin AX0, groundlevel1 pause 200 adin AX0, groundlevel2 pause 200 adin AX0, groundlevel3 groundlevel = (groundlevel1 + groundlevel2 + groundlevel3) / 3 If (IN1 = 1) then : md1 = 5000 elseif (IN1 = 0) md1 = 0 endif If (IN3 = 1) then : md2 = 10000 elseif (IN3 = 0) md2 = 0 endif If (IN5 = 1) then : md3 = 20000 elseif (IN5 = 0) md3 = 0 endif If (IN7 = 1) then : deployalt = (groundlevel - 29) elseif (IN7 =0) deployalt = (groundlevel - 15) endif machdelay = md1 + md2 + md3 goto Start Start: repeat Pause 600 If (IN15 = 1) then : pause 250 high p17 : pause 100 : low p17 elseif (IN13 = 0) Pause 250 endif If (IN14 = 1) then : pause 250 high p17 : pause 100 : low p17 elseif (IN12 = 0) Pause 250 endif adin AX0, baroadc1 pause 10 adin AX0, baroadc2 pause 10 adin AX0, baroadc3 pause 10 adin AX0, baroadc4 pause 10 adin AX0, baroadc5 pause 10 baroav = (baroadc1 + baroadc2 + baroadc3 + baroadc4 + baroadc5) / 5 until baroav < (groundlevel - 10) goto boost Boost: boostalt = 1023 pause machdelay repeat adin AX0, baroadc1 pause 10 adin AX0, baroadc2 pause 10 adin AX0, baroadc3 pause 10 adin AX0, baroadc4 pause 10 adin AX0, baroadc5 pause 10 baroav = (baroadc1 + baroadc2 + baroadc3 + baroadc4 + baroadc5) / 5 if baroav < boostalt then boostalt = baroav endif until (baroav -4) > boostalt high P11 : pause 1000 : low 11 : goto Main Main: repeat adin AX0, baroadc1 adin AX0, baroadc2 adin AX0, baroadc3 adin AX0, baroadc4 adin AX0, baroadc5 baroav = (baroadc1 + baroadc2 + baroadc3 + baroadc4 + baroadc5) / 5 until baroav > deployalt high P10 : pause 1000 : low 10 : goto Display Display: if groundlevel >= 922 then groundfeet = 0 elseif (groundlevel >= 893) and (groundlevel < 922) groundfeet = ((922 - groundlevel) * 34) elseif (groundlevel >= 865) and (groundlevel < 893) groundfeet = 1000 + ((893-groundlevel)* 35) elseif (groundlevel >= 837) and (groundlevel < 865) groundfeet = 2000 + ((865 - groundlevel) * 36) elseif (groundlevel >= 810) and (groundlevel < 837) groundfeet = 3000 + ((837 - groundlevel) * 37) elseif groundlevel < 810 groundfeet = 4000 + ((810 - groundlevel) * 39) endif If (boostalt >= 893) and (boostalt < 1023) then altmsl = ((922 - boostalt) * 34) '0-1000 elseif (boostalt >= 865) and (boostalt < 893) altmsl = 1000 + ((893-boostalt)* 35) '1000-2000 elseif (boostalt >= 837) and (boostalt < 865) altmsl = 2000 + ((865 - boostalt) * 36) '2000-3000 elseif (boostalt >= 810) and (boostalt < 837) altmsl = 3000 + ((837 - boostalt) * 37) '3000-4000 elseif (boostalt >= 785) and (boostalt < 810) altmsl = 4000 + ((810 - boostalt) * 39) '4000-5000 elseif (boostalt >= 667) and (boostalt < 785) altmsl = 5000+((785-boostalt)* 42) '5000-10000 elseif (boostalt >= 566) and (boostalt <667) altmsl = 10000+((667-boostalt)*50) '10000-15000 elseif (boostalt >= 479) and (boostalt < 566) altmsl = 15000+((566-boostalt)*58) '15000-20000 elseif (boostalt >= 407) and (boostalt <479) altmsl = 20000+ ((479-boostalt)* 70) '20000-25000 elseif (boostalt >= 347) and (boostalt <407) altmsl = 25000+ ((407-boostalt)* 82)'25000-30000 elseif (boostalt >= 296) and (boostalt <347) altmsl = 30000+((347-boostalt)* 99) '30000-35000 elseif (boostalt >= 254) and (boostalt <=296) altmsl = 35000+((296-boostalt)* 119) '35000-40000 elseif (boostalt >= 222) and (boostalt <=254) altmsl = 40000+((254-boostalt)* 155) '40000-45000 elseif (boostalt >= 196) and (boostalt <=222) altmsl = 45000+((222-boostalt)* 197) '45000-50000 elseif (boostalt >= 181) and (boostalt <=196) altmsl = 50000+((196-boostalt)* 250) '50000-55000 elseif (boostalt >= 165) and (boostalt <=181) altmsl = 55000+((181-boostalt)* 318) '55000-60000 elseif (boostalt >= 153) and (boostalt <=165) altmsl = 60000+((165-boostalt)* 405)'60000-65000 elseif (boostalt >= 143) and (boostalt <=153) altmsl = 65000+((153-boostalt)* 515) '65000-70000 elseif (boostalt >= 135) and (boostalt <=143) altmsl = 70000+((143-boostalt)* 655) '70000-75000 elseif (boostalt >= 129) and (boostalt <=135) altmsl = 75000+((135-boostalt)* 832) '75000-80000 elseif (boostalt >= 125) and (boostalt <=129) altmsl = 80000+((129-boostalt)* 1144) '80000-85000 elseif (boostalt >= 121) and (boostalt <=125) altmsl = 85000+((125-boostalt)* 1344)'85000-90000 elseif (boostalt >= 118) and (boostalt <=121) altmsl = 90000+((314-boostalt)* 1736) '90000-95000 elseif (boostalt >= 116) and (boostalt <=118) altmsl = 95000+((118-boostalt)* 2222)'95000-100000 elseif boostalt < 116 altmsl = 100000 + ((116 - boostalt) * 2702) endif altfeet = altmsl - groundfeet alt = (altfeet * 3048) / 10000 tenthousand = alt / 10000 thousand = ((alt - (tenthousand * 10000)))/1000 hundred = (((alt - (tenthousand * 10000)) - (thousand * 1000)))/100 ten = ((((alt - (tenthousand * 10000)) - (thousand * 1000))) - (hundred * 100))/10 loop: 'tenthousands if (tenthousand >=1) and (tenthousand < 2) then high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=2) and (tenthousand < 3) high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=3) and (tenthousand < 4) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=4) and (tenthousand < 5) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=5) and (tenthousand < 6) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=6) and (tenthousand < 7) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=7) and (tenthousand < 8) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=8) and (tenthousand < 9) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (tenthousand >=9) and (tenthousand < 10) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 'elseif tenthousand = 0 high p17:pause 400:low p17:pause 1000 endif 'thousands if (thousand >=1) and (thousand < 2) then high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=2) and (thousand < 3) high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=3) and (thousand < 4) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=4) and (thousand < 5) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=5) and (thousand < 6) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=6) and (thousand < 7) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=7) and (thousand < 8) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=8) and (thousand < 9) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (thousand >=9) and (thousand < 10) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif thousand = 0 high p17:pause 400:low p17:pause 1000 endif 'hundreds if (hundred >=1) and (hundred < 2) then high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=2) and (hundred < 3) high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=3) and (hundred < 4) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=4) and (hundred < 5) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=5) and (hundred < 6) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=6) and (hundred < 7) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=7) and (hundred < 8) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=8) and (hundred < 9) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (hundred >=9) and (hundred < 10) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif hundred = 0 high p17:pause 400:low p17:pause 1000 endif 'tens if (ten >=1) and (ten < 2) then high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=2) and (ten < 3) high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=3) and (ten < 4) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=4) and (ten < 5) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=5) and (ten < 6) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=6) and (ten < 7) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=7) and (ten < 8) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=8) and (ten < 9) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif (ten >=9) and (ten < 10) high p17 :pause 100: low p17: pause 250 : high p17 :pause 100: low p17 : pause 250: high p17 :pause 100: low p17 : pause 250:high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : Pause 250: high p17 : pause 100 : low p17 : pause 1000 elseif ten = 0 high p17:pause 400:low p17:pause 1000 endif high p17 : pause 400 : low p17 : pause 1000 pause 1500 goto loop