123 lines
2.4 KiB
NASM
123 lines
2.4 KiB
NASM
alias Dial d0
|
|
alias Lever d1
|
|
alias AdvFurnace d2
|
|
alias IC10Alloys d3
|
|
alias minPressure r15
|
|
alias maxPressure r14
|
|
alias minTemperature r13
|
|
alias maxTemperature r12
|
|
alias TFuel r11
|
|
alias Ingot r10
|
|
alias FPressure r9
|
|
alias FTemperature r8
|
|
alias OutputPump r7
|
|
alias PressureFuel r6
|
|
off:
|
|
move TFuel 0
|
|
s AdvFurnace Open 0
|
|
s AdvFurnace SettingInput 0
|
|
s AdvFurnace SettingOutput 0
|
|
main:
|
|
l r0 Dial Setting
|
|
ble r0 4 IngotAlloys
|
|
beq r0 5 IngotAstroloy
|
|
beq r0 6 IngotHastelloy
|
|
beq r0 7 IngotInconel
|
|
beq r0 8 IngotStellite
|
|
beq r0 9 IngotWaspaloy
|
|
j main
|
|
IngotAlloys:
|
|
l r0 d3 Setting
|
|
s db Setting r0
|
|
j main
|
|
IngotAstroloy:
|
|
l r0 Dial Setting
|
|
bne r0 5 main
|
|
s db Setting 412924554
|
|
move Ingot 412924554
|
|
move minPressure 5000
|
|
move maxPressure 6000
|
|
move minTemperature 1200
|
|
move maxTemperature 1400
|
|
move OutputPump 65
|
|
move PressureFuel 0.05
|
|
l r1 Lever Setting
|
|
beq r1 1 Smelting
|
|
j IngotAstroloy
|
|
IngotHastelloy:
|
|
l r0 Dial Setting
|
|
bne r0 6 main
|
|
s db Setting 1579842814
|
|
move Ingot 1579842814
|
|
move minPressure 2500
|
|
move maxPressure 3000
|
|
move minTemperature 950
|
|
move maxTemperature 1000
|
|
move OutputPump 20
|
|
move PressureFuel 0.05
|
|
l r1 Lever Setting
|
|
beq r1 1 Smelting
|
|
j IngotHastelloy
|
|
IngotInconel:
|
|
l r0 Dial Setting
|
|
bne r0 7 main
|
|
s db Setting -787796599
|
|
move Ingot -787796599
|
|
move minPressure 4250
|
|
move maxPressure 4750
|
|
move minTemperature 1200
|
|
move maxTemperature 1300
|
|
move OutputPump 30
|
|
move PressureFuel 0.05
|
|
l r1 Lever Setting
|
|
beq r1 1 Smelting
|
|
j IngotInconel
|
|
IngotStellite:
|
|
l r0 Dial Setting
|
|
bne r0 8 main
|
|
s db Setting -1897868623
|
|
move Ingot -1897868623
|
|
move minPressure 4000
|
|
move maxPressure 5000
|
|
move minTemperature 1700
|
|
move maxTemperature 1900
|
|
move OutputPump 90
|
|
move PressureFuel 0.5
|
|
l r1 Lever Setting
|
|
beq r1 1 Smelting
|
|
j IngotStellite
|
|
IngotWaspaloy:
|
|
l r0 Dial Setting
|
|
bne r0 9 main
|
|
s db Setting 156348098
|
|
move Ingot 156348098
|
|
move minPressure 1250
|
|
move maxPressure 2750
|
|
move minTemperature 875
|
|
move maxTemperature 1000
|
|
move OutputPump 20
|
|
move PressureFuel 0.05
|
|
l r1 Lever Setting
|
|
beq r1 1 Smelting
|
|
j IngotWaspaloy
|
|
Smelting:
|
|
s db Setting 0
|
|
s AdvFurnace Activate 1
|
|
l FPressure AdvFurnace Pressure
|
|
slt r0 FPressure minPressure
|
|
l FTemperature AdvFurnace Temperature
|
|
slt r2 FTemperature minTemperature
|
|
add r1 r0 r2
|
|
select r0 r1 TFuel 0
|
|
s AdvFurnace SettingInput r0
|
|
add TFuel TFuel PressureFuel
|
|
l FPressure AdvFurnace Pressure
|
|
sgt r0 FPressure maxPressure
|
|
select r3 r0 OutputPump 0
|
|
s AdvFurnace SettingOutput r3
|
|
l r4 AdvFurnace RecipeHash
|
|
seq r4 r4 Ingot
|
|
s AdvFurnace Open r4
|
|
l r4 Lever Open
|
|
beq r4 0 off
|
|
j Smelting |