alias furnace d0 alias memoryTargetKPa d1 alias sensor d2 alias debug1 d3 alias rate r6 alias furnacePressure r7 alias targetPressure r8 alias furnaceTemperature r9 alias targetMoles r10 alias missingMoles r11 alias furnaceMoles r12 alias inputTemperature r13 alias inputPressure r14 alias missingLiters r15 define R 8.3144 s furnace SettingInput 0 s furnace SettingOutput 0 yield start: l furnacePressure furnace Pressure # r0 = Pn l targetPressure memoryTargetKPa Setting bgt targetPressure furnacePressure need bdns debug1 skip1 s debug1 Setting -1 skip1: # already pressurized move rate 0 j set need: s sensor On 1 l inputPressure sensor Pressure bgtz inputPressure notdoomed bdns debug1 skip2 s debug1 Setting -2 skip2: move rate 0 j set notdoomed: l furnaceTemperature furnace Temperature bgtz furnaceTemperature notempty l furnaceTemperature sensor Temperature notempty: # target_moles = PV/RT mul r0 targetPressure 1000 div r0 r0 R div targetMoles r0 furnaceTemperature mul r0 furnacePressure 1000 div r0 r0 R div furnaceMoles r0 furnaceTemperature bdns debug1 skip3 s debug1 Setting furnacePressure skip3: sub missingMoles targetMoles furnaceMoles l inputTemperature sensor Temperature # missing liters = nRT/P mul r0 missingMoles 8.3144 mul r0 r0 inputTemperature div missingLiters r0 inputPressure #kludge blt missingLiters 1 setrate mul missingLiters missingLiters 0.5 blt missingLiters 10 setrate mul missingLiters missingLiters 0.4 setrate: min rate missingLiters 100 set: #s d2 Setting rate s furnace SettingInput rate s furnace SettingOutput 0 yield j start |
MIPS is the programming language used by IC (integrated circuits) in the game Stationeers. Stationeering web site has a MIPS emulator with syntax highlighting and error detection.