; Generated by ; CAT Version 0.24, C compiler for AT-Robots, (c) Hendrix, Dunaszegi ; ; Tamas Dunaszegi, dunasz@mail.datanet.hu #msg Catch me! v2.0 #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 @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 CMP @0129,500 JGE !17 CALL !away !17 IPO 7,@0129 JZ !12 JNZ !12 !13 !18 CMP @0129,5000 JGE !19 CMP [3],0 JEQ !20 MOV @510,[3] MPY @510,@0128 SAR @510,1 OPO 12,@510 JZ !21 JNZ !21 !20 SAR @0128,1 !21 CMP [3],1 JNE !22 SAR @0128,1 !22 CMP [3],-1 JNE !23 SAR @0128,1 !23 CMP @0128,1 JGE !24 MOV @0128,1 OPO 17,@0128 CALL !fire JZ !16 JNZ !16 !24 OPO 17,@0128 CALL !edge CMP @0129,500 JGE !25 CALL !away !25 IPO 7,@0129 JZ !18 JNZ !18 !19 !16 CALL !move JZ !11 JNZ !11 RET !edge INT 2 MOV @510,[1] ADD @510,4096 JZ @510 JNZ @510 JZ !29 JNZ !29 :4096 CMP fx,200 JLE !30 RET !30 CMP ex,500 JGE !31 MOV @0130,64 JZ !32 JNZ !32 !31 MOV @0130,-64 !32 JZ !33 JNZ !33 :4160 CMP ex,800 JGE !34 RET !34 CMP fx,500 JGE !35 MOV @0130,64 JZ !36 JNZ !36 !35 MOV @0130,-64 !36 JZ !33 JNZ !33 :4224 CMP fx,800 JGE !37 RET !37 CMP ex,500 JGE !38 MOV @0130,-64 JZ !39 JNZ !39 !38 MOV @0130,64 !39 JZ !33 JNZ !33 :4288 CMP ex,200 JLE !40 RET !40 CMP fx,500 JGE !41 MOV @0130,-64 JZ !42 JNZ !42 !41 MOV @0130,64 !42 JZ !33 JNZ !33 !29 !28 RET !33 CMP @0131,0 JLE !43 OPO 22,10 SUB @0131,1 !43 OPO 14,@0130 RET !away IPO 3,@510 CMP @510,[1] JEQ !45 RET !45 CMP @0129,900 JGE !47 CMP [2],216 JGR !48 CMP [2],40 JGE !47 !48 JZ !50 JNZ !50 !47 JZ !46 JNZ !46 !50 MOV @510,[1] ADD @510,8192 JZ @510 JNZ @510 JZ !53 JNZ !53 :8192 CMP fx,800 JLE !54 CMP @0130,0 JGE !56 CMP ex,200 JLS !57 !56 JZ !55 JNZ !55 !57 NEG @0130 !55 !54 JZ !52 JNZ !52 :8256 CMP ex,200 JGE !58 CMP @0130,0 JGE !60 CMP fx,200 JLS !61 !60 JZ !59 JNZ !59 !61 NEG @0130 !59 !58 JZ !52 JNZ !52 :8320 CMP fx,200 JGE !62 CMP @0130,0 JGE !64 CMP ex,800 JGR !65 !64 JZ !63 JNZ !63 !65 NEG @0130 !63 !62 JZ !52 JNZ !52 :8384 CMP ex,800 JLE !66 CMP @0130,0 JGE !68 CMP fx,800 JGR !69 !68 JZ !67 JNZ !67 !69 NEG @0130 !67 !66 !53 !52 MOV @510,@0130 SAL @510,1 OPO 14,@510 NEG @0130 !46 RET !move CALL !edge IPO 1,@510 CMP @510,1 JGE !71 CALL !edge MOV ax,1 INT 4 OPO 11,100 !71 CALL !away RET !start INT 2 IPO 3,@510 NEG @510 OPO 12,@510 OPO 17,32 IPO 7,@510 CMP @510,5000 JGE !73 CMP ex,500 JLE !74 IPO 3,@510 NEG @510 SUB @510,64 OPO 14,@510 CMP fx,500 JGE !75 MOV @0130,-64 !75 JZ !76 JNZ !76 !74 IPO 3,@510 NEG @510 ADD @510,64 OPO 14,@510 CMP fx,500 JLE !77 MOV @0130,-64 !77 !76 JZ !78 JNZ !78 !73 OPO 12,128 IPO 7,@510 CMP @510,5000 JGE !79 CMP ex,500 JLE !80 IPO 3,@510 NEG @510 SUB @510,64 OPO 14,@510 CMP fx,500 JGE !81 MOV @0130,-64 !81 JZ !82 JNZ !82 !80 IPO 3,@510 NEG @510 ADD @510,64 OPO 14,@510 CMP fx,500 JLE !83 MOV @0130,-64 !83 !82 JZ !84 JNZ !84 !79 CMP fx,500 JGE !85 IPO 3,@509 MOV @510,128 SUB @510,@509 OPO 14,@510 CMP ex,500 JGE !86 MOV @0130,-64 !86 JZ !87 JNZ !87 !85 IPO 3,@510 NEG @510 OPO 14,@510 CMP ex,500 JLE !88 MOV @0130,-64 !88 !87 !84 !78 RET !scan MOV @0128,64 OPO 17,@0128 IPO 7,@0129 CMP @0129,5000 JLE !90 OPO 12,128 IPO 7,@0129 !90 !91 CMP @0129,5000 JGE !92 CMP [3],0 JEQ !93 MOV @510,[3] MPY @510,@0128 SAR @510,1 OPO 12,@510 JZ !94 JNZ !94 !93 SAR @0128,1 !94 CMP [3],1 JNE !95 SAR @0128,1 !95 CMP [3],-1 JNE !96 SAR @0128,1 !96 CMP @0128,1 JGE !97 MOV @0128,1 RET !97 OPO 17,@0128 IPO 7,@0129 JZ !91 JNZ !91 !92 RET !fire IPO 2,@510 CMP @510,50 JLE !99 RET !99 CMP [13],10 JGE !100 OPO 17,2 IPO 7,@510 CMP @510,5000 JGE !101 OPO 12,[3] !102 IPO 2,@510 CMP @510,250 JGE !103 OPO 15,0 JZ !102 JNZ !102 !103 JZ !104 JNZ !104 !101 !105 IPO 2,@510 CMP @510,250 JGE !106 OPO 15,-1 OPO 15,0 OPO 15,1 JZ !105 JNZ !105 !106 !104 JZ !107 JNZ !107 !100 MOV @510,[6] CALL !s MOV @510,ax MOV @509,[13] DIV @509,32 MPY @510,@509 DIV @510,100 MOV cx,@510 MOV @510,cx CALL !as OPO 12,dx OPO 15,0 OPO 15,1 OPO 15,-1 !107 OPO 11,100 RET !s SAR @0510,2 JZ @0510 JNZ @0510 JZ !111 JNZ !111 :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 !111 MOV ax,0 ERR 1000 RET !110 RET !as MOV @509,1000 ADD @509,@0510 JZ @509 JNZ @509 JZ !115 JNZ !115 :936 MOV dx,-64 RET :937 MOV dx,-57 RET :938 MOV dx,-54 RET :939 MOV dx,-51 RET :940 MOV dx,-50 RET :941 MOV dx,-48 RET :942 MOV dx,-46 RET :943 MOV dx,-45 RET :944 MOV dx,-43 RET :945 MOV dx,-42 RET :946 MOV dx,-41 RET :947 MOV dx,-40 RET :948 MOV dx,-39 RET :949 MOV dx,-38 RET :950 MOV dx,-37 RET :951 MOV dx,-36 RET :952 MOV dx,-35 RET :953 MOV dx,-34 RET :954 MOV dx,-33 RET :955 MOV dx,-32 RET :956 MOV dx,-31 RET :957 MOV dx,-30 RET :958 MOV dx,-29 RET :959 MOV dx,-28 RET :960 MOV dx,-28 RET :961 MOV dx,-27 RET :962 MOV dx,-26 RET :963 MOV dx,-25 RET :964 MOV dx,-24 RET :965 MOV dx,-24 RET :966 MOV dx,-23 RET :967 MOV dx,-22 RET :968 MOV dx,-21 RET :969 MOV dx,-21 RET :970 MOV dx,-20 RET :971 MOV dx,-19 RET :972 MOV dx,-18 RET :973 MOV dx,-18 RET :974 MOV dx,-17 RET :975 MOV dx,-16 RET :976 MOV dx,-16 RET :977 MOV dx,-15 RET :978 MOV dx,-14 RET :979 MOV dx,-14 RET :980 MOV dx,-13 RET :981 MOV dx,-12 RET :982 MOV dx,-12 RET :983 MOV dx,-11 RET :984 MOV dx,-10 RET :985 MOV dx,-10 RET :986 MOV dx,-9 RET :987 MOV dx,-8 RET :988 MOV dx,-8 RET :989 MOV dx,-7 RET :990 MOV dx,-6 RET :991 MOV dx,-6 RET :992 MOV dx,-5 RET :993 MOV dx,-4 RET :994 MOV dx,-4 RET :995 MOV dx,-3 RET :996 MOV dx,-3 RET :997 MOV dx,-2 RET :998 MOV dx,-1 RET :999 MOV dx,-1 RET :1000 MOV dx,0 RET :1001 MOV dx,1 RET :1002 MOV dx,1 RET :1003 MOV dx,2 RET :1004 MOV dx,3 RET :1005 MOV dx,3 RET :1006 MOV dx,4 RET :1007 MOV dx,4 RET :1008 MOV dx,5 RET :1009 MOV dx,6 RET :1010 MOV dx,6 RET :1011 MOV dx,7 RET :1012 MOV dx,8 RET :1013 MOV dx,8 RET :1014 MOV dx,9 RET :1015 MOV dx,10 RET :1016 MOV dx,10 RET :1017 MOV dx,11 RET :1018 MOV dx,12 RET :1019 MOV dx,12 RET :1020 MOV dx,13 RET :1021 MOV dx,14 RET :1022 MOV dx,14 RET :1023 MOV dx,15 RET :1024 MOV dx,16 RET :1025 MOV dx,16 RET :1026 MOV dx,17 RET :1027 MOV dx,18 RET :1028 MOV dx,18 RET :1029 MOV dx,19 RET :1030 MOV dx,20 RET :1031 MOV dx,21 RET :1032 MOV dx,21 RET :1033 MOV dx,22 RET :1034 MOV dx,23 RET :1035 MOV dx,24 RET :1036 MOV dx,24 RET :1037 MOV dx,25 RET :1038 MOV dx,26 RET :1039 MOV dx,27 RET :1040 MOV dx,28 RET :1041 MOV dx,28 RET :1042 MOV dx,29 RET :1043 MOV dx,30 RET :1044 MOV dx,31 RET :1045 MOV dx,32 RET :1046 MOV dx,33 RET :1047 MOV dx,34 RET :1048 MOV dx,35 RET :1049 MOV dx,36 RET :1050 MOV dx,37 RET :1051 MOV dx,38 RET :1052 MOV dx,39 RET :1053 MOV dx,40 RET :1054 MOV dx,41 RET :1055 MOV dx,42 RET :1056 MOV dx,43 RET :1057 MOV dx,45 RET :1058 MOV dx,46 RET :1059 MOV dx,48 RET :1060 MOV dx,50 RET :1061 MOV dx,51 RET :1062 MOV dx,54 RET :1063 MOV dx,57 RET :1064 MOV dx,64 RET !115 MOV dx,0 ERR 1001 RET !114 RET