# 2020-Jan # arc furnace gas capture room control alias sensor d0 alias pump d1 alias lever d2 alias furnace d3 alias door d4 alias display d5 alias doorOpen r9 alias leverPulled r8 alias pressure r7 idle: yield jal updateDisplay l leverPulled lever Setting bgtz leverPulled startUp j idle # startUp: l doorOpen door Open blez doorOpen startUp2 s door Open 0 yield j startUp startUp2: l leverPulled lever Setting blez leverPulled powerDown l r0 furnace Activate bgtz r0 smelting # have we started smelting yet? s furnace Activate 1 yield j startUp2 smelting: # core furnace monitoring loop yield jal updateDisplay jal pumpGas l r0 furnace Activate bgtz r0 smelting # wait until the furnace runs out of stuff to smelt powerDown: jal updateDisplay l pressure sensor Pressure blez pressure openDoor # do not open the door till all the gas is pumped out jal pumpGas yield j powerDown openDoor: # done smelting; gas is pumped out; # turn off the vent s pump On 0 # reset the start lever s lever Open 0 # open the door s door Open 1 # ready for the next batch j idle updateDisplay: bdns display ra # if we have a display, show the Reagents count from the furnace l r0 furnace Reagents s display Setting r0 j ra pumpGas: # if there is any atmosphere in the room, use the active vent to pump it out l pressure sensor Pressure sgtz r0 pressure s pump On r0 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.