$SHORT ******************************************************** ******************************************************** ** MOVER: Sweeps arena with radar, locks on and kills,** ** moves if damage has increased. ** ** PROG: Joshua Kors, Reichhold Chemicals ** ** DESC: ** ** MODS: ** ** 11/28/83 JGK Written. ** ** ** ******************************************************** ******************************************************** START: ;*****Start the program***** PUSH DAMAGE ;Store damage POP D ; in D SCAN: ;*****Check for damage & start radar scan***** PUSH DAMAGE ;Jump to PUSH D ; NEW if JNE NEW ; DAMAGE is not equal to D PSHI 170 ;Increment PUSH R ; hold radar ADD ; by POP R ; 257 SPOT: ;*****Shoot if someone is found***** PUSH R ;Check RADAR with POP RADAR ; latest R value PUSH RADAR ;Scan again if PSHI 0 ; RADAR comes back JLT SCAN ; less than zero PUSH TURRET ;Otherwise, check turett temp PSHI 100 ; and if it's not too hot, then JLT FIRE ; go shoot the guy PUSH DAMAGE ;Jump to PUSH D ; NEW if JNE NEW ; DAMAGE is not equal to D JMP SPOT ;Go see if enemy still exists FIRE: PUSH R ; Turn the turret POP TURRET PUSH RADAR POP SHOT ;FIRE PUSH SHOT ;IF DAMAGE<10 then increment radar PSHI 10 ; again since I'm just 'winging' them. JLT SCAN JMP SPOT ; Continue firing at oppenent. NEW: PUSH DAMAGE ;Save current damage POP D ; PSHI 6300 ;Set random X value POP RANDOM ; PUSH RANDOM ; POP A ; PSHI 3300 ;Set random Y value POP RANDOM ; PUSH RANDOM ; POP B ; MOVE: PUSH A ;Set speed in X direction PUSH X ; based on the formula SUB ; (A - X) * 5 TO SPEEDX DUP ; ABS ; XCHG ; PSHI 5 MUL POP SPEEDX ; PUSH B ;Set speed in Y direction PUSH Y ; based on the formula SUB ; (B - Y) * 5 TO SPEEDY DUP ; ABS ; XCHG ; PSHI 5 MUL POP SPEEDY ; CHECK: ADD ;Add \A - X\ + \B - Y\ PSHI 500 ;If it's > 500 then continue moving JGT MOVE ; PSHI 0 ;Otherwise, stop moving DUP ; POP SPEEDX ; POP SPEEDY ; JMP SPOT ;