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 autolathe d0
alias hydraulics d1
alias electronics d2
alias counterIC d4
alias ringmaster d5 # the IC containing the coordinating RAM
alias qty r14
alias hash r13
alias latheptr r12
alias busy r11
define MODULUS 55

move sp MODULUS
add sp sp 5

start:
s db Setting -1
get r0 ringmaster 120
bne r0 1 -2 # wait for our turn to control LArRE
s db Setting -2

schedule1:
jal checkBusy
bnez busy waitWhileFabbing
jal maybeFlush
# tell the autolathe to make anything missing
move latheptr 0
alias fabber d0
move hash HASH("ItemKitWallIron")
move qty 10
jal queueProduction
move hash HASH("ItemKitWall")
move qty 20
jal queueProduction
move hash HASH("ItemSteelSheets")
move qty 20
jal queueProduction
move hash HASH("ItemPlasticSheets")
move qty 20
jal queueProduction
move hash HASH("ItemGlassSheets")
move qty 20
jal queueProduction
move hash HASH("ItemSteelFrames")
move qty 15
jal queueProduction
bdns hydraulics overHydraulics
move latheptr 0
alias fabber d1 # hydraulics
move hash HASH("ItemKitPipe")
move qty 15
jal queueProduction
move hash HASH("ItemKitInsulatedLiquidPipe")
move qty 15
jal queueProduction
move hash HASH("ItemKitInsulatedPipe")
move qty 15
jal queueProduction
overHydraulics:
move latheptr 0
alias fabber d2 # electronics
move hash HASH("ItemIntegratedCircuit10")
move qty 1
jal queueProduction
move hash HASH("ItemKitLogicCircuit")
move qty 1
jal queueProduction
move hash HASH("ItemCableCoilHeavy")
move qty 20
jal queueProduction
move hash HASH("ItemCableCoil")
move qty 20
jal queueProduction

# wait until fabbers are finished
waitWhileFabbing:
yield
jal checkBusy
bnez busy waitWhileFabbing
# lathe has no instructions

sleep 2
move ra handOff
j maybeFlush


maybeFlush:
lbs r0 HASH("StructureStacker") 2 Occupied Sum
lbs r1 HASH("StructureStackerReverse") 2 Occupied Sum
or r0 r0 r1
blez r0 ra
# some stacker had contents
sleep 2
sb HASH("StructureStacker") Activate r0 # clear the stacker
sb HASH("StructureStackerReverse") Activate r0 # clear the stacker
j handOff

queueProduction: # inputs = hash, qty
mod r0 hash MODULUS
get r0 counterIC r0
sub r0 qty r0
min r0 r0 10
blez r0 ra

move r1 hash
sll r1 r1 8
or r1 r1 r0
sll r1 r1 8
or r1 r1 PrinterInstruction.ExecuteRecipe
put fabber latheptr r1
add latheptr 1 latheptr
put fabber latheptr PrinterInstruction.WaitUntilNextValid
add latheptr 1 latheptr
j ra

checkBusy:
get busy autolathe 0
get r1 hydraulics 0
or busy busy r1
get r1 electronics 0
or busy busy r1
j ra

handOff:
s db Setting 79
put ringmaster 120 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.