#config scanner=4 #config engine=2 #config weapon=3 #config armor=2 #config heatsinks=1 #config mines=0 #def ero mov ax 1 int 3 #def dama #def arc #def dir #def di #def vel opo 11 vel opo 14 50 #msg your soul is mine mov ero 1 mov vel 100 mov dir 48 mov ex 0 mov fx 0 mov arc 64 INT 7 sub ax [1] opo 14 ax opo 11 100 opo 13 ax put 0 448 put 0 449 put 0 450 put 1 451 put 1 452 put 2 453 put 2 454 put 3 455 put 3 456 put 3 457 put 4 458 put 4 459 put 4 460 put 4 461 put 5 462 put 5 463 put 5 464 put 5 465 put 5 466 put 4 467 put 4 468 put 4 469 put 4 470 put 3 471 put 3 472 put 3 473 put 2 474 put 2 475 put 1 476 put 1 477 put 0 478 put 0 479 put 0 480 put -0 481 put -0 482 put -1 483 put -1 484 put -2 485 put -2 486 put -3 487 put -3 488 put -3 489 put -4 490 put -4 491 put -4 492 put -4 493 put -5 494 put -5 495 put -5 496 put -5 497 put -5 498 put -4 499 put -4 500 put -4 501 put -4 502 put -3 503 put -3 504 put -3 505 put -2 506 put -2 507 put -1 508 put -1 509 put -0 510 put -0 511 ;**********************************starting !starting mov fx 0 mov arc 64 INT 7 sub ax [1] opo 12 ax opo 17 64 mov ex 900 mov fx 900 int 7 sub ax @1 opo 14 ax ipo 18 ax cmp ax 1 jae !calm_down opo 11 100 ipo 7 ax cmp ax 2000 jb !comparing int 2 cmp fx 800 ja !starting cmp ex 800 ja !starting ipo 1 ax cmp ax 0 ja !off_check !off_check ipo 6 ax cmp ax dama jb !evade ipo 9 ax cmp ax 1000 ja !starting ;**********************************checking_stopped gsb !stopped je !starting jne !starting ;**********************************searching !searching ipo 7 ax cmp ax 2000 ja !failed ;**********************************checking_stopped ipo 1 ax cmp ax 0 je !stopped ;**********************************comparing !comparing ipo 17 ax cmp ax 3 jbe !destroying ;**********************************shrinking ipo 17 ax cmp ax 4 jbe !shoot ipo 22 ax cmp ax 0 je !jmp opo 22 15 !jmp ipo 8 bx cmp bx 1 je !acc_1 ja !acc+1 cmp bx -1 je !acc_-1 jb !acc-1 !acc_0 opo 17 32 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !dec_1 ja !dec+1 cmp bx -1 je !dec-1 jb !dec-1 !dec_0 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !pre_1 ja !pre+1 cmp bx -1 je !pre-1 jb !pre-1 !pre_0 opo 17 4 ipo 7 ax cmp ax 2000 ja !failed je !destroying jne !destroying !acc_1 opo 12 32 opo 17 32 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !dec_1 ja !dec+1 cmp bx -1 je !dec-1 jb !dec-1 je !dec_0 jne !dec_0 !acc+1 opo 12 48 opo 17 32 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !dec_1 ja !dec+1 cmp bx -1 je !dec-1 jb !dec-1 je !dec_0 jne !dec_0 !acc_-1 opo 12 -32 opo 17 32 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !dec_1 ja !dec+1 cmp bx -1 je !dec-1 jb !dec-1 je !dec_0 jne !dec_0 !acc-1 opo 12 -48 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !dec_1 ja !dec+1 cmp bx -1 je !dec-1 jb !dec-1 je !dec_0 jne !dec_0 !dec_1 opo 12 16 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !pre_1 ja !pre+1 cmp bx -1 je !pre-1 jb !pre-1 je !pre_0 jne !pre_0 !dec+1 opo 12 24 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !pre_1 ja !pre+1 cmp bx -1 je !pre-1 jb !pre-1 je !pre_0 jne !pre_0 !dec_-1 opo 12 -16 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !pre_1 ja !pre+1 cmp bx -1 je !pre-1 jb !pre-1 je !pre_0 jne !pre_0 !dec-1 opo 12 -24 opo 17 16 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !pre_1 ja !pre+1 cmp bx -1 je !pre-1 jb !pre-1 je !pre_0 jne !pre_0 !pre_1 opo 12 8 opo 17 8 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !_1 ja !+1 cmp bx -1 je !-1 jb !-1 je !pre_0 jne !pre_0 !pre+1 opo 12 12 opo 17 8 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !_1 ja !+1 cmp bx -1 je !-1 jb !-1 je !pre_0 jne !pre_0 !pre_-1 opo 12 -8 opo 17 8 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !_1 ja !+1 cmp bx -1 je !-1 jb !-1 je !pre_0 jne !pre_0 !pre-1 opo 12 -12 opo 17 8 ipo 7 ax cmp ax 2000 ja !failed ipo 8 bx cmp bx 1 je !_1 ja !+1 cmp bx -1 je !-1 jb !-1 je !pre_0 jne !pre_0 !_1 opo 12 4 opo 17 4 ipo 7 ax cmp ax 2000 ja !failed je !to2 jne !to2 !+1 opo 12 6 opo 17 4 ipo 7 ax cmp ax 2000 ja !failed je !to2 jne !to2 !_-1 opo 12 -4 opo 17 4 ipo 7 ax cmp ax 2000 ja !failed je !to2 jne !to2 !-1 opo 12 -6 opo 17 4 ipo 7 ax cmp ax 2000 ja !failed je !to2 jne !to2 !to2 ipo 8 bx cmp bx -1 jbe !--1 cmp bx 1 jae !++1 opo 17 0 je !destroying jne !destroying !--1 opo 12 -3 opo 17 1 je !destroying jne !destroying !++1 opo 12 3 opo 17 1 je !destroying jne !destroying ;**********************************destroying !destroying opo 18 1 call !overheat int 9 cmp fx 0 je !big_gay mov ex 200 mov fx 800 int 7 sub ax @1 opo 14 ax ipo 22 ax cmp ax 0 je !shoot opo 22 10 !shoot ipo 6 ax cmp ax dama jb !evade_shoot call !settings ipo 8 bx cmp bx 0 je !well jb !neg ja !pos !well opo 12 bx set ax @6 ; compute leading and ax 255 shr ax 2 add ax 448 get ax ax out P_FIRE ax out P_FIRE ax neg ero err ero opo 11 vel call !find je !failed jne !failed !neg sub bx 1 opo 12 bx set ax @6 ; compute leading and ax 255 shr ax 2 add ax 448 get ax ax out P_FIRE ax out P_FIRE ax neg ero err ero opo 11 vel call !find je !failed jne !failed !pos add bx 1 opo 12 bx set ax @6 ; compute leading and ax 255 shr ax 2 add ax 448 get ax ax out P_FIRE ax out P_FIRE ax neg ero err ero opo 11 vel call !find je !failed jne !failed ;**********************************escaping !evade opo 11 vel ipo 10 dir and dir 255 sub dir [1] opo 14 dir ipo 6 ax mov dama ax je !starting jne !starting ;**********************************increasment-routine !failed ipo 17 ax cmp ax 2 je !with_2 cmp ax 4 je !with_4 cmp ax 8 je !with_8 cmp ax 16 je !with_16 opo 17 64 je !starting jne !starting !with_16 opo 17 32 ipo 7 ax cmp ax 2000 ja !starting ipo 17 ax mpy ax @3 sar ax 1 opo 12 ax opo 17 8 je !with_8 jne !with_8 !with_8 opo 17 16 ipo 7 ax cmp ax 2000 ja !with_16 ipo 17 ax mpy ax @3 sar ax 1 opo 12 ax opo 17 8 je !with_4 jne !with_4 !with_4 opo 14 ax opo 17 8 ipo 7 ax cmp ax 2000 ja !with_8 ipo 17 ax mpy ax @3 sar ax 1 opo 12 ax opo 17 4 je !with_2 jne !with_2 !with_2 opo 17 4 ipo 7 ax cmp ax 2000 ja !with_4 ipo 17 ax mpy ax @3 sar ax 1 opo 12 ax opo 17 2 je !shoot jne !shoot ;**********************************cooling_routine !cooling ipo 2 ax cmp ax 150 jbe !searching je !starting jne !starting ;**********************************if_stopped !stopped2 :200 int i_locate in p_compass, ax cmp ex, 100 ja 202 cmp ax, 128 jb 204 out p_throttle, 49 cmp ax, 192 jb 201 out p_steering, 70 je 210 jne 210 :201 out p_steering, 185 je 210 jne 210 :202 cmp ex, 900 jb 204 cmp ax, 128 ja 206 out p_throttle, 49 cmp ax, 64 jb 203 out p_steering, 70 je 210 jne 210 :203 out p_steering, 185 je 210 jne 210 :204 cmp fx, 100 ja 206 out p_throttle, 49 cmp ax, 64 ja 205 out p_steering, 70 je 210 jne 210 :205 cmp ax, 192 jb 211 out p_steering, 185 je 210 jne 210 :206 cmp fx, 900 jb 211 out p_throttle, 49 cmp ax, 64 jb 211 cmp ax, 192 ja 211 cmp ax, 128 jb 207 out p_steering, 70 je 210 jne 210 :207 out p_steering 185 ipo 17 ax cmp ax 4 jb 2122 :210 opo 11 vel :211 opo 11 vel je !searching jne !searching !stopped :200 int i_locate in p_compass, ax cmp ex, 100 ja 202 cmp ax, 128 jb 204 out p_throttle, 49 cmp ax, 192 jb 201 out p_steering, 70 je 210 jne 210 :201 out p_steering, 185 je 210 jne 210 :202 cmp ex, 900 jb 204 cmp ax, 128 ja 206 out p_throttle, 49 cmp ax, 64 jb 203 out p_steering, 70 je 210 jne 210 :203 out p_steering, 185 je 210 jne 210 :204 cmp fx, 100 ja 206 out p_throttle, 49 cmp ax, 64 ja 205 out p_steering, 70 je 210 jne 210 :205 cmp ax, 192 jb 211 out p_steering, 185 je 210 jne 210 :206 cmp fx, 900 jb 211 out p_throttle, 49 cmp ax, 64 jb 211 cmp ax, 192 ja 211 cmp ax, 128 jb 207 out p_steering, 70 je 210 jne 210 :207 out p_steering 185 ipo 17 ax cmp ax 4 jb 2122 :210 opo 11 vel ret :211 opo 11 vel ret :2122 je !destroying jne !destroying ;**********************************if_enemy_stopped !big_gay opo 11 1 ipo 2 ax cmp ax 100 jae !cooling ipo 17 ax mpy ax @3 sar ax 1 opo 12 ax opo 17 1 ipo 7 ax cmp ax 2000 ja !failed ipo 1 ax cmp ax 1 je !bye del 5 !bye opo 18 1 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 15 @3 opo 14 @2 opo 11 vel opo 14 64 ipo 2 ax cmp ax 250 jae !cooling ipo 1 ax cmp ax 0 je !stopped ipo 7 ax cmp ax 2000 ja !failed opo 18 0 cmp arc 3 jbe !destroying je !starting jne !starting ;**********************************if_overburn_on !calm_down opo 18 0 je !starting jne !starting ;;**********************************accuracy_improvment !sub_check ret !comparing_2 ipo 17 ax cmp ax 4 je !shoot cmp ax 8 je !cmp cmp ax 16 jae !starting !cmp ipo 8 bx cmp bx 1 je !_1 ja !+1 cmp bx -1 je !-1 jb !-1 je !pre_0 jne !pre_0 !settings !cool ipo 2 ax cmp ax 200 jae !cooling ret !find ipo 7 ax cmp ax 2000 jb !shoot ret je !starting jne !starting !overheat ipo 2 ax cmp ax 10 ja !overver ret !overver opo 18 0 ret !evade_shoot opo 11 vel ipo 10 ax and ax 128 sub ax [1] opo 14 ax ipo 6 ax mov dama ax je !shoot jne !shoot