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 stacker d1
alias larre d2
alias export d3
alias ringmaster d5 # the IC containing the coordinating RAM
alias address r15
alias qty r14
alias hash r13
#alias latheptr r12
alias lockerIndex r11
define lockerStation 4

define MODULUS 55

move sp MODULUS
add sp sp 5

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

harvest:
ls r0 export 0 Occupied
#j survey # debug
blez r0 survey
put ringmaster 120 3 # hand off to the trucker
j start

survey:
s larre Setting lockerStation
 move address 0
 zeroram: # zero out the survey RAM
 put db address 0
 add address address 1
 blt address MODULUS zeroram
jal waitLarreIdle

move lockerIndex 0
inventory: # count up how many of each item there are
#s db Setting lockerIndex
s larre TargetSlotIndex lockerIndex
ls hash larre 255 OccupantHash
beqz hash emptyInventory
mod address hash MODULUS
ls r1 larre 255 Quantity
get qty db address
add qty r1 qty
put db address qty
emptyInventory:
add lockerIndex lockerIndex 1
blt lockerIndex 30 inventory
s db Setting 19

handOff:
s db Setting 79
put ringmaster 120 1 # fabber takes over
j start

waitLarreIdle:
#s db Setting 10
yield
l r0 larre Idle
blez r0 waitLarreIdle
#s db Setting 11
j ra

#
# sum up the quantity of each item in the system
#

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.