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

alias switchmax r15
alias switchmin r14
alias doorstate r13
alias switchnamehash r12
alias doornamehash r11
alias doortypehash r10
alias memaddr r9
alias mem r8

define STATEADDR 60

define HASHSWITCH HASH("StructureLogicSwitch")
define HASHGATE HASH("StructureAirlockGate")
define HASHGATE2 HASH("StructureMediumHangerDoor")
define HASHGATE3 HASH("StructureLargeHangerDoor")

move switchmax 4
move switchmin 3
move doorstate 2
s db Setting 99
move doornamehash 0
start:
alias gatefurnace d0
alias unused d1
alias gategas d2
alias gatecellar d3
yield
move sp 0 # reset stack

move memaddr STATEADDR
alias door d0
move switchnamehash HASH("Gate Switch furnace")
jal managedoor

sub memaddr memaddr 1
move doornamehash HASH("north gate")
move doortypehash HASHGATE2
move switchnamehash HASH("Gate Switch north")
jal managedoor

sub memaddr memaddr 1
move doornamehash HASH("south gate")
move doortypehash HASHGATE2
move switchnamehash HASH("Gate Switch south")
jal managedoor

sub memaddr memaddr 1
move doornamehash HASH("ore gate")
move doortypehash HASHGATE2
move switchnamehash HASH("Gate Switch ore")
jal managedoor

sub memaddr memaddr 1
move doornamehash HASH("rose gate")
move doortypehash HASHGATE3
move switchnamehash HASH("gate switch rose")
jal managedoor

sub memaddr memaddr 1
move doornamehash HASH("lily gate")
move doortypehash HASHGATE2
move switchnamehash HASH("gate switch lily")
jal managedoor

move doornamehash 0

sub memaddr memaddr 1
alias door d2
move switchnamehash HASH("Gate Switch gas")
jal managedoor

sub memaddr memaddr 1
alias door d3
move switchnamehash HASH("Gate Switch cellar")
jal managedoor

j start

#

managedoor:

bnez doornamehash over1
bdns door ra
over1:

lbn switchmax HASHSWITCH switchnamehash Open Maximum
lbn switchmin HASHSWITCH switchnamehash Open Minimum

brnez doornamehash 3
l doorstate door Open
jr 2
lbn doorstate doortypehash doornamehash Open Maximum

bne switchmax switchmin toggle
get mem db memaddr
bne mem doorstate override

snez r0 switchmax

brnez doornamehash 3
s door Open r0
jr 2
sbn doortypehash doornamehash Open r0

put db memaddr r0
j ra

toggle:

seqz r0 doorstate

brnez doornamehash 3
s door Open r0
jr 2
sbn doortypehash doornamehash Open r0

sbn HASHSWITCH switchnamehash Open r0
put db memaddr r0
j ra

override:
sbn HASHSWITCH switchnamehash Open doorstate
put db memaddr doorstate
j ra

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.