alias sensor d0 alias doorLoulan d1 alias doorGH d2 alias vent d3 alias emergencyLever d5 define atmosPressure 150 define ghPressure 120 start: s doorLoulan Mode 1 s doorGH Mode 1 # turn off the vent s vent On 0 # close one of the doors l r0 doorLoulan Open blez r0 stateLoulanClosed s doorGH Open 0 stateLoulanDoorOpen: jal leverCheck l r0 doorLoulan Setting l r1 doorGH Setting s doorLoulan Setting 0 s doorGH Setting 0 bgtz r1 depressurizePhase1 yield j stateLoulanDoorOpen depressurizePhase1: s doorLoulan Open 0 depressurizePhase2: yield jal leverCheck l r0 doorLoulan Open bgtz r0 depressurizePhase2 # Loulan door is closed # pump air out of the lock s vent Mode 1 s vent PressureExternal ghPressure s vent On 1 depressurizePhase3: yield jal leverCheck l r0 sensor Pressure bgt r0 ghPressure depressurizePhase3 # lock pressure is low enough s vent On 0 s doorGH Open 1 j stateGHDoorOpen stateLoulanClosed: l r0 doorGH Open blez r0 bothClosed stateGHDoorOpen: jal leverCheck l r0 doorLoulan Setting l r1 doorGH Setting s doorLoulan Setting 0 s doorGH Setting 0 bgtz r0 exitPhase1 yield j stateGHDoorOpen exitPhase1: s doorGH Open 0 exitPhase2: yield jal leverCheck l r0 doorGH Open bgtz r0 exitPhase2 # GH door is closed # pump air into the lock s vent Mode 0 s vent PressureExternal atmosPressure s vent On 1 exitPhase3: yield jal leverCheck l r0 sensor Pressure blt r0 atmosPressure exitPhase3 # lock pressure is low enough s vent On 0 s doorLoulan Open 1 j stateLoulanDoorOpen bothClosed: jal leverCheck l r0 doorLoulan Setting l r1 doorGH Setting s doorLoulan Setting 0 s doorGH Setting 0 bgtz r0 exitPhase1 bgtz r1 depressurizePhase1 yield j bothClosed leverCheck: bdns emergencyLever ra l r0 emergencyLever Setting bgtz r0 emergencyMode j ra emergencyMode: s doorLoulan Mode 0 s doorGH Mode 0 s vent On 0 idle: yield l r0 emergencyLever Setting blez r0 start j idle |
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.