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 engine d0
alias avionics d1

alias homeLocation r15
move homeLocation 4116 # mars

start:
yield
jal memorizeHome
jal scanner
jal land
j start

memorizeHome:
l r0 avionics Altitude
bnez r0 ra
l homeLocation avionics CurrentCode
s db Setting homeLocation
j ra

land:
alias a r14
alias throttle r13
alias altitude r12
alias oldTTW r11
#define G -3.7
#define G -1
alias g r10
alias v1 r9
alias v2 r8
alias deltav r7
alias deltay r6
alias throttlefloor r5

l altitude avionics Altitude
blez altitude ra # in space, don't manage
l r0 engine On
beqz r0 ra # engine is not on

l r0 avionics DestinationCode
beq r0 homeLocation land2
s engine Throttle 100 # launching to space
j ra

land2:

l throttle engine Throttle

bgt altitude 200 stage1
# final approach is more gentle
move v2 0
move throttlefloor 0
sub deltay 0 altitude
j calcthrust

stage1: # primary descent
move v2 -40 # 40m/s descending
slt r1 throttle 70
select throttlefloor r1 80 70 # what is our floor?
sub deltay 200 altitude

calcthrust:
#destined for home, let's land safely

l v1 avionics VelocityRelativeY
l oldTTW avionics ThrustToWeight
l r1 avionics Weight
l r2 avionics Mass
div g r1 r2
sub g 0 g

bgtz v1 ugh

sub deltav v2 v1
mul r0 0.5 deltav
add r0 v1 r0  # r0 = v1 + v/2
mul r0 r0 deltav # r0 = v(v1+v/2)
div r0 r0 deltay # r0 = v/y (v1+v/2) = target_accel
div r0 r0 g
sub r0 1 r0 # r0 = target_ttw = 1-target_accel/g

mul r0 throttle r0
div r0 r0 oldTTW # throttle = old_throttle * target_ttw / old_thrust_to_weight
s db Setting r0

slt r1 throttle 70
slt r1 r0 throttlefloor
sgt r2 altitude 20
and r1 r1 r2
select r0 r1 1 r0 # if we don't need much thrust, don't bother thrusting

s engine Throttle r0

j ra

ugh:
s db Setting 0
s engine Throttle 0
j ra

######################################################################

scanner:

l r0 avionics Mode
sge r3 r0 3
#and r3 r3 r0 # only turn them on while it is scanning
sb HASH("StructureRocketScanner") On r3

sge r3 r0 2
sb HASH("StructureRocketMiner") On r3

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.