alias mode r15 alias furnace_temperature r14 alias furnace_moles r13 alias furnace_remove r12 alias target_moles r11 alias target_temperature r10 alias target_pressure r9 alias hot_temperature r8 alias cold_temperature r7 alias hot_moles r6 alias cold_moles r5 define HASH_LED_s HASH("StructureConsoleLED5") define HASH_TANK_si HASH("StructureTankSmallInsulated") define HASH_MEMORY HASH("StructureLogicMemory") define R 8.3145 define HASH_FURNACE HASH("StructureAdvancedFurnace") sbn HASH("StructureConsoleLED5") HASH("ColdTemp") Setting -1 start: move sp 10 yield lbn cold_temperature HASH_TANK_si HASH("cold tank") Temperature Average lbn hot_temperature HASH_TANK_si HASH("hot tank") Temperature Average lb furnace_temperature HASH_FURNACE Temperature Average lb furnace_moles HASH_FURNACE TotalMoles Average get target_temperature db 0 get target_pressure db 1 s db Setting target_pressure jal calc1 put db 480 hot_moles put db 481 cold_moles put db 482 furnace_remove get target_pressure db 2 jal calc1 put db 490 hot_moles put db 491 cold_moles put db 492 furnace_remove jal calc2 put db 500 hot_moles put db 501 cold_moles put db 502 furnace_remove j start # calc1: # achieve target_temperature @ target_pressure using +hot_moles+cold_moles - furnac # n=PV/(RT) mul r0 R target_temperature div r0 target_pressure r0 mul target_moles 1000 r0 sbn HASH_LED_s HASH("Target Moles") Setting target_moles sbn HASH_LED_s HASH("Furnace Temperature") Setting furnace_temperature sub r1 hot_temperature target_temperature mul r1 target_moles r1 sub r2 furnace_temperature hot_temperature mul r2 furnace_moles r2 add r1 r1 r2 sub r2 hot_temperature cold_temperature div cold_moles r1 r2 sub r0 target_moles furnace_moles sub hot_moles r0 cold_moles move furnace_remove 0 sgtz r0 hot_moles sgtz r1 cold_moles and r0 r1 r0 bgtz r0 ra # must depressurize sub r0 target_temperature furnace_temperature mul r0 r0 target_moles slt r1 furnace_temperature target_temperature select r1 r1 hot_temperature cold_temperature sub r1 r1 furnace_temperature div r0 r0 r1 add r0 furnace_moles r0 sub furnace_remove r0 target_moles #move hot_moles 0 #move cold_moles 0 j ra calc2: # achieve target_temperature using +hot_moles sub r0 target_temperature furnace_temperature sub r1 hot_temperature target_temperature div r0 r0 r1 mul hot_moles furnace_moles r0 move cold_moles 0 move furnace_remove 0 j ra # # min pressure # 480 = V_h # 481 = V_c # 482 = -V_f # # max pressure # 480 = V_h # 491 = V_c # 492 = -V_f # # target temperature, no drain # 500 = V_h # 501 = V_c # 502 = -V_f |
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.