furnace
advanced-furnace.mips
arc-furnace-room-control.mips
furnace-calc-pre.mips
furnace-ingot-recipe.mips
furnace-operate.mips
furnace-room-vacuum-pump.mips
hot-cold-waste-tank-manager.mips
hot-tank-filler.mips
pressurize-furnace.mips
waste-tank-to-cold-tank-with-chiller.mips
furnace-waste-chiller.mips

manufacturing
vend-ingots-to-printer.mips
vending-ore-counter-omni-fast.mips
vending-ore-counter-omni-slow.mips
vending-ore-counter-single.mipsr
vending-ore-counter-triple.mips

greenhouse
greenhouse-ac.mips
greenhouse-o2-pressure-display.mips
greenhouse-oxygen-harvest.mips
greenhouse-temperature.mips
harvie-triple.mips
seed-distributer.mips
seed-sorter-old.mips
seed-sorter.mips
stacker-vending-button.mips

atmospherics
base-atmosphere-control.mips
battery-room-atmosphere.mips
battery-room-vent-setter.mips
harvest-cold-atmosphere.mips
harvest-liquid-from-atmosphere.mips
refrigeration-room.mips

mining rocket
rocket-driving.mips
rocket-miner-readout.mips

ore warehousing
ore-sorter-multi.mips
ore-sorter2-multi.mips
gas-rock-sorter.mips
centrifuge-ore.mips

gas handling
gas-filter-chain.mips
co2-tank-pressure-management.mips
fuel-mixer.mips
gas-harvester.mips
gas-mixer-nitrous.mips
n2o-heater.mips
pump-feed-nitrolyzer.mips
show-gas-pressure-triple.mips
manage-coolant-from-atmosphere.mips

doors
weather-gate.mips
door-switch-logic.mips

solar
solar-old.mips
1-axis-solar-panel-control.mips
2-axis-solar-panel-control.mips

biomass fuel
biomass-generator-pipeline.mips
biomass-generator-silo.mips
biomass-recycler.mips
charcoal-stockpile-display.mips

AIMeE
aimee-old.mips
aimee-position-display.mips
aimee.mips


airlock-tank-accelerator-mgmt.mips
batch-solar-control.mips
centrifuge-miner-manager.mips
chamber-liquification-mgr.mips
cooling-gas-buffer-room.mips
cooling-gas-buffer.mips
display-avionics.mips
exhaust-gas-cooler-control.mips
fuel-mixer-n2o.mips
fuel-mixer-o2.mips
larre-config-1.mips
larre-farming-hardcoded.mips
larre-farming-stack.mips
light-console.manager.mips
light-manager.mips
loulan-airlock.mips
loulan-arc-furnace-room.mips
loulan-greenhouse.mips
measure-condensation-rate.mips
nitrolyzer-battery-threshold.mips
nitrous-warmer.mips
power-consumption-triple.mips
radiator-control.mips
simpler-gate.mips
sorter-feeding-autooven.mips
trader-scanner.mips
vend-ingots-to-printer-2.mips

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.