#config mines= 0 #config shield= 0 opo 22, 12 ;Sets/returns Lays mines or returns mines remaining #config armor= 2 #config scanner= 3 #config engine= 2 #config heatsinks= 2 #config weapon= 3 #def axnd #msg delayed arse wipe shit features! opo 11, 100 ;Sets throttle mov ax, 1 ;Sets V = N int 3 ;Sets keepshift, AX 0=off opo 22, 12 ;Sets/returns Lays mines or returns mines remaining !64-nt opo 12, 128 ;Offsets turret (cumlative) je 64 ;Jumps to label N if last compare was = jne 64 ;Jumps to label #N if last compare was <> :64 call !heat64 ;Calls Subroutine at lable #N (PUSHES ip) :642 opo 17, 64 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr !64-nt ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 5 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) opo 15 0 ;Fires weapon w/angle adjustment opo 15 1 opo 15 -1 :16 call !heat16 ;Calls Subroutine at lable #N (PUSHES ip) :162 opo 17, 16 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr 64 ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 3 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) opo 15 0 ;Fires weapon w/angle adjustment opo 15 1 opo 15 -1 :4 call !heat4 ;Calls Subroutine at lable #N (PUSHES ip) :42 opo 17, 4 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr 16 ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 1 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) opo 15 0 ;Fires weapon w/angle adjustment opo 15 1 opo 15 -1 :2 call !heat2 ;Calls Subroutine at lable #N (PUSHES ip) :22 opo 17, 2 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr 4 ;Jumps to label #N if last compare was > cmp @7, 10 ;Compares 2 numbers, results in flags reg. jls !FIRE ;Jumps to label #N if last compare was < call !heatob ;Calls Subroutine at lable #N (PUSHES ip) opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15 0 opo 12, @3 ;Offsets turret (cumlative) opo 18, 0 ;Sets/returns overburn status je 2 ;Jumps to label N if last compare was = jne 2 ;Jumps to label #N if last compare was <> !FIRE opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment opo 15, @3 ;Fires weapon w/angle adjustment je 4 ;Jumps to label N if last compare was = jne 4 ;Jumps to label #N if last compare was <> !heat64-nt opo 12, 128 ;Offsets turret (cumlative) !heat64 call !m1 ;Calls Subroutine at lable #N (PUSHES ip) ipo 2, bx cmp bx, 200 ;Compares 2 numbers, results in flags reg. jls 642 ;Jumps to label #N if last compare was < opo 17, 64 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr !heat64-nt ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 5 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) !heat16 call !m1 ;Calls Subroutine at lable #N (PUSHES ip) ipo 2, bx cmp bx, 200 ;Compares 2 numbers, results in flags reg. jls 162 ;Jumps to label #N if last compare was < opo 17, 16 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr !heat64 ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 3 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) !heat4 call !m1 ;Calls Subroutine at lable #N (PUSHES ip) ipo 2, bx cmp bx, 200 ;Compares 2 numbers, results in flags reg. jls 42 ;Jumps to label #N if last compare was < opo 17, 4 ;Sets/returns scan-arc width ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr !heat16 ;Jumps to label #N if last compare was > mov fx, @3 ;Sets V = N shl fx, 1 ;Bit-Shifts V left N bit Positions opo 12, fx ;Offsets turret (cumlative) !heat2 call !m1 ;Calls Subroutine at lable #N (PUSHES ip) ipo 2, bx cmp bx, 200 ;Compares 2 numbers, results in flags reg. jls 22 ;Jumps to label #N if last compare was < ipo 7, bx ;Returns range to nearest target in scan arc cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr !heat4 ;Jumps to label #N if last compare was > opo 12, @3 ;Offsets turret (cumlative) je !heat2 ;Jumps to label N if last compare was = jne !heat2 ;Jumps to label #N if last compare was <> !heatob ipo 2, ax cmp ax, 180 ;Compares 2 numbers, results in flags reg. jgr !heat-2big ;Jumps to label #N if last compare was > opo 18, 1 ;Sets/returns overburn status !heat-2big ret ;Returns From Subroutine (POPS the ip) !m1 !move opo 11, 100 ;Sets throttle int 2 cmp ex, 100 ;Compares 2 numbers, results in flags reg. jls !mleft ;Jumps to label #N if last compare was < cmp ex, 900 ;Compares 2 numbers, results in flags reg. jgr !mright ;Jumps to label #N if last compare was > cmp fx, 100 ;Compares 2 numbers, results in flags reg. jls !mup ;Jumps to label #N if last compare was < cmp fx, 900 ;Compares 2 numbers, results in flags reg. jgr !mdown ;Jumps to label #N if last compare was > je !mclear ;Jumps to label N if last compare was = jne !mclear ;Jumps to label #N if last compare was <> !mleft ipo 3, ax mov dx, 64 ;Sets V = N sub dx, ax ;Subtracts V-N, Result Stored in V opo 14, dx ;Turn specified number of degrees ret ;Returns From Subroutine (POPS the ip) !mright ipo 3, ax mov dx, 192 ;Sets V = N sub dx, ax ;Subtracts V-N, Result Stored in V opo 14, dx ;Turn specified number of degrees opo 11, 100 ;Sets throttle ret ;Returns From Subroutine (POPS the ip) !mdown ipo 3, ax mov dx, 0 ;Sets V = N sub dx, ax ;Subtracts V-N, Result Stored in V opo 14, dx ;Turn specified number of degrees opo 11, 100 ;Sets throttle ret ;Returns From Subroutine (POPS the ip) !mup ipo 3, ax mov dx, 128 ;Sets V = N sub dx, ax ;Subtracts V-N, Result Stored in V opo 14, dx ;Turn specified number of degrees opo 11, 100 ;Sets throttle ret ;Returns From Subroutine (POPS the ip) !mclear opo 11, 100 ;Sets throttle cmp bx, 2000 ;Compares 2 numbers, results in flags reg. jgr 1337 ;Jumps to label #N if last compare was > opo 14, 32 ;Turn specified number of degrees ret ;Returns From Subroutine (POPS the ip) :1337 cmp bx 50 ;Compares 2 numbers, results in flags reg. jls 1332 ;Jumps to label #N if last compare was < ipo 10, ax ;Returns random number opo 14, ax ;Turn specified number of degrees ret ;Returns From Subroutine (POPS the ip) :1332 mov ax, @2 ;Sets V = N add ax, 16 ;Adds V+N, result stored in V opo 14, ax ;Turn specified number of degrees ret ;Returns From Subroutine (POPS the ip)