Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ===== ROCKET HASHED VENTS =====
- alias launchBtn d0
- alias rocket d1
- alias blastDoor d2
- alias siloDoor d3
- alias sensor d4
- alias speaker d5
- define SILO_VENT -785498334
- alias mode r0
- alias state r1
- alias p r2
- alias t r3
- alias alt r4
- alias dest r5
- alias latch r6
- alias tmp r7
- define VACUUM 5
- define NORMAL 100
- define LAND_ALT 3000
- define LAUNCH_MOUNT_ID 1
- Main:
- sb SILO_VENT Mode 1
- sb SILO_VENT On 1
- s speaker Mode 99
- sleep 10
- j Main
- # ================= IDLE =================
- Idle:
- sb SILO_VENT On 0
- s speaker Mode 0
- l tmp launchBtn Setting
- bnez tmp StartLaunch
- bnez latch Main
- l alt rocket Altitude
- bgt alt LAND_ALT Main
- l dest rocket DestinationCode
- bne dest LAUNCH_MOUNT_ID Main
- s speaker Setting 10 # Rocket returning
- sleep 6
- move latch 1
- s db Mode 2
- s db Setting 1
- j Main
- StartLaunch:
- move latch 1
- s db Mode 1
- s db Setting 1
- j Main
- # ============== LAUNCH ==================
- LaunchFSM:
- l state db Setting
- beq state 1 L_Depress
- beq state 2 L_Count
- beq state 3 L_Post
- beq state 4 L_Purge
- beq state 5 L_Press
- j Main
- L_Depress:
- s blastDoor Open 0
- s blastDoor Lock 1
- sb SILO_VENT Mode 1
- sb SILO_VENT On 1
- s speaker Mode 1 # Depressurising
- l p sensor Pressure
- blt p VACUUM L_CountStart
- sleep 6
- j Main
- L_CountStart:
- sb SILO_VENT On 0
- move t 5
- s speaker Mode 3 # Rocket launching
- s db Setting 2
- j Main
- L_Count:
- add tmp t 3 # 4..8 = countdown 5..1
- s speaker Mode tmp
- beq t 2 L_OpenSilo
- beq t 1 L_Launch
- sub t t 1
- sleep 2
- j Main
- L_OpenSilo:
- s siloDoor Open 1
- j L_Count
- L_Launch:
- s speaker Mode 9 # Liftoff
- sleep 10
- s db Setting 3
- j Main
- L_Post:
- s siloDoor Open 0
- sb SILO_VENT Mode 1
- sb SILO_VENT On 1
- move t 12
- s db Setting 4
- j Main
- L_Purge:
- bgtz t L_PurgeTick
- sb SILO_VENT On 0
- sb SILO_VENT Mode 0
- s db Setting 5
- j Main
- L_PurgeTick:
- sub t t 1
- sleep 2
- j Main
Advertisement
Add Comment
Please, Sign In to add comment