$SHORT ********************************************************** ********************************************************** ** CLINT : Sweeps arena with radar, locks on and kills,** ** continues firing until enemy is dead or enemy ** ** moves out of range. ** ** PROG: Joshua Kors, Reichhold Chemicals ** ** DESC: ** ** MODS: ** ** 06/12/84 JGK Written. ** ** ** ********************************************************** ********************************************************** * FIX BUG. ***** **** *** ** * ONLY MOVE IN IF FAR AWAY, OUT IF CLOSE * WHEN I BUMP WALL OR DROID WHILE MOVING AWAY, * STOP, ROTATE RADAR AND LOOK FOR SOMEONE ELSE. LDI 220 STOR WIDTH INIT: LOAD Z JZR GOAHEAD LDI 0 STOR Z LAB MAKE MY DAY JMP OTHERLAB GOAHEAD: LDI 1 STOR Z LAB GO AHEAD OTHERLAB: GSB SCAN1 FIRE: LOAD RADAR ;Load radar dist to save STOR D ;Store distance to D LOAD R ;This portion is the center routine LDI 10 ; Increment radar by one degree ADD DUP ; until the enemy is not found STOR R ;Save radar position STOR RADAR ; LOAD RADAR ; LDI 0 ;Continue to increment radar JGT FIRE ; if the value returned is > 0 LOAD R ;Otherwise, subtract WIDTH/2 from radar LOAD WIDTH ; (in order to maximize enemy damage) LDI 2 DIV SUB ; STOR R ;Save the radar value AIM'TURRET: LOAD R ; STOR TURRET ;Aim the turret LOAD TURRET ;Make sure turret's not TOO HOT LDI 100 JGT AIM'TURRET LOAD R STOR RADAR ;Pulse radar LOAD RADAR ; LDI 0 ;The enemy has slipped away here JLT INIT ; go scan again LOAD D ; STOR SHOT ;It's time to fire at the enemy with GSB REVERSE JMP FIRE * PURSUE: finds someone in radar moves in on them * * while also tactfully pounding them. * * AUTHOR: Joshua Kors, Reichhold Chemicals, Inc. * * * ******************************************************** SCAN1: ;*****Check for damage & start radar scan***** LDI 0 DUP DUP STOR SPEEDX STOR SPEEDY STOR A LDI 170 ;Increment LOAD R ; hold radar ADD ; by STOR R ; 170 SPOT1: ;*****Shoot if someone is found***** LOAD R ;Check RADAR with STOR RADAR ; latest R value LOAD RADAR ;Scan again if LDI 0 ; RADAR comes back JLT SCAN1 ; less than zero LOAD RADAR LDI 600 JGT GETEM1 STOP1: LDI 0 DUP STOR SPEEDX STOR SPEEDY SWAP SWAP RET ;RETURN FROM SUBROUTINE GETEM1: ; LOAD A JZR NOTEST LOAD SPEEDX JZR SCAN1 NOTEST: LDI 10000 ; SPEED sin radar = speed y LOAD R SIN LDI 10000 LOAD R ; SPEED cos radar = speed x COS STOR SPEEDX STOR SPEEDY LDI 1 STOR A JMP SPOT1 REVERSE: ;Backout before scanning. LDI -10000 LOAD R SIN LDI -10000 LOAD R COS STOR SPEEDX STOR SPEEDY SWAP LOAD SPEEDX JZR ENDREVERSE SWAP LOAD SPEEDX JZR ENDREVERSE SWAP LOAD SPEEDX JZR ENDREVERSE SWAP LOAD SPEEDX JZR ENDREVERSE SWAP LOAD SPEEDX JZR ENDREVERSE LDI 0 DUP STOR SPEEDX STOR SPEEDY ENDREVERSE: LOAD R LOAD WIDTH LDI 3 DIV SUB LDI 170 SUB ;Set up radar to find same guy STOR R ; GSB SCAN1 ;Now go move in on 'em. RET ;BOY this is gonna confuse 'em.