#DEF MAXHEAT #DEF SCANNERARC #DEF HEADING #DEF ATURHEAD #DEF TURHEAD #DEF SCANRES #DEF MAXSCAN #DEF COUNTER1 #DEF MAXSPEED #CONFIG SCANNER=3 #CONFIG ENGINE=4 !INITILIAZATION MOV MAXSCAN, 700 ; MAX SCAN RESULUTS MOV MAXHEAT, 300 ; MAX HEAT MOV MAXSPEED, 100 ; MOV AX, 1 INT 3 !GOMID MOV EX, 500 ;X MOV FX, 500 ;Y INT 7 ; FIND 360 ANGLE TO X, Y IPO 3, BX ; GET CURRENT HEADING AND AX, 255 ; FIX 360 ANGLE TO 255 SUB AX, BX ; GET NUMBER TO TURN OPO 14, AX ; AND TURN OPO 11, MAXSPEED ; START ENGINE !INITIALSCAN OPO 12, 128 ; TURN TURRET AROUND MOV SCANNERARC, 64 ; SCAN IN 128 DEGREES OPO 17, SCANNERARC ; MAKE IT SO IPO 7, SCANRES ; SCAN FOR LIFE CMP SCANRES, MAXSCAN ; COMPARING RESULTS JA !INITIALSCAN ; NONEFOUND, SCAN AGIAN !INITIALCONTACT MOV SCANNERARC, 1 ; MAKE IT SMALL OPO 17, SCANNERARC ; MAKE IT SO !LOOKFORENEMY CMP SCANNERARC, 64 JGR !GOMID IPO 7, SCANRES ; LOOK FOR ENEMY CMP SCANRES, MAXSCAN ; ANYONE FOUND? 1 JLS !AIMING ; IF SO, AIM 0 SHL SCANNERARC, 1 ; ELSE MAKE IT BIGGER OPO 17, SCANNERARC ; MAKE IT SO JMP !LOOKFORENEMY ; AND SCAN AGIAN !AIMING CMP @3, 0 ; LETS SEE WHERE THEY ARE AT 1 JGR !RIGHT JLS !LEFT JE !FIRE !RIGHT CMP @3, 1 ; IF ITS JUST A LITTLE, GO DOWN MORE 1 JE !LRIGHT ; ^ MOV AX, SCANNERARC ; START TURNING TURRET, GET CURRENT SCAN 1 OPO 12, AX ; AND TURN TURRET TO FACE THAT WAY 0 JMP !FIRE ; FIRE AWAY !LRIGHT MOV AX, SCANNERARC ; START TURNING TURRET, GET CURRENT SCAN SHR AX, 1 ; MAKE IT HALF OPO 12, AX ; AND TURN TURRET TO FACE THAT WAY JMP !FIRE ; FIRE AWAY !LEFT CMP @3, -1 ; IF ITS JUST A LITTLE, GO DOWN MORE JE !LLEFT ; ^ MOV AX, SCANNERARC ; START TURNING TURRET, GET CURRENT SCAN NEG AX ; SINCE ITS LEFT TURN IT LEFT OPO 12, AX ; AND TURN TURRET TO FACE THAT WAY JMP !FIRE ; FIRE AWAY !LLEFT MOV AX, SCANNERARC ; START TURNING TURRET, GET CURRENT SCAN SHR AX, 1 ; DIVIDE BY TWO TO GET HALF NEG AX ; SINCE ITS LEFT TURN IT LEFT OPO 12, AX ; AND TURN TURRET TO FACE THAT WAY !FIRE IPO 2, FX ; GET HEAT ERR FX ; MSG TO CONSOLE CMP FX, MAXHEAT ; COMPARE IT JA !345345345 ; IF WE ARE ABOVE, DONE FIRE OPO 15 IPO 2, FX ; GET HEAT ERR FX ; MSG TO CONSOLE CMP FX, MAXHEAT ; COMPARE IT JA !345345345 ; IF WE ARE ABOVE, DONE FIRE OPO 15 IPO 2, FX ; GET HEAT ERR FX ; MSG TO CONSOLE CMP FX, MAXHEAT ; COMPARE IT JA !345345345 ; IF WE ARE ABOVE, DONE FIRE OPO 15 !345345345 GSB !SUBGOMID JMP !INITIALCONTACT !SUBGOMID PUSH EX PUSH FX PUSH BX PUSH AX MOV EX, 500 ;X MOV FX, 500 ;Y INT 7 ; FIND 360 ANGLE TO X, Y IPO 3, BX ; GET CURRENT HEADING AND AX, 255 ; FIX 360 ANGLE TO 255 SUB AX, BX ; GET NUMBER TO TURN OPO 14, AX ; AND TURN OPO 11, MAXSPEED ; START ENGINE POP AX POP BX POP FX POP EX RET