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
larre-config-1.mips
larre-config-2.mips
larre-config-mars-a.mips
larre-config-mars-bdef.mips
larre-config-mars-c.mips
larre-farming-hardcoded.mips
larre-farming-stack.mips
larre-farming.mips
hydrolarre-farming.mips
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
batch-solar-control-dumb.mips
batch-solar-control.mips

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

gas liquification
condenser-pollutant-limiter.mips
condenser-volatiles-limiter.mips
measure-condensation-rate.mips
cybernetic-regulator-clumsy-batch.mips
cybernetic-regulator-clumsy.mips
cybernetic-regulator-pid.mips
liquid-delta-volume-graph.mips
liquification-power-mgmt.mips
mars-nighttime-liquid-harvest.mips

H2 combuster / water
h2-combuster-condense.mips
h2-combuster-mixer.mips
h2-combuster-operate.mips

stockboy
stockboy-coalesce.mips
stockboy-config.mips
stockboy-fabricator.mips
stockboy-pre-fabricator.mips
stockboy-stacker.mips
stockboy-trucker.mips

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


airlock-speed-vent.mips
airlock-tank-accelerator-mgmt.mips
battery-leveling.mips
centrifuge-miner-manager.mips
chamber-liquification-mgr.mips
chiller-purge-pump-controll.mips
cooling-gas-buffer-room.mips
cooling-gas-buffer.mips
display-avionics.mips
exhaust-gas-cooler-control.mips
flashing-light-mirror.mips
fuel-mixer-n2o.mips
fuel-mixer-o2.mips
gas-pressure-display.mips
greenhouse-parasite-battery-manager.mips
ice-logic-sorter.mips
ingot-divider.mips
light-console.manager.mips
light-manager.mips
loulan-airlock.mips
loulan-arc-furnace-room.mips
loulan-greenhouse.mips
low-gas-cutoff.mips
mars-atmosphere-harvest-n2-o2.mips
memorize-sunrise-sunset.mips
nitrolyzer-battery-threshold.mips
nitrous-warmer.mips
ore-sorter-1.mips
ore-sorter-2.mips
ore-sorter-logic.mips
power-charge-average.mips
power-consumption-triple.mips
radiator-control.mips
rocket-landing.mips
rocket-umbilical-safety.mips
seed-logic-sorter.mips
simpler-gate.mips
sorter-feeding-autooven.mips
trader-scanner.mips
vacuum-enforcer.mips
vend-ingots-to-printer-2.mips
vending-ore-counter-omni-hash.mips
workshop-off-button.mips

# mix volatiles and another gas (usually oxygen) to a target ratio, compensating for differences in temperature between the two inputs, and tweaking the ratio to correct for small deviations in the output mix (so it will get more accurate over time)

alias ingas1 d0
alias ingas2 d1
alias outgas1 d2
alias mixer d3
alias readout d4
alias h2frac d5

alias targeth2frac r15
alias mixerratio r14
alias molespertick r13
alias outreagents r12
alias outh2frac r11
alias pipe1h2frac r10
alias pipe2h2frac r9
alias pipe1temp r8
alias pipe2temp r9

define molespertick 26.144
define MAXOUT 400

start:
yield

s ingas1 On 1
s ingas2 On 1
s outgas1 On 1

move targeth2frac  0.5
bdns h2frac notarget
l targeth2frac h2frac Setting
notarget:

l outreagents outgas1 TotalMoles
l outh2frac outgas1 RatioVolatiles
select outh2frac outreagents outh2frac 0
l pipe1h2frac ingas1 RatioVolatiles
l pipe2h2frac ingas2 RatioVolatiles

l r0 outgas1 Pressure
bge r0 MAXOUT high

max r0 1 r0
mul r1 outreagents 101.325
div molespertick r1 r0
s db Setting molespertick

add r1 outreagents molespertick
mul r0 targeth2frac r1
mul r1 outreagents outh2frac
sub r0 r0 r1
mul r1 molespertick pipe2h2frac
sub r0 r0 r1

sub r1 pipe1h2frac pipe2h2frac
mul r1 r1 molespertick

div mixerratio r0 r1

# ^^
# (target*(moles+43.8)-moles*h2_frac - 43.8*p2_h2)/(43.8*(p1_h2-p2_h2))

l pipe1temp ingas1 Temperature
l pipe2temp ingas2 Temperature

mul r0 pipe1temp mixerratio
sub r1 1 mixerratio
mul r1 r1 pipe2temp
add r3 r0 r1
#r0 = mixerratio*temp1 + (1-mixerratio)*temp2

div r4 r0 r3

mul r2 r4 100
max r2 r2 0
min r2 r2 100

s mixer Setting r2

bdns readout over
l r0 outgas1 RatioVolatiles
mul r0 r0 100
s readout Setting r0
over:

j start

high:
s mixer On 0
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.