# needs a Weather Station # a siren and an announcer (2x Kit (Speaker)) # and a display of some sort (Kit (Console)) alias Weather d0 # Weather Station alias Readout d1 # Kit (Console) alias Announcer d2 # Kit (Speaker) alias Siren d3 # Kit (Speaker) alias StormMode r0 alias Minutes r1 alias SirenHigh r2 alias SirenLow r3 alias SirenOn r4 s Announcer Mode 18 # "StormIncoming" s Siren Mode 10 # "Alarm8" start: yield l StormMode Weather Mode # check weather s Announcer On 0 # reset Announcer beq StormMode 1 countdown # countdown if incoming j start # else return to start countdown: yield l StormMode Weather Mode # check weather s Announcer On 1 # announce storm # get countdown value l Minutes Weather NextWeatherEventTime div Minutes Minutes 60 # convert to minutes trunc Minutes Minutes # drop decimals s Readout Setting Minutes # send to display slt SirenHigh Minutes 3 # got less than 3m? sgt SirenLow Minutes 0 # got more than 60s? and SirenOn SirenHigh SirenLow # sound siren? s Siren On SirenOn # start siren if 1