diff --git a/auto_adv_furnace_library.ic10 b/auto_adv_furnace_library.ic10 new file mode 100644 index 0000000..cbcc3e0 --- /dev/null +++ b/auto_adv_furnace_library.ic10 @@ -0,0 +1,127 @@ +# Based on Elmotrix' FurnaceLibraryV4 +# Removed Prev/Next buttons, added on/off switch +alias Furnace d0 +alias FurnaceOn d1 +alias LBDial d2 +alias ICFurnaceController d3 +alias ResNr r3 +alias hashValue r4 +alias TempMM r5 +alias TempMin r6 +alias PresMM r7 +alias PresMin r8 +alias hashMem r9 +alias SetTemp r13 +alias SetPres r14 +define ResMax 17 +define Delay 6 #Ticks (before changes are made) +BWait: +l r15 FurnaceOn Setting +s Furnace On r15 +s db Setting hashValue +l r0 Furnace RecipeHash +seq r0 r0 hashValue +s Furnace Open r0 +move hashMem hashValue +yield +l hashValue db Setting +or r0 r1 r2 +add ResNr ResNr r1 +sub ResNr ResNr r2 +Dial: +bdns LBDial SelectRecipe +s LBDial Mode ResMax +move r0 ResNr +l ResNr LBDial Setting +sne r0 r0 ResNr +max ResNr ResNr 1 +SelectRecipe: +select hashValue r0 0 hashValue +sle r0 ResNr ResMax +select ResNr r0 ResNr 1 +select ResNr ResNr ResNr ResMax +jr ResNr # +select hashValue hashValue hashValue -1301215609 +select hashValue hashValue hashValue -404336834 +select hashValue hashValue hashValue -290196476 +select hashValue hashValue hashValue -929742000 +select hashValue hashValue hashValue 226410516 +select hashValue hashValue hashValue 2134647745 +select hashValue hashValue hashValue -1406385572 +select hashValue hashValue hashValue -654790771 +select hashValue hashValue hashValue 502280180 +select hashValue hashValue hashValue -82508479 +select hashValue hashValue hashValue -297990285 +select hashValue hashValue hashValue 1058547521 +select hashValue hashValue hashValue 412924554 +select hashValue hashValue hashValue 1579842814 +select hashValue hashValue hashValue -787796599 +select hashValue hashValue hashValue -1897868623 +select hashValue hashValue hashValue 156348098 +seq r0 hashValue hashMem +add r12 r12 1 +select r12 r0 r12 0 +blt r12 Delay BWait +move PresMM 1100.1 +move TempMM 500.2 +beq hashValue 2134647745 SetValue ##Lead +move TempMM 700.2 +beq hashValue -404336834 SetValue ##Copper +beq hashValue 226410516 SetValue ##Gold +beq hashValue -929742000 SetValue ##Silver +move TempMM 900.2 +beq hashValue -1301215609 SetValue ##Iron +beq hashValue -1406385572 SetValue ##Nickel +move TempMM 1000.2 +beq hashValue -290196476 SetValue ##Silicon +beq hashValue -654790771 SetValue ## Steel +move TempMM 400.05 +beq hashValue -82508479 SetValue ## Solder +move PresMM 31000.39 +move TempMM 1100.2 +beq hashValue 412924554 SetValue ##Astroloy +move PresMM 21000.3 +beq hashValue 1058547521 SetValue ## Constantan +move PresMM 23750.2375 +move TempMM 700.2 +beq hashValue -787796599 SetValue ## Inconell +move PresMM 1000.02 +beq hashValue 502280180 SetValue ## Electrum +move PresMM 11000.19 +move TempMM 1900.21 +beq hashValue -1897868623 SetValue ## Stellite +move PresMM 26000.29 +move TempMM 975.0975 +beq hashValue 1579842814 SetValue ## Hastaloy +move PresMM 51000.51 +move TempMM 500.07 +beq hashValue 156348098 SetValue ## Waspaloy +move PresMM 19000.19000 +move TempMM 1300.14 ## invar +SetValue: +floor TempMin TempMM +sub TempMM TempMM TempMin +mul TempMM TempMM 10000 +round TempMM TempMM +floor PresMin PresMM +sub PresMM PresMM PresMin +mul PresMM PresMM 100000 +l SetTemp Furnace Temperature +div SetTemp SetTemp 100 +round SetTemp SetTemp +mul SetTemp SetTemp 100 +l SetPres Furnace Pressure +div SetPres SetPres 500 +round SetPres SetPres +mul SetPres SetPres 500 +round PresMM PresMM +max SetPres SetPres PresMin +brlez PresMM 2 +min SetPres SetPres PresMM +max SetTemp SetTemp TempMin +brlez TempMM 2 +min SetTemp SetTemp TempMM +div r0 SetTemp 10000 +add r0 r0 SetPres +s ICFurnaceController Setting r0 +j BWait \ No newline at end of file