Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .global _start
- .macro PRINT
- call #, "print()"
- push @
- .endmacro
- .macro G_UPD
- push "$body"
- gmb "mu"
- sto "$BODMU"
- push "$body"
- gmb "radius"
- push 2
- pow
- sto "$RADSQR"
- push "$BODMU"
- push "$RADSQR"
- div
- sto "$g0"
- .endmacro
- .macro RAD_UPD
- push "$ship"
- gmb "bounds"
- gmb "bottomaltradar"
- sto "$RADALT"
- .endmacro
- .macro DECEL_UPD
- push "$availableThrust"
- push "$mass"
- div
- push "$g0"
- sub
- sto "$DECEL"
- .endmacro
- .macro STOP_DIST
- push 2
- push "$DECEL"
- push "$verticalSpeed"
- push 2
- pow
- swap
- div
- sto "$STOPD"
- .endmacro
- .macro IDEAL_THROT
- push "$STOPD"
- push "$RADALT"
- div
- sto "$THROT"
- .endmacro
- .macro STEERING
- push "$THROT"
- push 0.3
- cgt ; THROT |[--SIGN--]| 0.6
- btr .CHANGE_STEER
- push @
- jmp .CHECK_END
- .CHANGE_STEER:
- push @
- push "$ship"
- gmb "velocity"
- gmb "surface"
- PRINT
- ; sto "$steering"
- .CHECK_END:
- ; unlock steering..
- push @
- .endmacro
- .macro THROTTLE
- push 0.6
- push "$verticalSpeed"
- cgt
- btr .CHANGE_THROT
- ; jmp .THROT_LOGIC_FLOW
- .CHANGE_THROT:
- push "$THROT"
- sto "$throttle"
- .THROT_LOGIC_FLOW:
- eop
- .endmacro
- .macro IMU_UPD
- push @
- G_UPD
- RAD_UPD
- DECEL_UPD
- STOP_DIST
- IDEAL_THROT
- STEERING
- ; THROTTLE
- .endmacro
- .func
- _start:
- call #, "clearscreen()"
- ; SECTION BEGINS
- .LOOP_START:
- IMU_UPD
- push @
- push "$THROT"
- PRINT
- push "$maxThrust"
- PRINT
- push 0.25
- wait
- push @
- call #, "clearscreen()"
- jmp .LOOP_START
- eop ; end of program
- .section .data
- ; trueRad .f64
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement