; Generated by ; CAT Version 0.24, C compiler for AT-Robots, (c) Hendrix, Dunaszegi ; ; Tamas Dunaszegi, dunasz@mail.datanet.hu #msg Catch me! v2.3 #config scanner=4 #config weapon=1 #config armor=0 #config engine=5 #config heatsinks=2 !main MOV ax,1 INT 4 MOV ax,1 INT 3 OPO 11,100 CALL !scan MOV @510,[2] CMP [2],64 JLS !2 CMP [2],192 JLE !4 !2 ADD @510,-64 JZ !5 JNZ !5 !4 ADD @510,64 !5 OPO 14,@510 CMP @0129,400 JGE !6 MOV CX,30 !7 OPO 15,0 LOOP !7 !8 !6 !9 IPO 3,@510 CMP @510,[1] JEQ !10 JZ !9 JNZ !9 !10 MOV @0130,64 CALL !start MOV @0134,30 MOV @0131,2 OPO 17,@0128 !11 IPO 7,@0129 !12 CMP @0129,5000 JLE !13 CMP @0128,64 JGE !14 SAL @0128,1 OPO 17,@0128 JZ !15 JNZ !15 !14 OPO 12,128 JZ !16 JNZ !16 !15 CALL !edge CALL !away IPO 7,@0129 JZ !12 JNZ !12 !13 !17 CMP @0129,5000 JGE !18 CMP [3],0 JEQ !19 MOV @510,[3] MPY @510,@0128 SAR @510,1 OPO 12,@510 JZ !20 JNZ !20 !19 SAR @0128,1 !20 CMP [3],1 JNE !21 SAR @0128,1 !21 CMP [3],-1 JNE !22 SAR @0128,1 !22 CMP @0128,1 JGE !23 MOV @0128,1 OPO 17,@0128 CALL !fire JZ !16 JNZ !16 !23 OPO 17,@0128 CALL !edge CALL !away IPO 7,@0129 JZ !17 JNZ !17 !18 !16 CALL !move JZ !11 JNZ !11 RET !edge INT 2 MOV @510,[1] ADD @510,4096 JZ @510 JNZ @510 JZ !27 JNZ !27 :4096 CMP fx,200 JLE !28 RET !28 CMP ex,500 JGE !29 MOV @0130,64 JZ !30 JNZ !30 !29 MOV @0130,-64 !30 JZ !31 JNZ !31 :4160 CMP ex,800 JGE !32 RET !32 CMP fx,500 JGE !33 MOV @0130,64 JZ !34 JNZ !34 !33 MOV @0130,-64 !34 JZ !31 JNZ !31 :4224 CMP fx,800 JGE !35 RET !35 CMP ex,500 JGE !36 MOV @0130,-64 JZ !37 JNZ !37 !36 MOV @0130,64 !37 JZ !31 JNZ !31 :4288 CMP ex,200 JLE !38 RET !38 CMP fx,500 JGE !39 MOV @0130,-64 JZ !40 JNZ !40 !39 MOV @0130,64 !40 JZ !31 JNZ !31 !27 !26 RET !31 CMP @0131,0 JLE !41 OPO 22,10 SUB @0131,1 !41 OPO 14,@0130 MOV @510,[9] ADD @510,250 MOV @0135,@510 RET !away IPO 3,@510 CMP @510,[1] JEQ !43 RET !43 CMP [9],@0135 JLE !44 MOV @510,[9] ADD @510,250 MOV @0135,@510 MOV @510,@0130 SAL @510,1 OPO 14,@510 NEG @0130 RET !44 CMP @0129,900 JGE !46 CMP [2],216 JGR !47 CMP [2],40 JGE !46 !47 JZ !49 JNZ !49 !46 JZ !45 JNZ !45 !49 MOV @510,[1] ADD @510,8192 JZ @510 JNZ @510 JZ !52 JNZ !52 :8192 CMP fx,800 JLE !53 CMP @0130,0 JGE !55 CMP ex,200 JLS !56 !55 JZ !54 JNZ !54 !56 NEG @0130 !54 !53 JZ !51 JNZ !51 :8256 CMP ex,200 JGE !57 CMP @0130,0 JGE !59 CMP fx,200 JLS !60 !59 JZ !58 JNZ !58 !60 NEG @0130 !58 !57 JZ !51 JNZ !51 :8320 CMP fx,200 JGE !61 CMP @0130,0 JGE !63 CMP ex,800 JGR !64 !63 JZ !62 JNZ !62 !64 NEG @0130 !62 !61 JZ !51 JNZ !51 :8384 CMP ex,800 JLE !65 CMP @0130,0 JGE !67 CMP fx,800 JGR !68 !67 JZ !66 JNZ !66 !68 NEG @0130 !66 !65 !52 !51 MOV @510,@0130 SAL @510,1 OPO 14,@510 NEG @0130 MOV @510,[9] ADD @510,250 MOV @0135,@510 !45 RET !move CALL !edge IPO 1,@510 CMP @510,1 JGE !70 CALL !edge MOV ax,1 INT 4 OPO 11,100 !70 CALL !away RET !start INT 2 IPO 3,@510 NEG @510 OPO 12,@510 OPO 17,32 IPO 7,@510 CMP @510,5000 JGE !72 CMP ex,500 JLE !73 IPO 3,@510 NEG @510 SUB @510,64 OPO 14,@510 CMP fx,500 JGE !74 MOV @0130,-64 !74 JZ !75 JNZ !75 !73 IPO 3,@510 NEG @510 ADD @510,64 OPO 14,@510 CMP fx,500 JLE !76 MOV @0130,-64 !76 !75 JZ !77 JNZ !77 !72 OPO 12,128 IPO 7,@510 CMP @510,5000 JGE !78 CMP ex,500 JLE !79 IPO 3,@510 NEG @510 SUB @510,64 OPO 14,@510 CMP fx,500 JGE !80 MOV @0130,-64 !80 JZ !81 JNZ !81 !79 IPO 3,@510 NEG @510 ADD @510,64 OPO 14,@510 CMP fx,500 JLE !82 MOV @0130,-64 !82 !81 JZ !83 JNZ !83 !78 CMP fx,500 JGE !84 IPO 3,@509 MOV @510,128 SUB @510,@509 OPO 14,@510 CMP ex,500 JGE !85 MOV @0130,-64 !85 JZ !86 JNZ !86 !84 IPO 3,@510 NEG @510 OPO 14,@510 CMP ex,500 JLE !87 MOV @0130,-64 !87 !86 !83 !77 RET !scan MOV @0128,64 OPO 17,@0128 IPO 7,@0129 CMP @0129,5000 JLE !89 OPO 12,128 IPO 7,@0129 !89 !90 CMP @0129,5000 JGE !91 CMP [3],0 JEQ !92 MOV @510,[3] MPY @510,@0128 SAR @510,1 OPO 12,@510 JZ !93 JNZ !93 !92 SAR @0128,1 !93 CMP [3],1 JNE !94 SAR @0128,1 !94 CMP [3],-1 JNE !95 SAR @0128,1 !95 CMP @0128,1 JGE !96 MOV @0128,1 RET !96 OPO 17,@0128 IPO 7,@0129 JZ !90 JNZ !90 !91 RET !fire IPO 2,@510 CMP @510,50 JLE !98 RET !98 CMP [13],10 JGE !99 OPO 17,2 IPO 7,@510 CMP @510,5000 JGE !100 OPO 12,[3] !101 IPO 2,@510 CMP @510,250 JGE !102 OPO 15,0 JZ !101 JNZ !101 !102 JZ !103 JNZ !103 !100 !104 IPO 2,@510 CMP @510,250 JGE !105 OPO 15,-1 OPO 15,0 OPO 15,1 JZ !104 JNZ !104 !105 !103 JZ !106 JNZ !106 !99 MOV ax,[6] CALL !s MOV @510,ax MOV @509,[13] SAR @509,5 MPY @510,@509 DIV @510,100 MOV ax,@510 CALL !as OPO 12,ax OPO 15,0 OPO 15,0 INT 11 CMP fx,@0134 JLE !107 CMP @0133,2 JGE !108 MOV @510,@0133 INC @0133 !108 JZ !109 JNZ !109 !107 CMP @0133,0 JLE !110 MOV @510,@0133 DEC @0133 !110 !109 CMP @0133,1 JLS !111 OPO 15,1 OPO 15,-1 !111 CMP @0133,2 JLS !112 OPO 15,2 OPO 15,-2 !112 IPO 2,@510 SUB @510,30 MOV @0134,@510 !106 OPO 11,100 RET !s SAR ax,2 JZ ax JNZ ax JZ !116 JNZ !116 :0 :32 MOV ax,0 RET :31 :1 MOV ax,6 RET :30 :2 MOV ax,12 RET :29 :3 MOV ax,19 RET :4 :28 MOV ax,24 RET :27 :5 MOV ax,30 RET :6 :26 MOV ax,36 RET :25 :7 MOV ax,41 RET :8 :24 MOV ax,45 RET :9 :23 MOV ax,49 RET :22 :10 MOV ax,53 RET :21 :11 MOV ax,56 RET :20 :12 MOV ax,59 RET :13 :19 MOV ax,61 RET :18 :14 MOV ax,63 RET :15 :16 :17 MOV ax,64 RET :33 :63 MOV ax,-6 RET :62 :34 MOV ax,-12 RET :35 :61 MOV ax,-19 RET :60 :36 MOV ax,-24 RET :37 :59 MOV ax,-30 RET :58 :38 MOV ax,-36 RET :57 :39 MOV ax,-41 RET :40 :56 MOV ax,-45 RET :41 :55 MOV ax,-49 RET :42 :54 MOV ax,-53 RET :53 :43 MOV ax,-56 RET :44 :52 MOV ax,-59 RET :51 :45 MOV ax,-61 RET :50 :46 MOV ax,-63 RET :47 :49 :48 MOV ax,-64 RET !116 MOV ax,0 ERR 1000 RET !115 RET !as MOV @510,1000 ADD @510,ax JZ @510 JNZ @510 JZ !120 JNZ !120 :963 MOV ax,-25 RET :964 :965 MOV ax,-24 RET :966 MOV ax,-23 RET :967 MOV ax,-22 RET :968 :969 MOV ax,-21 RET :970 MOV ax,-20 RET :971 MOV ax,-19 RET :972 :973 MOV ax,-18 RET :974 MOV ax,-17 RET :975 :976 MOV ax,-16 RET :977 MOV ax,-15 RET :978 :979 MOV ax,-14 RET :980 MOV ax,-13 RET :981 :982 MOV ax,-12 RET :983 MOV ax,-11 RET :984 :985 MOV ax,-10 RET :986 MOV ax,-9 RET :987 :988 MOV ax,-8 RET :989 MOV ax,-7 RET :990 :991 MOV ax,-6 RET :992 MOV ax,-5 RET :993 :994 MOV ax,-4 RET :995 :996 MOV ax,-3 RET :997 MOV ax,-2 RET :998 :999 MOV ax,-1 RET :1000 MOV ax,0 RET :1001 :1002 MOV ax,1 RET :1003 MOV ax,2 RET :1004 :1005 MOV ax,3 RET :1006 :1007 MOV ax,4 RET :1008 MOV ax,5 RET :1009 :1010 MOV ax,6 RET :1011 MOV ax,7 RET :1012 :1013 MOV ax,8 RET :1014 MOV ax,9 RET :1015 :1016 MOV ax,10 RET :1017 MOV ax,11 RET :1018 :1019 MOV ax,12 RET :1020 MOV ax,13 RET :1021 :1022 MOV ax,14 RET :1023 MOV ax,15 RET :1024 :1025 MOV ax,16 RET :1026 MOV ax,17 RET :1027 :1028 MOV ax,18 RET :1029 MOV ax,19 RET :1030 MOV ax,20 RET :1031 :1032 MOV ax,21 RET :1033 MOV ax,22 RET :1034 MOV ax,23 RET :1035 :1036 MOV ax,24 RET :1037 MOV ax,25 RET !120 MOV ax,0 ERR 1001 RET !119 RET