From 45e980b4e37acf797590d70de2d1d3aefe66768c Mon Sep 17 00:00:00 2001 From: Jeremy FLEURY Date: Wed, 17 Jul 2019 11:51:13 +0200 Subject: [PATCH] push --- libft/include/libft.h | 8 +- libft/libft/ft_itoa_base_int.c | 10 +- libft/libft/ft_itoa_base_short.c | 18 +- test_tool/asm_zaz | Bin 0 -> 90356 bytes test_tool/champion/42.s | 241 ++++++++++++ test_tool/champion/Asombra.s | 158 ++++++++ test_tool/champion/Car.s | 75 ++++ test_tool/champion/Douceur_power.s | 159 ++++++++ test_tool/champion/Explosive_Kitty.s | 146 +++++++ test_tool/champion/Gagnant.s | 70 ++++ test_tool/champion/Kappa.s | 236 +++++++++++ test_tool/champion/Kittystrophic.s | 104 +++++ test_tool/champion/Machine-gun.s | 70 ++++ test_tool/champion/MarineKing.s | 112 ++++++ test_tool/champion/Misaka_Mikoto.s | 206 ++++++++++ test_tool/champion/Rainbow_dash.s | 10 + test_tool/champion/Survivor.s | 15 + test_tool/champion/THUNDER.s | 138 +++++++ test_tool/champion/Varimathras.s | 72 ++++ test_tool/champion/Wall.s | 84 ++++ test_tool/champion/_.s | 155 ++++++++ test_tool/champion/_honeybadger.s | 225 +++++++++++ test_tool/champion/a_test_comment.s | 5 + test_tool/champion/barriere.s | 218 +++++++++++ test_tool/champion/bee_gees.s | 24 ++ test_tool/champion/big_feet.s | 79 ++++ test_tool/champion/bigzork.s | 90 +++++ test_tool/champion/bw.s | 9 + test_tool/champion/casimir.s | 63 +++ test_tool/champion/champ.s | 131 +++++++ test_tool/champion/corelol.s | 11 + test_tool/champion/darksasuke.s | 68 ++++ test_tool/champion/doge.s | 154 ++++++++ test_tool/champion/dubo.s | 22 ++ test_tool/champion/ex.s | 7 + test_tool/champion/fluttershy.s | 147 +++++++ test_tool/champion/gateau.s | 176 +++++++++ test_tool/champion/gedeon.s | 79 ++++ test_tool/champion/helltrain.s | 147 +++++++ test_tool/champion/jinx.s | 97 +++++ test_tool/champion/jumper.s | 70 ++++ test_tool/champion/justin_bee.s | 125 ++++++ test_tool/champion/littlepuppy.s | 47 +++ test_tool/champion/live.s | 127 ++++++ test_tool/champion/loose.s | 156 ++++++++ test_tool/champion/mandragore.s | 96 +++++ test_tool/champion/maxidef.s | 75 ++++ test_tool/champion/meowluigi.s | 132 +++++++ test_tool/champion/mise_a_jour_windows95.s | 151 +++++++ test_tool/champion/mortel.s | 60 +++ test_tool/champion/overwatch.s | 178 +++++++++ test_tool/champion/pdf.s | 5 + test_tool/champion/run_Kitty_RUN.s | 104 +++++ test_tool/champion/salamahenagalabadoun.s | 25 ++ test_tool/champion/skynet.s | 151 +++++++ test_tool/champion/slider2.s | 116 ++++++ test_tool/champion/terminator.s | 57 +++ test_tool/champion/test_header.s | 4 + test_tool/champion/toto.s | 78 ++++ test_tool/champion/turtle.s | 98 +++++ test_tool/champion/ultima.s | 229 +++++++++++ test_tool/champion/ultimate-surrender.s | 433 +++++++++++++++++++++ test_tool/champion/youforkmytralala.s | 172 ++++++++ test_tool/champion/zork.s | 4 + test_tool/main.py | 87 +++++ 65 files changed, 6601 insertions(+), 18 deletions(-) create mode 100755 test_tool/asm_zaz create mode 100644 test_tool/champion/42.s create mode 100644 test_tool/champion/Asombra.s create mode 100644 test_tool/champion/Car.s create mode 100644 test_tool/champion/Douceur_power.s create mode 100644 test_tool/champion/Explosive_Kitty.s create mode 100644 test_tool/champion/Gagnant.s create mode 100644 test_tool/champion/Kappa.s create mode 100644 test_tool/champion/Kittystrophic.s create mode 100644 test_tool/champion/Machine-gun.s create mode 100644 test_tool/champion/MarineKing.s create mode 100644 test_tool/champion/Misaka_Mikoto.s create mode 100644 test_tool/champion/Rainbow_dash.s create mode 100644 test_tool/champion/Survivor.s create mode 100644 test_tool/champion/THUNDER.s create mode 100644 test_tool/champion/Varimathras.s create mode 100644 test_tool/champion/Wall.s create mode 100644 test_tool/champion/_.s create mode 100644 test_tool/champion/_honeybadger.s create mode 100644 test_tool/champion/a_test_comment.s create mode 100644 test_tool/champion/barriere.s create mode 100644 test_tool/champion/bee_gees.s create mode 100644 test_tool/champion/big_feet.s create mode 100644 test_tool/champion/bigzork.s create mode 100644 test_tool/champion/bw.s create mode 100644 test_tool/champion/casimir.s create mode 100644 test_tool/champion/champ.s create mode 100644 test_tool/champion/corelol.s create mode 100644 test_tool/champion/darksasuke.s create mode 100644 test_tool/champion/doge.s create mode 100644 test_tool/champion/dubo.s create mode 100644 test_tool/champion/ex.s create mode 100644 test_tool/champion/fluttershy.s create mode 100644 test_tool/champion/gateau.s create mode 100644 test_tool/champion/gedeon.s create mode 100644 test_tool/champion/helltrain.s create mode 100644 test_tool/champion/jinx.s create mode 100644 test_tool/champion/jumper.s create mode 100644 test_tool/champion/justin_bee.s create mode 100644 test_tool/champion/littlepuppy.s create mode 100644 test_tool/champion/live.s create mode 100644 test_tool/champion/loose.s create mode 100644 test_tool/champion/mandragore.s create mode 100644 test_tool/champion/maxidef.s create mode 100644 test_tool/champion/meowluigi.s create mode 100644 test_tool/champion/mise_a_jour_windows95.s create mode 100644 test_tool/champion/mortel.s create mode 100644 test_tool/champion/overwatch.s create mode 100644 test_tool/champion/pdf.s create mode 100644 test_tool/champion/run_Kitty_RUN.s create mode 100644 test_tool/champion/salamahenagalabadoun.s create mode 100644 test_tool/champion/skynet.s create mode 100644 test_tool/champion/slider2.s create mode 100644 test_tool/champion/terminator.s create mode 100644 test_tool/champion/test_header.s create mode 100644 test_tool/champion/toto.s create mode 100644 test_tool/champion/turtle.s create mode 100644 test_tool/champion/ultima.s create mode 100644 test_tool/champion/ultimate-surrender.s create mode 100644 test_tool/champion/youforkmytralala.s create mode 100644 test_tool/champion/zork.s create mode 100644 test_tool/main.py diff --git a/libft/include/libft.h b/libft/include/libft.h index 7b64067..9208da4 100644 --- a/libft/include/libft.h +++ b/libft/include/libft.h @@ -6,7 +6,7 @@ /* By: jfleury +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/11/05 15:35:42 by jfleury #+# #+# */ -/* Updated: 2019/07/15 19:15:18 by igarbuz ### ########.fr */ +/* Updated: 2019/07/17 11:49:39 by jfleury ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,7 @@ # include # include -# define BUFF_SIZE 32 +# define BUFF_SIZE 1 # define CONV_ID_NB 13 # define FLAGS_NB 5 # define PRECI_GROUPS 3 @@ -120,8 +120,8 @@ char *ft_strstr(const char *str, const char *to_find); char *ft_strsub(char const *s, unsigned int start, size_t len); char *ft_strtrim(char const *s); int ft_tolower(int c); -char *ft_itoa_base_int(unsigned int nb, int base); -char *ft_itoa_base_short(unsigned short nb, int base); +unsigned char *ft_itoa_base_int(unsigned int nb, int base); +unsigned char *ft_itoa_base_short(unsigned short nb, int base); int ft_toupper(int c); char *ft_strextend(char *s1, char const *s2); char *ft_strnextend(char *s1, char const *s2, size_t len); diff --git a/libft/libft/ft_itoa_base_int.c b/libft/libft/ft_itoa_base_int.c index 6b33315..1406008 100644 --- a/libft/libft/ft_itoa_base_int.c +++ b/libft/libft/ft_itoa_base_int.c @@ -6,7 +6,7 @@ /* By: jfleury +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/01/23 15:05:04 by allefebv #+# #+# */ -/* Updated: 2019/07/09 15:26:17 by jfleury ### ########.fr */ +/* Updated: 2019/07/17 11:39:51 by jfleury ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ #include #include -static int ft_malloc_len(unsigned int nb, int base) +static int ft_malloc_len(unsigned int nb, int base) { int i; @@ -27,11 +27,11 @@ static int ft_malloc_len(unsigned int nb, int base) return (i); } -char *ft_itoa_base_int(unsigned int nb, int base) +unsigned char *ft_itoa_base_int(unsigned int nb, int base) { unsigned int result; int i; - char *str; + unsigned char *str; char *tab; tab = ft_strdup("0123456789abcdef"); @@ -40,7 +40,7 @@ char *ft_itoa_base_int(unsigned int nb, int base) i = ft_malloc_len(nb, base); if (nb == 0) i++; - if (!(str = (char*)malloc(sizeof(char*) * i + 1))) + if (!(str = malloc(sizeof(unsigned char*) * i + 1))) return (NULL); str[i] = '\0'; if (nb == 0) diff --git a/libft/libft/ft_itoa_base_short.c b/libft/libft/ft_itoa_base_short.c index bf4f963..af2e8d3 100644 --- a/libft/libft/ft_itoa_base_short.c +++ b/libft/libft/ft_itoa_base_short.c @@ -6,7 +6,7 @@ /* By: jfleury +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/01/23 15:05:04 by allefebv #+# #+# */ -/* Updated: 2019/07/13 17:27:38 by tmaze ### ########.fr */ +/* Updated: 2019/07/17 11:40:00 by jfleury ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,9 +14,9 @@ #include #include -static int ft_malloc_len(unsigned short nb, int base) +static int ft_malloc_len(unsigned short nb, int base) { - short i; + short i; i = 0; while (nb != 0) @@ -27,12 +27,12 @@ static int ft_malloc_len(unsigned short nb, int base) return (i); } -char *ft_itoa_base_short(unsigned short nb, int base) +unsigned char *ft_itoa_base_short(unsigned short nb, int base) { - unsigned short result; - short i; - char *str; - char *tab; + unsigned short result; + short i; + unsigned char *str; + char *tab; tab = ft_strdup("0123456789abcdef"); if (base < 2 || base > 16) @@ -40,7 +40,7 @@ char *ft_itoa_base_short(unsigned short nb, int base) i = ft_malloc_len(nb, base); if (nb == 0) i++; - if (!(str = (char*)malloc(sizeof(char*) * i + 1))) + if (!(str = malloc(sizeof(unsigned char*) * i + 1))) return (NULL); str[i] = '\0'; if (nb == 0) diff --git a/test_tool/asm_zaz b/test_tool/asm_zaz new file mode 100755 index 0000000000000000000000000000000000000000..527eb8ae8cbd5969a0843513b9833401fce9ecb1 GIT binary patch literal 90356 zcmb^44ZPd){r~?QYe{LH)R@?qpor_#T%_8Pv-N07J3%|KsfL!N6me0~aY&tZ5~qjQ z*kYKNc48|FYc0;&F0JYba}nkuD8h=*p(ZF&O8>9t`phS2$>-wz zxyUCur@l{q`tBFo*laD|ve{x=*=)8}`Kk=I+2-3^BAaa&`SQ!xv}u91@$EltKj{S2 zfqz;CKHTCX%%>z1PMbElJve#bBE|Q|>H*R0fZ+&fgJjS>;{(NcureA!?MKjO;d2IqcKaZR9y9xs(fAF~fp8@lh zZ%msu`~1sho+$sIlubsY%)JQzy1gF`A+?T{5@^j z&oAhAn0#q|j@tU!YtO-BJwNAw`OP}x>(BWYlb|=pYO>R=6md--Cs%B zMm_w%Z~xx1{_HKY7l@mz;Ip!9P4$)??Cu86R2J|L;Fj{E0XGo$EvX z?)Fk|`zFjU(NXm$W>>mqSN&a6D*i;Tb&4E>z3tCzmOt_rrtx=ml&z#}fj`k+=$c&` zJ^Pu~`B+c+M!`B#UI9jKwtOzxhwabES~Gh*X8L^Bq|)d~&FS;?=^Zk?zq=zZ&%qE` zfrD+fuJ+RC_Wsju$9b>Yy)iA$5NqLYoK}L(s%~l8zjE3I&1vy6W=%ZW ztaDDSbI$tqx6Qmylj&uBvA1Q@bJm#6Us~s!_0|q%S`VkiDPpE|$PQK8m$UxPX$Nsy zT<*-YtG6`m^_;f!eX|ZYwav8EEloR}(=O(;a`1B616#JR4o7m@7^lUlXXfkMY75hD z$7v^XTAWU1+J)cR!nCgrH{;;uw8QGt2DjP5w14Han|3qXhSSx|_p~8fnD!b@TjaE@ z^=UoZZeiM=aoUA4ZD+^Yme%>ZWAg5?|B{u;+N=kpV?l}btd*4K_l@JXUzczDyJlN5 z$**OS6)m#Idt!2E%fwcqeX;b}(i81V@a(SHORNvJlcjeou?{miGcxb*TpgPF(AnnC z!L7T`lNsA=we!#CPgE1LH~AA&D!uK+{wG>*dkNF|d)v$SyR&1{RygPUiH>}0H(o*g zUF{Wrm)H8CoHPHxxn>o1#h9&!yV}=}Zr{|}{rCEW(ca16dyAMBDw#fRIOxjts zwa%AQ6BBplTg>!()TZy6w7zp?OG2JB{V91~(F(~E679vlQ@%XIvTUezb$y075^5)Z z-`)cz9waN@UNWm)TN`T)1~SoJ?vn{^=6|>@iT3q;-bH6Qr@3v5tjUkHoN>? zmcJeHcR@zhH}#>`-DO|Z$8+SzGD30z>!`|}dFgvt=?$G78*HuJwf&8QMRq8@y-L1q zMlR95*6NZ6BlC$hJ-7sQb!@PHiSTsdxsgxH8d@lqNWrn-U-_oZ-?^s6pZG++RkY4T zm#r|XCf{E($b&h^q>`psR!F{&$FlpZ@0)o{DJR-j`xC|b2Kegh@9=jIo`5wp8zEQX zM6ayqF7hPV4w>2^2U7p-b=0?3{;v2tJ1Vx;dG&qh@ABDk6(24qoUEE0EIya4L!}QF z^xC}i@rdPrTXyBZ<=^~WDcxgtF~`6LS)sTDnGYqMoL+gqi?VX<<>}$PgjW0g?t!vxg%E+mSD{vo9{Vv&g`OUKF zeLb?y=FwpP^n!ooYqEwCBikX_TLH=%+175z&s;9y5aDBu&J1kk3W6Zi>4qkc0>!?|V%y)<^#%X5Xg;gjEvGgiW zNqH!PnrL&?r|4Ym!WsErmVfUTwLQk=pWA==wcCltQu_S$?>1JT?C*@aWKD4yG*=B- zx~z%Mg%#|32^(jESv9OY*0_w-tWPZ)CPydNH70Z6`eM&^VefWWIAUe5TIP^#4vAUr zO)KR%?tiGtON)(5F{@zpt-va9+xmS^&c^m?A79#Km1?^U!&N)~o9A%tSvY6=J*#$T z$)c*Y7ZiQ|$_U7w?rpDNn{XBMcOCQpbaTx612dpz#V}s7jM=F}|T!vzwzn@9LZ&#tu2uN`^VYFGUj<0#gSdzrj;xOH}vX{A#ZpGGLY3{;$aXf3I;$$OR9_ z9rpiw*S5dcxK#DqTe4Adg*E$M7KnX2;Psy4@#XzfJ6OJQbnn3lgDueKm)YO-@x|D3 zyzuscy9UR8#BR;nWX?DlK!n<1`lLBbaTe6~m&44@Tug8&*r_=i*-IX4A6bpQm-#Hb z6shs+T<^%?&4~>2k9U+|HZKu)O&WM*JkrcnHU@9>%$Xzf;k@8p>hQr)hGo7Xv6 zc5>jK+V$Cy=-6aAWL9R`axQnxmdEv(>DN!$--+29x@OBuwdhDQV7=pOD}wWAJf3Qk z4XuxlOXiO^Nr@@z6O$}!joj1Al4Mjn%CaO}tL4r~UQHV3gIucmkFVMPvP`+*vl5fm zjWf@kQpGAHp0|E(u3S@O2g$+{r#QPNt&>?+6UVu5`7#QW=jO_&CRWv7 zy5)Pa{0}?dmR&9z-r4JvuR+$6!{r9-` z%mU47xce&@|i z6UbcmJJ&dH%*rt-EB1*b%Ub;j1{kji=$GNeuXYM;@%__(o!^F!|EKwx^TQm4T~|4* zpUW0-zt+$Hf#2`N%9{QD+5>v{pSK~COy@y-ZnSa02+E(6IwO)<;cylw4VYPOY z=bDL{cVe=z9l1rGuXw$zA1_^(%62qf<7)3Nv0ipr>k8KTVXj(pUGbjUyl~3GHy35p z%zTQ+{t80({Q2YC@^0&U;$mfZUZ#bUyZN167{>Z-T zyb^b9?XpeWTRz#-a)|PX-4EN|zNs_6l^Nr%3HC&hPx`9w*PegqSAE~Z`S0)*-YL!iRF#@bUB@JSBM{U$^Y;ZjoItvY)r_FOX+6$-1d_%IzP2_ zOQc|-p<`N%8L{!H`Jmp^f6%UuzdjBvRtFalTP#Oz{X%460sazM&rHV-o| zyXA>pZO*RQ#jYuj$t#V_>>M+*#-}qeS%>=j!Ed(ycgl?axAp&I$p5nbR}C`jKShSA z|9anVW>Q;k^K$d0`=7u!8vlO}{a@Gr$gf_1ys0U-u88g`gKrJSt%TeRcFu9)7N$`9 zw5NOU0=!P+E^+zn6jkt^d+^YFOlPBgA9+1yWG$g2d=7Z^zHyzR~g3DJR(fwtdfU zy`}Bz9{Y}rlsUg6<}m9D>?-T_Co?f#EX@mY|MT~ot>3@pX#U^U@5rxMKkP}fe%Z7f z#*o~j$lHVbAdINLbEVTicO~BkU{ouEv6;0s#~J*k`=i?UZuz=-z*nrdh3n=zxo)nj zT{o@zb@M8-z_Pw>%Ex-VUmn{lyUL$fBkMNVOuCk%%KMAj=M7!k;N@(i+@s5l1#X3L zkG>Eejdu^u;;;TU7SisN^F$7^N?#YJN!K4=t{$Ju$G@$A|7U#MU4MK$A1CUMNAvO3 z^~VSB@tpc&`79OdbZPzZc6@w6{qbkmN8N+ZuRnf=kI$|@euQS5{l_S><13NwP!V!uxB!av(r@`zNM2&N{r~0jhwi~=nMuFd$1dh= zSYo_$z~{-hTeq&4x%>k^{>4(Q3uPt$fuGvQc_MED+U(XethRZ89~;SgA)j2`%=d7W zll>%*SC+qpHw=H2pM%!E=V)FONE81AmjG+if| zDnCyc^l9@lkmJA|AuA~Zzq_oRzk8>QIb9APY5p4fCz-=US(^!os0a5}@^075+q$3l z%$yU)1!`*+G;3YEwIA^Lf{X87ML)x zWJAi9pP?}BTA5m2`Py1nRITYeSW2=;xlWtaDaoqf`18MI)+R59nr}<@=eYkh+l%*u zdg(7=jQcPBQHFvUTUolb-&ZgB33&wc*T$Rz494(Vm6j25ApYuvgMWQ zkE}I@vefC_s_~(>Jor}ahiLm?$D7Z}=gU32ZNMA)vaFo^3{!q$@<;A*Gn4svvuak| zysegFWj|Tnd`n`L-1*Bbe&?zd|MXRI`pBYtt)G7(6E}VWC%ayD>hzAs)(rB>JUZmD zY{_(a$M8K&*EOjq2aJ3iCHF`8kX3$8QI)^2H2Kue>~lRHp8D~PpJQ}guP*E^kOY zA!qmpn~UbhjdB^>(Dyfvk4%8Gs@FQ}^V&*x`CPI!R_$%7dAZ=3Bxe^s6~>n@C?ioe ztJyrq9<9%@GcR-KwK{MjVmrj!VD9GLOW(iXeu1Bb$T9MXzw2g=6Q z?>c4AS~#AIt@CjJ)U&L=j9j}_|G7N22P95Zg$tzd zS6{dP^BJZw3;l}g_I|QW{Jn@keTiKY99l&K3elF8D=UaR6JoIxJp6+4a!w+D(cUt%v{yO|1^Virv$_Ir1 zm)C&C=T|;+ehj!C;)*;$4paF7vH7X=Jgk+hY>9ij*P7eBPRl;R^*Z9PcEwv_{C){9 zX$7kbtBrSQiDR*2u^Y$v$)^&Q`SRXuV3ZmQI^KB zwD@a1<|W24@c1&n_gLR3S=5d45o_(mT|N{}9Ba3(u75(D*jkn^^EBNlmLJ&oT(Ys) zT9}`WW18BF{ev6vJv05lgJ$%kN^58HfZ5$FLatO>K48oXWcT1x%|0CVLwv~Fz0*79 zGlj!f<5=q+J4ybU*gbfSe26+xelRg9(dLo;T$R^)uNmRQWj?ORPyFV}!`FJ*z_#Fk zL(!}lwnKi0L0;Z@jp*{pljS8}ZbqKKWeUH&gWs5WgnK|f;cWc8ipPgcY`rU&T3+yb zt!ec;h2D0nHePb73WOcIGzoAW|+qGY4ljW3algUl?SUwR)i9@PRk>Kn9iyzVbrY6TdtvJp+icfP!gH*+89_Og`2&Lb{jRHi zDKgJKWx%s#7;A$oH#u@;!ff>O8^<3%52%fAulZGAnH~qYxd7IeXQsEzZZ*?>{q?eY zFn*BGTt%~ya+F>sW5}x_F0L_|rZNBe`E#$_9brf@Ud_Y#OP`lC*Z)F1p|-Z;8uJS^ z7OwBdkHan^zhvS#E#2Cds{qc>^$Bes#w@#0yy0D0zC;`YW$h zd3l<=py4%WQoc61(@ZXRnThs{)y3&@GF`#^a*vrbSDW-9Ki#%<{t#K4fv;HdsQ&vW zUp2qRTktQ>Z>Y?#w*0<<^TwwoX5RgOKT$S`*IWKxRQ=_EKM6N4Qg+!+8Oio?r*{}{ zpXEWNHX1UB=4h^1yP9Lqj7p{cTY2@VDt(J^CHmU;>)&Mg+kegSZ^Z%4z4HHH`8dF8 zo7r#sWq19o@eO(1AKlVAZ$v%tH}Lx1AGmOUb$aDV=1u382JNjEzHX%>{RWNKtGVkd zW^seJ--z|InL{wKJc=VN;LwtQp0DT(<(Dc04zlZ{yq%DWVKM%=3X{zcLnzqKhT z>wF?@wQple#u_SbNM+)z^^hDzf}Hgt-^S;y6Xh6_Qn2j942sqvM9Er1l&yCOIX=v~ z#PG{gyW+05cYe6Gn!WR9)YQ2g+P<}WG1h*%>He-O9*+6DmSRgR-0(K~IO(0{ciLuP z^3LUEhOP6R{hy495@u0-xLFwRWb^K}8_$xLWM}Iyr9$9(ZI1l(vV*VI> z;}iKt7iZA56q9z{gq~Pwb>MLCUTzMN#QcCnS-SZvvBpZu53FSoW()BvhTk%y=ueox zn!_%O_sA0)qrZ3magfos3UU?eQk(sRJfjc4_BL>ZtxdS=SKDx)Ol$oB8`nMd#Sdg& zOHs^^dro<`_GUCO-;Jqulg9&}ZvANsa~y$bUz2bA1J}8ck0hSxx(Q82H=YR0&0*exGn4Ts1pMAbj)DH%J5%&`7%ear*@+|@We zr#@sIu-;}fx8Gm7e{ePK56tiM93dZN1$YfT#$0dkNf&PV+b!Ji^PQPIk{bha#DCWu zX7Uhss91`5u6!n3zvSX=9!><@n&5rU*WUkI_qD_4}IgLf?G7 z=(;Ls)(saT+%@3yr;2%_V%`~?fVu1YxtyHJc)zl~g57mEF0`^6AAQigVAfwzyL?`( z%I2c{vYSjWPDZ5h#!0r_ym7*BuXG>YF5j+Cl$Td?`R)YsT=}V@yv)i<$tTxXsTF*S zEpPlzlBaOB^!pXLH@>e$?v7hmbZqY2JS0Bp3x0&yx}tq^XVukuqx_!h7uU9bF`}jQ zfjmEu)#K~p{p3mvllisAC#}hE%kp@OEo+Bg*KIMsVcBjaB60&FFPXhQ{Ipc|r7?FO zTzkQc;hXiJFVx3x@q3#$uQ*V?v8B=TaP(G~LEX~Gt&mSj&9P&RlcTsX8v6YWe&4Tq z?5OwT-_k6T{e^!^f@4nxaaiMN>V8_LZ^iTrWO^>Y{*)JS(Wo5`{ocRIhc7rD*8WGP z-}CFYr*^!2v;B>E)u&w5W`=E?IT&OE%zJk^fL7pO+~T3d?_f*!YOFTS=mGni@1=OO z?Adx#zII&nzrS+S_t&O(W&8H}`t4hRyNC9XdHLne`kLeD?Z3ibxkqJe@IqIA-q)WC z^5V?Be=I)KGW!I_SO4wVcFWu2GM`7u{yI>$hev~1Kfk$j;4NCB!?G?Iu$}lA(BhZXXaudKXz+faoF%t@~;7g zN|%3{ibJ4pH~f!$$zaHA_{P7|myxrw_K#QP*TXnG>io>f-5}1lS?|d4h&NwfbN!I< zTO?D|xBpAK%ZojMi!@H7uenHv%uG0u%mn+ec`7z$!o1}x{ffcz9JAkV#9aZ$c}wTx z$j!d^#>OSwgG=}V9PPY>k81tBx`YonpXKLijpKXb+cG|T%QL@je0XjSJoZnP=a>s$ z;sbLLNxaX!j2Cq|0lt2)R>*xgw{tN*H{H_ljbW1gx42K%@1Xy(e%*(^Ay=>ew*O=| zuaL>=7as1X`h};ld;ZHlzQQbs6Xn0|g}C2|qOYfB{AZfa;y}wFjfTN8(P}rdr=g_1}+mSSQOstdKWPc+Hn9x4eS9h7WpbhwN7# zZ)@dey=Hs<*W>M5*c4n7{!hmnJ|ZwHIfg5Vd&U9RQ|nGS;Z|U$G`45>*K7~&7mj`l zum9M8@{Y0jv={MPV`doeI}_%9X72jr&uzBc6s-M9`I*5da;uap%f=+uOzfWTkdd6& zHEd6ble&gXG(Ra_UQNkddgoWOidH!|*aX0%z$cypWE;DLM`>pp$TnPQjPZX*f)0;M3?V z9H4XXI64n|=>j~IF2Xjt1aB|{yPvH-uw}%*EW>DzX+#V0cM@f^EAR@Ad=cu|h+UwkNsNoniBWtmU(Bfj@{ z#9bOOfcT=s#@vD^)&3=f@@D@MMtP=xiJ+|NU!o}4{w0R;`~D@4vY>xSqWnUNjAsfy zf4OlQK9kPCKcTbmadZwon$E+A(gk=Qx(I)lF2UQ=Wq2#vfG9_c<(mheouOBqmJ6r*oXrj(CZQ`27q<2jVmncWOi@;&BpX1zhm?Tmd(HChdWL zVpaxkhB-GcVw;&;Gx`t@RMC&Pvx))4tyBymzWX<9U~`@!#FC0(#D`RjAl|ED6!B&i zV~F!qj3ZuPB3_NTnMuU`RZJo7BvA$}4Ugj9&%g)KS$GdRXQrF0dbv* zMZ_mfY>s3Ju}8%+;vy9-#H5N9#LHEzBA%_H?L~d@5Kw2odjA(T{keiUGu{R16}Xqhbhgii%-GpNbL015}J6 zen-U^VvCA##P#=MK$=^WM0{Sw6yhos(}?$&*nHK!*!JcsWfA|aVh-^M74wJ> zs#ri=sA3WEdKF8Ezc8`+DpN*0OGOJYpkf7aw2D>4eN?oql{j2QJL0B$vF**JI}qPe z(TVu9iY~&GGfix5oHBmI$tngAk5Ms*xW9@a#GOJk7)M;JViNJUDy9&xRxyouo{Aa7poxygfMgMWq+$;7U={O- zyQo+|9He3q@x8^^_U3|0h%c&GMtoRB3o)x=1@RUYtBAi;(e|>$3stluo~EJ$alDDc z8w27*JXA#&;%+Ls5$!5^5I_7gw!Jw|FXAgI`Vb#c(T})9#Q@^%Dh3g+RWXD(Tg5P9 zNW}=^@hV0Uk1(-$^^PI#p<*0ysESF%PyU2$Z$3SR__~T|#K%?4Am&ueBHpQD4)Hn_ z^N4d)EFjKMv50triY3IOR4gOzZQ{0#Bg8^~3s(bIK~>n=0B~k@%E~cEn{W zIuP$t(TVsg6ZT53qFZ^&&h*IAYAqtr?Su=c<@O z{E3Qb#5NT(hzF{eMci4%9O70g<`Lgrgz;&vQUS4~ViEBn6-$Wsnz(CYGs}oGRkRQ% zOO%1Cz)|kyDm;s}mBk_24o{{Xu%C9qV`vxbq22HZ+55P!Z9@%xP!M?A^I-5W89IMzg0Bc>4DChpOQ zX~b_!loigvM{)(S@BwrV-rcOs_Khdz5w|sSYsLcNM|WZko3V&kRCw{FCZf55gkqX%)FieAJg zRrDeDsOU#rq+$RusbUcEauq{}XR8=SJW<66;usa9i2JG-L)<~dIO6AbVB4E_yh%h$ z#T4SdR7@kTP%(pew~ATB8&%99UZr9l@f;Nkh*MN7BKlM;As(P&8Sy(RT8J$wRuI>x zF(A#`;40$tD%#}V6^mXl8McG;}GH+6~l=4sTe`LRmCXcH7dpsFH$j%I90_YqF==n;ty0z zBYt1S4B`+Kvxpmhk8N*mW)AUH74wLXnmEi>zgs9EE>*FJm{zfb*rj3_@lq8n#4}W^ zAWl@Vig=`owtq|9Q$;)CFclq$)!VS`%`I{w{#!*C;u9*m5g#6X%*v$%T-JwW=w3p zprjCgtzsJSN)|BV_PTjY8CB>=c(vG465iv{E><-#Di6IBkrQ22XT;!Uc~o)hiz}J zrw{Q(75#`0s~AAcsu)DPMa2-}FHLN|%7hUwR55~hnu<}x@hZj;4^=UaxSNVeM7xS9 z#1C)Awl`NPjrfX+8N^3a%pxvPF^71&ih0CqRV*ORHnDm6Eh2_gEFm7RVj1xW6)nU) zRIDHlRk4crNebKET)OQIiLa|@M|@mG2Vzb|C*qwdx)85Z(TzAqMGxW(6Sr=>%6Jh^ zP|=5Yl!|`Dy;Te#I#diIe)d~zdvie{#5Yw8BR-{K1aX;)QN+7cj3NF?#W-Szib=$< ziYdgCCCdAqG(28*BHsJJqvbmn|8x9#ce%@H5TMS z93cy8>p8p;y@;(Q9?^(C#7}R+lt(tAAMp(ny^R<^EJ~EE4#FEaydl`4!|+;h{|^Kr zh`nZR%})uUi1(`)L%dDJIAUDIB;v&?rVvk8F^xDu#SG$MDrOOPS22gUt%`ZXk8Z?f z9@H400%BIhBH}F)aj3xm;NCC8f2A$>F1li-r>pSwv`v18*6O6~@MW|EK9_dF(`Xlb zGVO-P(;j#lgVgd29TnY(Eh>5t*WZ8vX)ef%_`Hff#8oQ#5${nkfS6J-h}fxO z2=ROs!-%J<7(pCoV)Irlig<{MF~skx7)KneViK{E#I`r*nL>O?#Wdm?6*GwUshCB) zRmB|QH7e#2FH*69I90_WqF==l;txz5-Zs zsET&Pr7AiQ(<(X zLBxNn7(#qP#W3Q7Dn<|&su)GQUd0&VFI0>po~2?EF`!}!akPqQ#C=rEAPzUN`8Gd` zxTzc4-i$fKw^Ym{KCNN_ak+{`#Egn1#9ymeM!Zr*3vs536~xIZRuPX;(I)>G%GzH= zJK|0%IuLCpZr?aUoQUr%z<@NP3-LJ>-H7<_*Y=;%gSc2lFXC@i^dVlYq95@*6$6Mt z6@!RBQZa;hu!>>CT~v%94pK3S_+A&bsI@U5F~k>Dj3Yj*ViGZ{VhZsV71M~nR562i zp^90=(^SkMj#n{{c&Lg6#NAXZBHC3fA%1x6z-=!hzG9-IF(4M=BPv!9m#A1pyj?|` z{9{JzS{3bxvsH8;hE#MS9&hw!OKTKE&5m^dmlQV)JDp zfS6M;h_uS#APNnUpsP$cd3|1{FRCY#10jUh+!2=h$pL9Mm$Sfc0>vB<@sg>%5V!Ow&0J6wI?_G^8YDO30 zixOqf-0&A1Ko9%@?S@4Ql8(W@pyTlQ zbP_(3PQgE+)9`V020oh3!iS36dVGx$$RWNv7qP7o^N1xAf7plx#D`4$Q6m-+?=^8; zBbE?vmM8;QhL_8*i!Jy*x&kjUyQ6s*T}4cqxizCr{@XCtmXM7@y`Uc@ZrYeTe^3(T})7#Q@^nDh3g6G_iSW9YVZH#W3PIDn<~e zs2D}`sTe~%K*c!XcT`Lwwy2mwTz?e?q`97H#OGDaAg)p|i+GQUImDETdBjc=oA;ar z#Pd}wBA%*Z32~f?WyC{Nv=G0mVg+%qidDqQmDu*?D%s?}4P?Efq8)LKiVnp4RCFTV zs-g?=8Wr7$7n#_+5%nNWRnd#+SJ8*~0~P&<-&Zk!I7G!D;)V`vdvoa_#8*`eBR;BP z1aYZ~QN*;0F~lwv;3UQ)}X~ZK{%pmTmVis|jiaEsU71;LXg7S#} zRy9Mc)f}i;xAOJAfBaS6)|AqFkAgMPi*f?9Ic`qaUT^Oh{IKM zB5t}I+uod~3-K)#-H1=C=s{erq8Blvq7U)cD*6$xR55@!Q^g?SWEDe*$C%i>dWRAB zS22RPlZsJ9n~E{ScYc8ZY0fi__?(JK#FZ+h5ErYMM*OXc8N{nq%p#trVh%B=Vjl5F zDi#nAHnDm2E+X!tVhM4Oie<$2=3v{KPqz?XRI!5iu!>d0tctb|B;KN;9r2ecIuI{Z z(TRAPiY~bnEFsQNv5a_viWcHgDpnBpRScEmSTbRa&Z zq7!kMiY~;vRCFW$N<|N1hl*aru!=s!lU4L19<5>kaX%Gj%YUM>^J#BumOIteeLQ)YTP4R_NScrKlVXVW=&CY^_;(gpZL zx(K(6+j?3WD^^1En9XU%GUE4Cv=Fyev4Z&iB?ISKMO>?*ZG*&K743-ktLQ+yO+_bS zTtye+#VWcHPgl`{I6*}(;$aeHNBCg3>}##EqE`w0`Dwt>p7t@2vx+VFEWE*`$+sTN6!wwZH9MHV`2y5vodj8Pcu3Z^D4R! z|E!`L@i!`Z5a+7sMVzIg5AhTg{fIwQF@SiGia|uDiXp^rsTfB5&xHdwGlKYni6=D% zB#L;WL^;M{aE^yl99~Q(;WV8x)6;1F96vE~-ywklQ-KZ*=|dKIy(qU~de|5VYA_<)KI#5+`UA}&zTg?O2Y zZp1TH^dL@B(TnI+(TBK~L|g>mon>E(1Mqfczn|O~lOW=n3(N!|_-*dlF#HM~fuE+M zW_mgX_t0_pUOEZ?flk4{q0{iSbOyeX&cYYbIrwZk5C4=dz(1yo@DJ${d<0#F_oprR z`*a1~fv&<^i`#l8HwMA>iNuxXn?bO{Z*cS+@C#;mztx!7iMU!OZtH1A7vf)3bR+&w zMGxY96}^ZN6@7?5Q_+ujtcn4|ktzlecU3WjxQ&Wo#1GCJxJ41fmsN}+79`@_hnMll ziNjfOThC7#1C>NPmlLPp>p5{6?xZvDWpvg|Pv_uibRIsLF2LjIB0QQd!H3XgcrV(5 zccv@wc61fqEaM;>VylWjr0wuqv;%&LcEV56F8CqZ4gZbyz<(CE^_uEb&rXBDzv=c7SE_fO3hO@K>UPyc46zzi-(0({Z{D7IBe^ImD!jdBn?AEFhk(ViEB~6-$U?R4gOztD=RtgGAZO6?khN zIaT;m4xsH*@qcJL{5tJ`pQD}dqqGZNLA&AmX%GBI+6(_q+}3kiW3TxTr-aSQ_~AL6 zH~^n#CLYq5IEWaOiQ9UbF@*Rd6~l-Js~ADtMa3xMAQfYX@BMt>g5roTs+dH4Sj7}# zR>d^pEh=UZf2m>?@j?}Ih^LvjO=Cdvh~rf(ARek>5pg#aONe$A%ZMMIjcwniu^`RLmhRQ!$Ttmx=|%U#VC`>`<|U7*?^2c(RHX;?XKr5cgBD zinybSwoMW@PanALcEq<;bRa&fq7yN%q6_iQD!LJWqoN0Ku8Lm7St|MvPf^j2_(K%~ zhzF?{M084&D}M+cD#w604BO}kyg|lCdK9+k7`&E_!$mp?uclLQj!wgi=?t6}xAmOa zI5M+{Kakh?7+GB6?NyA?~H3A8~sX z1Be?#1J8mW;yM*Wh)=2*M(j~Bg1AVl6X zej)L*)3HTcHRH_^-&E0#_>_sqH>PwTE;BLEh)%@2B+5DKg8vyZcEkUmJ@8*?ubH0q z!MD(U_6;V7(AMe!-vpGcrQ8y?@XuR?dS}=Sq4zH zD+_-}=is;KJp2+}fS;s`@I!P7{u^C}|4du(?Q{kHHC=_Tp>4ktUryWM3up&Cop!>f z&@T9R+6^B=d*C0?UU*;H2Y-+D!>!`}@2mrekIJoi{}@DEYNFd#KeR%KX%)kWT@qys zBk*5%oJ8R}&4F}OV-7LI(>ZY*zM2y!;Y;Zhd=8y9)6*IFBsvQpOXuLD=sbKdU4Zwb zi|}{o61**4hQF9H=f>tc z5vOrt7u?B--SB0!2R@hfn(1jDd@}8a$I}6LG#!Kwp+oRqbQs>5j=Xcv1)o5t;UCc%_((bnA3*2e-RV61ZMpz&BW~-F z1EKaGd@CZZ3J#1V#CuGX$!k-V5mOT7n780%@^Or~0%z$eypXothUsZLynuGVG1>`V zLc8EF?S@aIJ#c{b!sBQk?4|wifph?N(Ls1eIt1J4FuX}VQ^Vy8uFz3n(65h zyc1o9htL-MId^3RexI(wZ_u{ii(jDa@Z+=tUP(LQrL+san|8yu(H{5)+6&L8eefLG z51&T|;4|nTJcSOy6X-BJmX5$9=_tH69fNnFuEO|#j3w)DON$rNb~sHt;2UWt9H(9I6|@_U&>naO?S+H151vT-VILiU z52J&yn-0Od(qY&^N8mwp6t33BA6`$#;WC|spP^H5flkBA=nR~tv+zPX2dC&fynrsi zF}es}LYLq$U4~DiEjU0|;Bj;n_R_XH#0S!L*hM?w9cd?Qr(N(S`AM+sJ2zaRJ@7i( z3zujg{21+r^K<}SLI>dt9fEJA!*G(0!1L%R9HnFMEIJN{=p;OuPQiXU4UeHSu!qjV zBj_CLr1S7lx&YhgBD_IK1mpkpuDA@Zr7gHfSK!rj70%JNKZqC8b~sHt;2UWt z9H(9I6|@_U&>naO?S+H151vT-VILiU52J&yn-0Od(qY&^N8mwp6t13Vwl@Z^r{i#$ zPQuU7DY!tV;bn9N&eBaF{N`r_mN1peyh=x(a(~+nwSA zX*=wq9q^8{6SmVXc$2)<$MFwWXb-%O_QECF2R}yp;XECHm(W2tLxUYRe|S9|hs$&leuhrL1v(8cqcd=p&cX}n9Gs%_@B+F3$LJz_30;E2 zbQwO4w%`C=fydER*h||Mi4Uahu#0xUJJL?rPP^bulX(2Y71{%@qrGs6_Q8+QemGAD z;3aer&d?$FRyqtP=?FZJj>1to2G647aEMOAlj#)fr_=BlIs<#?EIfkF!A?3452XvR zjV{6)Ci3`)ExHV^r7gHfSK!rj70%JNKZ+OAb~sHt;2UWt9H(9I6|@_U&>naO?S+H1 z51vT-VILiU52J&yn-0Od(qY&^N8mwp6t2o=pmGh2!RzTbT&9!oGjs|r&}n!Xoq@A- z7G6l_;1r#Q7tjSbMi=2r=n@>J%kXKm1qbK~JdUoyUfOn-_(0kYyJ!czBkhFkvzSZ(M5Q}1RnpeMVH~Vv;`OG3cQ-G!a3TO5ih3gaGG|& zH_}cxPP^bMXg3@YxAlCt@rKKTc)<99(Tn&U6ZdRP=|gN$(T}+PSUkNsWdQMc6@!SY zR16{BBT-I`F#MF?I08RRN8tzQn3`$B z7tvn$X4(gL(|&j^9e`)kL3kz|f~V49_(VDax6@I06di*PqT}!$bQ0c)PQgRyH2gXD zZw7v!&cbidIrs%S4?j*9;FWX{UP_nXyXi7~8*RZi&=q(-U4`e+wm*r_6Swt*8V9x= z(LHWpbRd3PMJM7HKN>it3$af{H{vrAWv6@KYP+!)UQherGVM3h(*d|Z2jOLO2+q=B zcp)8uQ*;zwK*!)19fvQWlW>?$!Kcw_I6!CMadZ~;(mD7*IuE<(0=y$#gza<*-Xy~) z<4}exv<0uDD{zUf!jI9mKa2CU9bQ5^;0*1AZ>3#ul6J%MXb&8vz3?pB2Zv}sJedx_ zemV$`p+m5T4#Okp2<)Vz@K8Di+vqsFfyYAn!vv7{i!HelUoTdx# zjdT%?(RvC(^dXVjpdX52GEhn|8vx(k|FRyWv5!2d@5*$3MKD z_Q7S^4?jZ(-~t_lm(d|OONZfwbOcV(QFs9zgJX0YzJyM~VLAn$MyKHboq@;ES=dYG z-~;JA?4k?sj&u>W(|_!bQm5%M_?x%g@@8H*ha_U4L&mtN!X%O@LDWmG19S!+M`vL#or4dg^RSC9z&p}K*iM(=O-J+ihby!NucIq)iLSzr(YC*c z^RyjaLOb9L?SyZoU2u|i!}Dkl9HqVREZPT$Xg@re4#0jo2#=vdu!j!ABj^b1q@(aq zItJV5IJ{vjkAK*rQ}9|k4HxMQyqeC!IXVX~rt@%`F2Fa^ML15E;4A1d9HA|E23>)J zbQPXR+p=OGZHEt|9k82r!n@Kg*g?DDL9_?1j^XhSucv)*nfAla&;htW2jOLO2+q=B zcp)8uQ*;zwK*!)19fvQWlW>?$!Kcw_I6!CMadZ~;(mD7*IuE<(0=y$#gza<*-ZYxW zKU|?LcpY7VOLP@}jJDk;&eL{y3GIM0v=hFScEL&74bP)JaFq7KvuGb2qW$n>Isp6W zAUuW+!5%sckDw#4la9he=@@LIKebxUJ`OTm1)rDa1Ry17jNTIup-mOqoHP zBT;TCv+!-4Z4SPH&cpNRf|;H!!spQ?_zb!XPoXV%0$qW}(p7jQZM$E*H*JS^p&jrr z+6lMNF8HHSW}V$|AMJr(roHe}v=4q*+}3kIW5fN3u_Fh@0OGkO{-7~s5b-A}h7j9S z3?m+>Vgzw#6{Cn-Nt9ua!TWGkDE9fYEKOKYrNXOyd(Mk9^It5=%r{PQK z415lqg-@q*@JVzYK9(-PN6|(2V7dhFNtfa8&=$NcU4g$i!W=VI_ygLuMEoXghhL-} z@DsEXUL|hpncg_CU5Fir4UBHYu!5!S8 z4#T_A5qLNqg$L6yc;n$_{&DzSItjlQ$Whwq^s@Ex=hzKM3h z3EB;J&>r|g+6$jW``}Y)KRk&Jz-@F8KAaB0`_W-|H#!0jr=##-ItFh%l*d2(E}ev5 zqf_v+bQ*qy&cMs*EPNlGgBQ_x_-48Qchg09E?t6W(`9%jZNXFN3Vb46h1+S{-^8P6 zJA4rBfcK!C@J_S~9zwg}&qtbV_rUMdUib~#2fsl3;m7F!ypj&WOX(1NHyws=qa*MQ zbQGRX$KW}196pau!e`JacnY0{C(s#qES-f%(m8l;1lU8+)mpb6py0q@IkZ#-h+0+JJBw92Wnkf}f?+@FR2vUQTD>`{*3Jh|a?|(*?MjF2Zx^5-RKBBoQ}eS=@`6mKOX<^yL1wMjZVSO(rNe+Is-4Kv+#X%4qim( z;hX6K+)WqZxpWDhO_$-Bv;|M4EAWZpwjTN1uJ-%bRm7qD4ve zx{40O$5nJ9=2Ubc-l?J+@j8h(ec=1u#$Nc3v=9Cr?KjiY0r+Y<2wzHv;B)9Od^#P0 zPoksnv2+YRijKnv(@A(wIt71+PQ%;M8TbnsJz4)O`~jVV-=y>Ki*x~gf-b_V=o0(@ zU55WeTk!Ac3j8a&3jdO}tq}i$w!`Ps4){#k3IBw4!N<{V_-NV#A4+@SeP|#2UD^+C zPY2+w=pg(t_hSftn-0UT&=L4)Its6$V{i{0hwr76@E_q&?aa+%f#(`Z#95P~HEFo^#YhWxRzN(^y_^65%#HAADz^KA6>}_oOhxl>Y z4zHvg@KV|d-%Y#V+h{j@1MPw5(_VNE?Ss#w{qPxd0G>hz;R$pI9!rPek#q#!n~uV} z&@p%z9fw=!B>a(#p=@so?xWN2%X9{Qiq66h(>eG-IuGAN7vMYSB775Ff)jKZ?w~FB zLb?K7jZL7qSXgl0SJK)1Zt)ore#i3-BIv5#EU|!9(aW{Q2%Y{^9rO3j79Lg^L#6O1w=;%K;MN76J<4;R0zC z5=|6{6Ol)gX-H+oRw5I}QvDzf)PtzvVpVw1lv3P6Z{5OxXLz~8%OyONM~Nv+qZVdx zhs=#AP>xDw5JNh+6Cm^Z?X{02%L&Zq-p~Df?jPtAo%3D$z1LoQpMBOja)jOF9^pFj z7GV#0ldz8*6!w!>3a=(F5^f;R5e}1Q2}jA(g}cb73CGCC3HOp6!YT5fz9{xj&Iu2Y z|5bR9{2SpR@-Kyl$-fXzlOGZuA^%i3L%u_Jl$;RGlDma1@;8O^u&PLF}LWZ^AzE>%xBWKMAiUzaZQ|envP< z{<(0J{I|kgkqN=gDsgkCA^TZ2S`ZkHXdD?ZPhdxk^REP^WX)-)#N&17x_Hl8nP*Dl1~z@C07f($sc}R^{bAY7xs|f6!wuvh5h80 zgjbW(!VTodgu~=P;VAiT;VyDYI7Z$o+)M5fPLW%L`^gQ$1LPILgJhrZ5cvw>VX|8| zO`aw^Laq_ckdGA}B^$z7@&OrNi);z!$$N#z$QfZ{H+YwDHF;RrMSf7YhCCo_lD{up zOYRkRlfNZgM~(`6$W6jN@@io}d9mS%IN{$I<$sNKLIV_wfUn@LD z_6r*$;040fQLpVx4QMijdML0%2 zD0=QCzbl*~zoGR{epPsY{G#w6`8nYs@}t7TLq1j5Bp)MOOFndx8h1DOec?Lt+rl35Yr;PA z9$`Our|@d>lfn(;2ZY1qp9n|Ew+nZXZxN1>Zxrq&M}$-4M&W+)D&Yb0)xv}1xxz!_ z*}}u*8NzAu>B1vqr*MW`DLhL4;6$;1@;ky7d7p5e{Ic*EdAG3fB6yo{HTe-?7x^CH z8uFdOCOIiwOTJ0iO>P&iBX1D)kk<(N$V-L&#U_Y0@VcL|S>ZxhatKBgk$6zg?q^n;S{-1xSzaAcz}Gh@F01v z@DO>n@GyCXaGHF&@Cex{oFP{VkCHz)PVArjj<7}EC!8n0EIdZuEo|%oZxgO2KO*cR z-y>W@zEjvFCxvUtHwnAR?ZS2B4Zkna>W$w}c_@=d~Sa=UOHd4sTryhhkZUMlP-&lg@zzErq@e6Dbqe1>q8e4=m{ zd5Un1eDEl-fAYJ+De@b_{p44L2gol950ak~9wI*~JWRe{I8DAwc!YeLaE2Tg9wl!U z&XP9@TjYRnp1fRmjJ#0T_$~Ny;cD^)!Y=aJ!ZqYmg-!A?!nNc>)nfnT_l4`oZwq_K zuL=9edxZVuox-chPYO4X9}o_ce1_`DNiT@@`?{W$-rPYVsq( zF7iFXHRL;mO>$DWmVA@2o7^s3N8TXpA+Hhkk(Ubl$@7I*lP?u+AfGE7CZ8c3C7&qV zMV=xYBOjbB_D_CSI7NO#xS#y0@BsNm;X(3q!b9Xog@?)a3#Z9<36GF(6V8z1!lUHP z!ddc0VT&9P&Xbo5kC7J&8?S&b7p^8>AnYQaEnGuBRoEmSBV0>9R3-LLeqXqb{I;-% z{F<Eyh?b0e6{c( zd9LsfdA9H{d4_PBe7f)m*(sbMR|=1kKbR!;Pku+(BJU&jJ(KM}bjUmFw+j;gj8_Em zjQGzA!-zlg3c?NN9qEe>4LY1XD9^}Ui3nd(<**!;s?-sr@+Eu5)Tz#T@i>V1Lvs}4 z&+ue8d+;;{70uxrY(s|i`)P*poC86Lo_i5*4MO(y^%(zzEF1e+UfAat@g@71J9&KK zH@@w!S285glST+C<0)QO;q3Xc6g*Q3R&O38Ri%lZ0i>}WI_1zIRh2cLmDo8eojvdo zvhNmCt&%q9!MO%BtdI^(zmn;a&#-&gAES23V|Ow6I2&nAr(Q&pI~w%h2Xom>VZdhbjRIS*{j6Z+$+lkKIqR@Je+(7ne(@0$3NT6ze~U2GL|yxm$Eo)%lSlcI zE603a`3>5dLb$UB_ir2o3cj0nr8XGG+MU)~)RbE3OT6Vvbmw<_Ef(xccIOjg3GaS@ zh43+7(mS?x=lb)VXKZD>QIZ}y`5&f_?>ALhiOxLAMVXy>Yv)narPuPscbTYQT>0_+ z7zw899<#1KTBSoqZysq~NQ=+-_8hMK#!oEY@9XnQ9cWY1=StM?*BVGxC+hbm>-WaD zzn2(^=Z-=fM-uhBoVToHcl)YdRK2br@im^*>vQZl^!sG@Uh8W#$j5lXqK>O+h!3-5K~_2yCqCOBQu!QN9{16CHz>TES97I;k(Q(9EqYrqydETF_NvjqzE!u6owt(iB^Ha%p)=HAv5y ziiIe37KWuB-!6Rb#TSno4;|+EIAOinN@ez4{E?~}%Iy%j9*sn^#;hjF|D*9bMUU5@ z^rARke|+w%z1D$a>Gu_qM! zT5lzb`m~2{pYLK( z``~(*3=}e6DYC>VYd-;rk30Z74?6&NmxQ9n&^+|%t4aJS{zpfm{*}bajC1Quq){f6 z^u7|eDiYq8oLe~+i(!+n_j7Jl8#E{Yjo_Vuk%LaioX5EAid%Sm8?T4? z{U^-tKaw|?aom%7w_}F#k;2AYKLbTk{YAFH+PgRp}f6nL{&*D zuCU&!TE|VI(=lvFs4Bn}Gcm6Q>#@E+8r$uC6Q!c|?lEpz<&xH>Lbzidw~x3=f?=do z(MdWn<_5B>3l?`5`DFc@w4#J>Do-%x%KA4GDvTL9udUnzs!2$PImIU3Jb*%Y$MmWD zvyRE1U?1`Q9(zAjyguJ2?Sn~hQB(_KHG81Gvf&=H`X-@R*%~2HAu^*f$W}>qEWC?h z8Bx>v^JI83y!+$b`*G)b0c+`-bH2I;N&+l9d5k&C5R2XiFah|h?8W^dL?n6lTAw+0 z9u!rdPt2=@-Fu*f^7#VeC~gKjsy?y*P_OI(oLjjo*7kTHZk>Q; zYkS1Il4|g+8?h=Vn^Kq6nb-s73O0p?@!t0^*Xu%k*1`W!8iZ;vi@&N$Rk|+Sh^n3x zOl7xqza%T#1vhU}nZExrF*`!I(%Rj^nKk5-PYy6|VmFkWj8q zaQzzHM7(UK>iG?ISDPj^X3<>X>2)Gmhv<=nq!(D&T5Hy>*z6m`< zqvG9pOxRV@BeYT7&5goXuzjx7Q{^j+?VBUldu(l$^?9vilv5?^OZsb2_0w3#6W&+E z%+!3z=l++{i>d)PGw7x^W9;IVW8Bb8-s~M|d=i}p)Tpd}PYsc3ce3+<<&&bQevXp8 z67muv?eSD28Mli6jx|;XVZ^b4!P5#oP$l=%zMJG!%;oG6$OZ510vZmmf9rsXM&qI~NDcD?MNAej-*vAxVEEB)BUg9lWqNff)Iqr9c zZ$^g14qsni7(uiCQ}XU!1b;!|88?C!Cw4DR_KROKht!h^p- zgYX64?Yo+%-ad~=SBW%Fq(vfKDU!<2+czIlvWMy6K*e!)58Gq>G5$Whn5;}0V)72@ z%MRG(4%p=$A3Ux})hz2)+}zE3%7LygNc>j!$EU3``MBhJzQ%X+^J1^a+EasatraRC zRaVTWRhRfR61kY@4kQ9svmwc-rPe z`4zS--DAm9FJF1Uxs|uc@$LhsIeT`MR0rROx)t4^YQSog|M+7r?y7~!>dUbn_FTxg zzHZJ>1V>%g6@Nw=3cMeM#ed6|!IPny9Pj%JIpC#w;7_X1OzykvliZQQ*yp*xSQW-y zIQ6=RVD7C8H?2jz6mD8&COgjf?k8mq;)xuw5@LlU$FuS{swTsfqdza}9;W<5r+6B^Yhvl^BI%5RzyFwmsN-9&&D_e+OHdg!jYT z7l5{*F$0^N%{_|LyS*Rch^^0uM_wO2v(mlrgJT^RpKrdm{#|PsG@#aYlw^4+#4QKf zk@bD$`R~@h+grcS*;A*Q$n_taOm;WXok25E%!qY@(LIY8ZtF-$M)EJhmiZb z-hI;?&L`4nR{8bbquRnt=;MoEX~T{Eo>M_04$` zSFUFnf=kIakwo8Ry=h$rLDtRf*#2S`>*Yvw0K4S)^XMb5t~b@-K4%nLV{{0;Szy-# zuZ->y?0D1~)UosWj#2B;e{UX@;PDu>G$6rVON~;1*v?8Cw zn>(y$H&#g$`w@l?5?@bDc%MeVeg;4zbo@`o{io8-|Dc|KsbJcP^#r7zJEWd#ASJwy zp`NV>z#{`pDm*Z-uOHFEh{?tg^IS$v_Q$7SMS-o4+aK?ZTQ%5!Ik)~bI-2vc6@7Dp z+<>4lqV3b9OZnJMQ&A;u_v*Dycq^T#&syiBpK8s+o|D;Yk=^-3=No9|zhb|JfzQF3 z81p%a$s%T_iW$j4bBy^=#_b^$x+}L`wqRr0L}2A!cnWG!n~?1@NGDc4J?@?~t?o&O zom>6fB2QSg(IG(3WT8|7XS!7tH9mw%E2(d3qENWfJlCDy* zcPrhfTXL(lthk?zFYYvzq2Df!x9Oyl<$YoJ5FWT zes`9)GWD#T%dRXe_8#?1D!AaAz-rk&%H+yQN;jr2aShYEn;0@leK+sV0y#wX7I^%c zKbE{Sk&j!aBsyPF%K*(w&oFrEu!_LzGs3W&)Vk+Yu032j@eJsYQa^ns%74XsnflRW z_W|56RN~In`WNP)y10UrB|-Eyi5}+Mk9AGOEz}yMqa;hvsPzCIc6>@5*GnNoN2p_! zL=Vcm*v^H}-iu&Y2+peY2TCQ`>(9N3l>_6}pL^B%bGLKrC~GtuMp9i! z*Z|J;qkijm*v={qEj(P4Sh02Q!~(^hP|#`?8ka)-ER;@~2|Z);thE!1QSI`v2#*xu zVG$_7$o&`x>xxfr+?0u>78+N_lK+5$&`|d$H!h7-hf`WDi?~OMFj)i^CL>q2{@%PR zi%{$j4ozQnlwlm2&Rx)<>0eXF)#~_lb-Y#`zoCu|>bOoFo78c=I)>HpI(2MO$5wTW zs$-ivcBtd^>e!`@H>l&ca9rH?g=esnn791U^oMXxh0!!4_Xo5+%)8CpUQ#UyFDD)f zdq^Xs6{KfL%#wSI)J^((Qi84ACP`Vx|Q@W>D#1jBpPb?1yU>NRTAH;2y-xU zUnjj!qQ!(OFoL^XYL+hJcLg%-C^=QMyXJ*j6%v{vk-Vq9-?Db}2TPUc?4VvdS zM%qj!K2KNDZU)hgw&rLQZ9{WPT6%q`t-Tq|LH#PAK z)kIp2_Re(%3P+QJjVb_bHbNa{E!%Fk%{tF)yAa>mP($0SbJ{L6XMPouf!0MjO|urg zpODJ@7V_wHU6QaC=LzY)QAl;eb(^Bbb!fTSyxzPa)D|&XnwnLs&F0poP!}5BEREOl z`bgVGqeb-$!>hUniCMI$)3r!KhAIlKUvIR9HZ)@>+l;2>woqe-ff@ulTQ{~wHn$qn z8;vz9mR{{$vUbgM_w1(2cvwpVIcs|RSw|c5m)6(MTe2XqWL~|uATZFoWQDPO#j-_9 z78;A^UFltHELs9_<@^fBcm4`}3fKvC=%OV8I^4Tt!Qw?r zyvA~`f8MfrE0!)Z5Tfd2U8{VHR(O~D=gs#TdJ-66*a~{q7}>N5;}>WRZVCljnp;DK z5XOXBJM6%w5G)1JZ6R1kGc3HVQ>-8w#GDF2OYKGh53iM@jWs3xTx%|kD#M=Mbe`!~ z}0%RsG4s|s*23yQfTN~^(*kP`jj^S@wd$e&rvl^I{N_|FfU1L*d{f2P! zbsJkYwML@fY-{i6ynb`nmKy@@Sr^W}=;BK*t^0~`v~i_cbBy_>9+(9-c+JMv7UM6> z#>N(7p;`(IpPUw%YDBJ*)79uQhGwyx>S5LxBV!4Q-PCR@m6M+*;~I5brjEME5(wi#j@CfL1B!{4jEupIW8NA!!E9vp)u0g z+Hu&lOCn}_XJgoGQFemKx;czh8MSwWHbvE9jox5xgx2HR+Q^kxHFg@-?^nBh>V zzoE}zeQwj|Z|U=Q^f{%^Kho!W_4#3a9@gg_`uvhU|Fb@4_4$wbd_bQ+*5~S4Y0nAz zJXN31(Pz6Ca5AXRzVjqK^}-L_GwSn)BZR+O7Eb34KVv$aI^+kQ5%u}FESyepekNh} zMCID`+Tq9Oa9i;wsnjU1EWI6mT3I;VO#GNf2%k|_KA+q0bADNRzJbZlB|6;hmmNN* ztQva4R_lD!Kfk=6;Ad@FdAxxv z{WR)$jwipo8R2JrNqLkp^;EfJem0imqmJ!-t!4Sx7JCesuS3T(jBT;o*>#wFc3+t9 z=8}A@%g)#HDfzxvl8=4hm!BV$<%5IJ;FopsGhC97;dZ`lpOPxrBp)7}6!M*0majA~ zk{Oql#N%<1Vd}xP!#Z<;o|5tqJi*Sc(($YYeiGwCCc*!N%Gh!B=C#a7jWwh0(oSQS9g$`h3LYq3?QPE+2DXD@84{x|}-zd0_jDUAMv8aq2e0qqj~t4+b?R^!`_ z7ULF2tMO7r)Oev1Zs|WxYK%Z@!Oo7zCa9*>_*GTV7_HiXkudI_jFvS=1IFW%*SFBa z*BUV5Q|M%)!#N;NdyL1bBhf%daGmi~HSZECjSOyxD%zRf5$X!y0ZV9eu+12oY*fLu zX>4~yjprRrp%!?(jYlgwIIhDLjgeLisIjA>(%_%tt?V>@=YZM+#e zZ#&vHgpA#g*0)7kJB%^MI+&pG5&p)(&{R}Cgx3ozRM71@ML$Z+ei2bwJUEu9hjr95 zh#D}N>rBR}^Z!I{6Qxi#2g{IpWM$oEx7jRz`~xB0nB^lt|1z;nV1_%Ds8D(R#*b}`~hY{8dt z7&;fR(Aj7uttMdLk6Ba%HwEa!HS(41p@4F#wi_Rz-l6l5HfqEt1*6fHEyjISP##tF z!%0eik4>Wf_Ds@!|NBXzxJM?Ts+nxa`N%F|znr8r_bWtY&qq}3f$F7288)$&0DMRq*D*bfQ`1KT|T7itQl{gIjr2{iKvWXK5k0p&e zsV2PBRH4S;fys@L7Gnrusb(b3HsdZ`JDb~$++_H(;Y5xG8$-swPwv5^`);v?({|;T5!m3!p(jeQ%axn3{FvcF&>^W$;kFiLelJQ@C{T1 zBCQy-r>C?VBZx`=4Pyqr$7Aev6>sdD(qzxHhpP>k(ubu5w;MmGme$=3g%=+trK)LM zgViYW4wjbb=W%F&$Lzi8cps0kK^_Ml;Bn|Jq&qe?B~y`hxc#22W5^LxUr!3B2EX4E zbGY3ezuV(ZIdJf&9DY9?*Pe`{!5peEV-9g+ryXfWtTO8uz&YhePeL|Nsv;V5M5C#S zR7K2@svK~*GZh(!JL(=n*&dG@9~1d1{0%WxYkEoy!2=FYL)7g~JIo=6Ie@}aj;sTr zS(NNX8SbHvDwx%st}smo_?1N2ovrX^9NCI&g(p*i7*^K6jzlw+r~*N%agK~5T{%#d zsxYGlK7(+mo&;U+Z&)|s{NUMgj!t$MwG2Pjq2kwKa6X5z&cI1U|H*Y)HsM5~+^yxT zmV34A!rI9AA85Hj%lBw`K+C_dWjLalewUX0a5PiKgjV&Zwfu&bJ#d&Y{(zQ;v^)t; zFSa)d2Q%YO(sEYI)9rXT&KQ4*mebG!<%L@IU~#6rT+0nw4r`fe+;bZJRJ|mBxSDhl+V&~%oKUHmOW>R z%s*YE#!t)3wCtKD@$0ml)^e*Ie~!f8pyimBQ(87=Nc??Tj%t}NNvif~d5@O!xDK$r zuWQ+b)tvG{JH3{Vf#Xv37Yi@rYqadv@;O?@>a61Vr>Io_v^-zSF}K9?PgpVDjdhsi z1+*O1azx8RTK+37XSMv-T6Vz^$^1XkvPaAJYdNar$F-c&az@Mk*^>W{S{}MgG@~Km_DWDIa|eOf+E%dROBKTFF)T3(=KceTXx&l9Tt zXnC`iQ(FFxmh)Qvp_cteN&W}z_@hNmYk2_cJ=^!sT8No5EotD#DepAbS{CNztL1f+QAhX^NzXe8r^AJ#*e9QJ@+CIE9*>z?c58iOnyUD;9=~N; zZqWJ-YT3~GY`5hvOZmN89ynR*|Dl#+I{xqM^wTB%Q(ET#ZNUET)^ZjPSSkOjmK*eV zzh}p5`#xmL+MdxYX}`A5S}n)4eb#9?dy$ksPs=GSU#;c*B@(|{%dQhdZqo7)R0=er zT8`l%6y+^iZg7g+tL3bg`?YN9{P$@&eY~W9+|IA-OKW)u537L29xc1Iyw6Ur^XIhe z$90eC-_+!xz%MDt7P|N(kDcIg^S{~5yi*`H=oAIw{*`?$6Q^p!I zbfMVe0Uhtw=?y%`V}H_mz5bk*{d)iQc`Xm<{o6TO_FOFWU7}@E+t**%@!EdAuI02& z-vSxcv8n2FLz&!LCjY2ReyB|53-P7py-+6eFJF|#|L-#StupzYGWoqSd8|yvR(@Rh zxKSD>yUOHK%H%JW$Brj_(urK8f!z zzQ4ei>(VxSpT_qYe4oYlIegRjZpU{AzB}>Vh3_x%eI8$YJpX{h|EoGoBXAghRKR|< zI8bt*+-?+u<+ipc7v4@QO~e;6i+Kun%0+)xiMt?B?zw_*YMkqhE^qY$Xv0^$W2ABJAi(?MT_0_D31w3K+%;F)B+a-1pFPBq1J zwJC_w4Wt}9MN#}cBEvmY5(}v`vXkyMNk^wrNkWPxDU}-!-ch(11E{*F|1xo$Uq+== zPM`vbF-RuH$P2W^Xk`Q?(K7z5QKc?8oKz0+5=o4B$An8%qH-x&cSZsVN-2orqKmqa z_!4CxCw-v-)ll)+k&8Y%@dRs=QeNSJa)2pkRTSf?-h9RAi|@7Ia?Hu1VHHp<(QPPlNh3-Ebt_6j^h(Lc7cvW^9i=IhCtB;po=K9H zuOkDir3qC1x~-B$CItIu7s3XNPXbMi3sBm?3*f=d7F4Yy0=@EzyJMCOp{n%Y85osD{w zF>`sT(*|375F^3%lEJZO9$f%_R3Q zjo}cUe(Ux`TE|Cjz_U{Ivl~p2@iB$MWc`KF;b$SCKr|wA2z{Ecqtw%%*Ccy?VCcuX zTm +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2014/02/13 21:37:45 by gudepard #+# #+# # +# Updated: 2014/02/15 01:27:59 by gudepard ### ########.fr # +# # +# **************************************************************************** # + +.name "Kappa" +.comment "AKA Kappa Sandwich." + + # st r2, 15 + # st r3, -1 + # live %1 | r1 | + # 0370 0200 0f03 7003 ffff 01xx xxxx xx + # 57672192 251883523 4294902016 xx + + # p1 -> r2 : 57672192 + # -> r3 : 19 st r3 -> 1303 7003 -> 318992387 + + # p2 -> r2 : 251883523 + # -> r3 : 23 st r3 -> 1703 7003 -> 386101251 + + # p3 -> r2 : 4294902016 + # -> r3 : 26 st r3 -> 1A03 7003 -> 436432899 + + # p4 -> r2 : r1 + # -> r3 : 15 st r3 -> 0f03 7003 -> 251883523 + + #### REVERSE + # st r2, -18 + # st r3, -1 + # live %1 -7 -3 + # zjmp %-15 | r1 | + # 0370 02ff ee03 7003 ffff 01xx xxxx xx 09ffdf[03] + # 57672447 3993202691 4294902016 xx 167763715 + + # p1 -> r2 : 57672447 + # -> r3 : -14 st r3 -> f203 7003 -> 4060311555 + + # p2 -> r2 : 3993202691 + # -> r3 : -10 st r3 -> f603 7003 -> 4127420419 + + # p3 -> r2 : 4294902016 + # -> r3 : -7 st r3 -> f903 7003 -> 4177752067 + + # p4 -> r2 : r1 + # -> r3 : -3 st r3 -> fd03 7003 -> 4244860931 + + # p5 -> r2 : 167763715 + # -> r3 : -18 st r3 -> ee03 7003 -> 3993202691 + + # 0000 0370 02ff ee03 7003 ffff 0100 0000 0109 ffdf + # 880 50327043 1879310335 16777216 17432543 + + sti r1, %:alive, %1 + ld %75, r13 + aff r13 + fork %:init_forward + live %1337 + +init_backward: + ld %880, r5 # 7 + ld %50327043, r6 # 7 + ld %1879310335, r7 # 7 + ld %16777216, r8 # 7 + ld %17432543, r9 # 7 + st r5, -80 # 5 + st r6, -81 # 5 + st r7, -82 # 5 + st r8, -83 # 5 + st r9, -84 # 5 + fork %:r_p5 # 3 + live %42 # 5 + fork %:r_p4 # 3 + live %42 # 5 + fork %:r_p3 # 3 + live %42 # 5 + fork %:r_p2 # 3 + live %42 # 5 + fork %:r_p1 # 3 + ld %0, r2 # 7 carry = 1 + zjmp %:init_forward # 3 + +r_p1: + ld %57672447, r2 # 7 + ld %4060311555, r3 # 7 + ld %0, r4 # 7 +r_p1_2: + live %42 # 5 + fork %:r_p1_2 # 3 + zjmp %-177 # 3 + +r_p2: + live %42 # 5 + ld %3993202691, r2 # 7 + ld %4127420419, r3 # 7 + or r12, r12, r12 # 5 + ld %0, r4 # 7 + fork %:alive # 3 +r_p2_2: + live %42 # 5 + fork %:r_p2_2 # 3 + zjmp %-222 # 3 + +r_p3: + live %42 # 5 + ld %4294902016, r2 # 7 + ld %4177752067, r3 # 7 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + ld %0, r4 # 7 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 +r_p3_2: + live %42 # 5 + fork %:r_p3_2 # 3 + zjmp %-280 # 3 + +r_p4: + live %42 # 5 + st r1, r2 # 7 + ld %4244860931, r3 # 7 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + ld %0, r4 # 7 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 +r_p4_2: + live %42 # 5 + fork %:r_p4_2 # 3 + zjmp %-348 # 3 + +r_p5: + live %42 # 5 + ld %167763715, r2 # 7 + ld %3993202691, r3 # 7 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + or r12, r12, r12 # 5 + ld %0, r4 # 7 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 + live %42 # 5 + fork %:alive # 3 +r_p5_2: + live %42 # 5 + fork %:r_p5_2 # 3 + zjmp %-432 # 3 + +init_forward: + live %42 + fork %:p4 + live %42 + fork %:p3 + live %42 + fork %:p2 + live %42 + fork %:p1 + ld %0, r2 # carry = 1 + +alive: + live %42 + zjmp %:alive + +p1: + ld %57672192, r2 + ld %318992387, r3 + ld %0, r4 # carry = 1 +p1_2: + live %42 + fork %:p1_2 + zjmp %:move_forward + +p2: + live %42 + ld %251883523, r2 + ld %386101251, r3 + or r12, r12, r12 + ld %0, r4 # carry = 1 + fork %:alive +p2_2: + live %42 + fork %:p2_2 + zjmp %:move_forward + +p3: + live %42 + ld %4294902016, r2 + ld %436432899, r3 + or r12, r12, r12 + or r12, r12, r12 + ld %0, r4 # carry = 1 + fork %:alive + live %42 + fork %:alive +p3_2: + live %42 + fork %:p3_2 + zjmp %:move_forward + +p4: + live %42 + st r1, r2 + ld %251883523, r3 + or r12, r12, r12 + or r12, r12, r12 + or r12, r12, r12 + ld %0, r4 # carry = 1 + fork %:alive + live %42 + fork %:alive + live %42 + fork %:alive +p4_2: + live %42 + fork %:p4_2 + zjmp %:move_forward + +move_forward: + st r2, 15 + st r3, -1 + live %1337 diff --git a/test_tool/champion/Kittystrophic.s b/test_tool/champion/Kittystrophic.s new file mode 100644 index 0000000..bba2b69 --- /dev/null +++ b/test_tool/champion/Kittystrophic.s @@ -0,0 +1,104 @@ +.name "Kittystrophic" +.comment "Jan-ken-pon (じゃんけんぽん) +Ce qui reste éternellement incompréhensible dans la nature, c’est qu’on puisse la comprendre. +Celui qui ne peut plus éprouver ni étonnement ni surprise, est pour ainsi dire mort : ses yeux sont éteints. – Albert Einstein +Si vous voulez trouver les secrets de l'univers pensez en termes de fréquences, d'énergies et de vibrations. - Nikola Tesla +Pas la pour etre ici. - Silicon Val[list] +Dieu est la plus belle invention. +Tapis dans l'ombre je veille. - Minou" + +magic_poney: + fork %:g00dbye_kitty + live %252645135 + fork %:poorkitty + ld %252645135, r2 + ld %511, r15 + st r2, r5 + st r2, r3 + st r2, r6 + st r2, r4 + st r2, r7 + st r15, r14 + st r2, r1 + st r15, r8 + ld %190056971, r9 + ld %190057744, r10 + ld %507, r11 + ld %139725068, r13 + ld %505, r16 + ld %0, r12 + zjmp %:kittyrecuperable +poorkitty: + ld %190055695, r2 + ld %5, r15 + ld %190055183, r5 + ld %190055951, r3 + ld %190055439, r6 + ld %190056206, r4 + ld %160370433, r7 + ld %10, r14 + ld %1409421068, r1 + ld %14, r8 + ld %201916918, r9 + ld %201916916, r10 + ld %511, r11 + ld %151783691, r13 + ld %507, r16 + st r1, r1 + st r1, r1 + st r1, r1 + st r1, r1 + st r1, r1 + xor r12, r12, r12 + zjmp %:kittyrritable +g00dbye_kitty: + live %252645135 + fork %:kittysaurus_rex + ld %34540555, r2 + ld %2, r15 + ld %84872203, r5 + ld %51317771, r3 + ld %101649419, r6 + ld %68094987, r4 + ld %190054664, r7 + ld %5, r14 + ld %201916918, r9 + ld %201916916, r10 + ld %511, r11 + ld %151737346, r13 + ld %509, r16 + ld 23, r1 + ld %11, r8 + xor r12, r12, r12 + zjmp %:kittyrritable + live %42 + sti r15, r1, r1 +kittysaurus_rex: + st r1, -9 + st r2, -4 + ld %1409617676, r2 + ld %6, r15 + ld %1409486604, r5 + ld %1409683212, r3 + ld %1409552140, r6 + ld %1409748492, r4 + ld %1409353740, r7 + st r15, r14 + ld %33554431, r1 + ld %8, r8 + ld %190056971, r9 + ld %190057744, r10 + ld %507, r11 + ld %1409421068, r13 + ld %511, r16 + st r1, r1 + st r1, r1 + st r1, r1 + ld %0, r12 + zjmp %:kittyrecuperable +kittyrritable: + st r9, 24 + zjmp %15 +kittyrecuperable: + st r9, 12 + zjmp %7 diff --git a/test_tool/champion/Machine-gun.s b/test_tool/champion/Machine-gun.s new file mode 100644 index 0000000..c9e6e43 --- /dev/null +++ b/test_tool/champion/Machine-gun.s @@ -0,0 +1,70 @@ +.name "Machine-gun" +.comment "yipikai mother fucker" + +entry: sti r1, %:live, %1 + + ld %0, r2 + live %10 + ld %47, r3 + zjmp %:def + +wall: ld %70, r3 + zjmp %:wall2 + ld %15, r3 + ld 10, r4 + sub r3, r4, r3 + st r3, -162 + st r3, -173 + st r3, -184 + st r3, -195 + st r3, -206 + + +live: live %15 + zjmp %3 + +def: st r2, -270 + zjmp %:wall + st r2, -261 + st r2, -252 + st r2, -243 + st r2, -254 + st r2, -265 + st r2, -276 + st r2, -287 + st r2, -298 + st r2, -309 + st r2, -318 + st r2, -327 + st r2, -336 + st r2, -345 + st r2, -354 + st r2, -363 + st r2, -372 + st r2, -381 + st r2, -390 + zjmp %:def + zjmp %:live + +wall2: live %130000 + st r5, 66 + st r5, 75 + st r5, 84 + st r5, 93 + st r5, 102 + st r5, 111 + st r5, 120 + st r5, 129 + st r5, 138 + st r5, 147 + st r5, 156 + st r5, 165 + st r5, 174 + st r5, 183 + st r5, 192 + st r5, 201 + st r5, 210 + st r5, 219 + st r5, 228 + live %131 + zjmp %:entry diff --git a/test_tool/champion/MarineKing.s b/test_tool/champion/MarineKing.s new file mode 100644 index 0000000..6741cd0 --- /dev/null +++ b/test_tool/champion/MarineKing.s @@ -0,0 +1,112 @@ +.name "MKP" +.comment "SaR ez Gg" + +sti r1, %:live, %1 +st r1, 6 +live %433 +#sti r1, %:relive, %1 +ld %1, r2 +live %45223 +ld %1, r3 +live %13123 +sti r1, %:wall, %1 +ld %0, r15 + +spawn: + live %45223 + fork %:spawn2 + ld %0, r15 + add r2, r3, r2 + zjmp %:wall + +spawn2: + live %651 + fork %:spawn3 + ld %0, r15 + ld %0, r15 + ld %0, r15 + zjmp %:spawn2 + + +spawn3: + live %9814 + fork %:spawn + +wall: + live %4902343 + st r2, -24 + st r2, -33 + st r2, -42 + st r2, -51 + st r2, -60 + st r2, -69 + st r2, -78 + st r2, -87 + st r2, -96 + st r2, -105 + st r2, -114 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + zjmp %:wall + +forks: + live %651264 + add r2, r3, r2 + xor r2, %15, r4 + zjmp %:forks + +live: + live %1 + zjmp %:live + +relive: + live %6514 + zjmp %:forks + ld %0, r4 + zjmp %:relive + +endwhile: + live %9751364 + ld %0, r4 diff --git a/test_tool/champion/Misaka_Mikoto.s b/test_tool/champion/Misaka_Mikoto.s new file mode 100644 index 0000000..7a1a5eb --- /dev/null +++ b/test_tool/champion/Misaka_Mikoto.s @@ -0,0 +1,206 @@ +.name "Misaka Mikoto" +.comment "Misaka Mikoto (Misaka Mikoto) (born May 2) is a main heroine in Toaru Majutsu no Index and the main protagonist of Toaru Kagaku no Railgun. Introduced in the first volume of the light novels, her role in the story was later expanded in the third volume as well as the release of the Toaru Kagaku no Railgun manga, making her the main heroine of the science side and the second main heroine of the series. + + She is the third ranked Level 5 esper in Academy City, and is nicknamed the Railgun due to her signature move. Kamijou Touma coined the nickname Biri-Biri (a Japanese onomatopoeia imitating the sound of electricity) for her and whenever the two meet he usually calls her that, even after his amnesia" + +entry: + sti r1, %:run, %1 ; live :run + sti r1, %:f1_a, %1 ; live :f2_a + sti r1, %:f1_b, %1 ; live :f2_b + sti r1, %:f2_a, %1 ; live :f2_c + sti r1, %:f2_d, %1 ; live :f2_d + + st r2, :entry ; clear entry + 0 + +nothing: + fork %:clear + add r3, r3, r3 + zjmp %:loader + +filler: + zjmp %:run + zjmp %:run + zjmp %:run + zjmp %:run + zjmp %:run + zjmp %:run + +clear: + live %404 + + add r3, r3, r3 + fork %:f0_z + zjmp %:f1_a + +f0_z: + zjmp %:f1_b + +f1_a: + live %404 + fork %:f1_z + zjmp %:f2_a + +f1_b: + live %404 + fork %:f1_y + zjmp %:f2_b + +f1_z: + zjmp %:f2_c + +f1_y: + zjmp %:f2_d + + + +f2_a: + live %404 + fork %:f2_z + zjmp %:f3_a +f2_b: + live %404 + fork %:f2_y + zjmp %:f3_b +f2_c: + live %404 + fork %:f2_w + zjmp %:f3_c +f2_d: + live %404 + fork %:f2_x + zjmp %:f3_d +f2_z: + zjmp %:f3_e +f2_y: + zjmp %:f3_f +f2_x: + zjmp %:f3_g +f2_w: + zjmp %:f3_h + + + +f3_b: ;snipe run + 12 + ld %-498, r9 + ldi %0, %:bomb_b, r8 + add r3, r3, r3 + zjmp %:run + +f3_f: ;snipe before + 4 + ld %-504, r9 + ldi %0, %:bomb_b, r8 + add r3, r3, r3 + zjmp %:run + +f3_d: ;snipe after - 8 + ld %508, r9 + ldi %0, %:bomb_a, r8 + add r3, r3, r3 + zjmp %:run + +f3_c: ;snipe after + ld %516, r9 + ldi %0, %:bomb_a, r8 + add r3, r3, r3 + zjmp %:run + +f3_g: ;snipe after - 4 + ld %512, r9 + ldi %0, %:bomb_a, r8 + add r3, r3, r3 + zjmp %:run + +f3_a: ;run + 8 + ld %19, r9 + ldi %8, %:run, r8 + add r3, r3, r3 + zjmp %:run + +f3_e: ;run + 0 + ld %11, r9 + ldi %0, %:run, r8 + add r3, r3, r3 + zjmp %:run + +f3_h: ;run + 4 + ld %15, r9 + ldi %4, %:run, r8 + add r3, r3, r3 + zjmp %:run + +run: + live %777 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + sti r8, %:run, r9 + +bomb_b: + lfork %-50 + +bomb_a: + zjmp %0 + +data_miner: + live %404 + +loader: + ldi %0, %:data_miner, r3 + +shotgun: + ldi %7, %:shotgun, r2 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + st r2, 256 + live %404 + st r3, 256 diff --git a/test_tool/champion/Rainbow_dash.s b/test_tool/champion/Rainbow_dash.s new file mode 100644 index 0000000..93393b6 --- /dev/null +++ b/test_tool/champion/Rainbow_dash.s @@ -0,0 +1,10 @@ +;basic.s + +.name "basic" +.comment "this is a basic stuff" + +loop: + st r1, 6 + live %0 + ld %0, r2 + zjmp %:loop diff --git a/test_tool/champion/Survivor.s b/test_tool/champion/Survivor.s new file mode 100644 index 0000000..d5644b7 --- /dev/null +++ b/test_tool/champion/Survivor.s @@ -0,0 +1,15 @@ +.name "Survivor" +.comment "Invincible" + + live %1 + fork %:f1 + zjmp %:j1 +f1: ld %4, r2 + zjmp %:run +j1: +run: xor r0, r0, r0 +l1: st r2, 1 + live %1 + zjmp %:l1 + + diff --git a/test_tool/champion/THUNDER.s b/test_tool/champion/THUNDER.s new file mode 100644 index 0000000..0e816cd --- /dev/null +++ b/test_tool/champion/THUNDER.s @@ -0,0 +1,138 @@ +.name "thunder" +.comment "you've been thunderstruck..." + +main: + sti r1, %:start, %1 + sti r1, %:back, %1 + sti r1, %:front, %1 + sti r1, %:live, %1 + ld %0, r16 + fork %:start + +live: + live %42 + ld %0, r2 + ld %0, r16 + fork %:front + +back: + live %42 + st r2, -24 + st r2, -33 + st r2, -42 + st r2, -51 + st r2, -60 + st r2, -69 + st r2, -78 + st r2, -87 + st r2, -96 + st r2, -105 + st r2, -114 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + zjmp %:back + +start: + live %42 + zjmp %:start + +front: + live %42 + st r2, 24 + st r2, 33 + st r2, 42 + st r2, 51 + st r2, 60 + st r2, 69 + st r2, 78 + st r2, 87 + st r2, 96 + st r2, 105 + st r2, 114 + st r2, 123 + st r2, 132 + st r2, 141 + st r2, 150 + st r2, 159 + st r2, 168 + st r2, 177 + st r2, 186 + st r2, 195 + st r2, 204 + st r2, 213 + st r2, 222 + st r2, 231 + st r2, 240 + st r2, 249 + st r2, 258 + st r2, 267 + st r2, 276 + st r2, 285 + st r2, 294 + st r2, 303 + st r2, 312 + st r2, 321 + st r2, 330 + st r2, 339 + st r2, 348 + st r2, 357 + st r2, 366 + st r2, 375 + st r2, 384 + st r2, 393 + st r2, 402 + st r2, 411 + st r2, 420 + st r2, 429 + st r2, 438 + st r2, 447 + st r2, 456 + st r2, 465 + st r2, 474 + st r2, 483 + st r2, 492 + st r2, 501 + st r2, 510 + zjmp %:front diff --git a/test_tool/champion/Varimathras.s b/test_tool/champion/Varimathras.s new file mode 100644 index 0000000..32bb952 --- /dev/null +++ b/test_tool/champion/Varimathras.s @@ -0,0 +1,72 @@ +.name "Varimathras" +.comment "If I have wings, why am I always walking?" + +piege: + st r1, r9 #/ ld nous, r9 + live %0 + ld %656, r1 + ld %151162880, r2 + sti r1, %:piege, %0 + sti r9, %:piege, %4 + sti r2, %:piege, %8 + +init_buldog: + ld %0, r1 + ld %4, r3 + ld %88, r4 + sti r9, %:buldog, %1 + sti r9, %:live1, %1 + sti r9, %:live2, %1 + sti r9, %:live3, %1 + +buldog: + live %0 + ldi %:buldog, r1, r2 +live1: + live %0 + sti r2, %:fin, r1 +live2: + live %0 + add r1, r3, r1 + xor r1, r4, r16 + zjmp %:suite +live3: + live %0 + and %0, %0, r16 + zjmp %:buldog +suite: + ld %0, r1 + and %0, %0, r16 + zjmp %:fin + +complicate: + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 +fin: diff --git a/test_tool/champion/Wall.s b/test_tool/champion/Wall.s new file mode 100644 index 0000000..92892fa --- /dev/null +++ b/test_tool/champion/Wall.s @@ -0,0 +1,84 @@ + .name "Wall" + .comment "Werror(you) Wextra(me)" + +start: + ld %1, r14 + zjmp %:wallstart + st r15, -8 # 15 + +stlive: + sti r1, %:wall, %1 # 7 + sti r1, %:alive, %1 + sti r1, %:forklive, %1 + sti r1, %:wallstart, %1 + sti r1, %:fork, %1 + sti r1, %:fork, %9 + sti r1, %:kta, %1 + sti r1, %:kta, %9 + sti r1, %:kta, %17 # 63 + # 78 +fork: + live %66 + fork %:wallstart + live %66 + fork %:fork # 16 + # 94 +kta: + live %2576980377 # 99 + lfork %925 + live %66 # 107 + lfork %1941 + live %66 # 115 + lfork %2957 + +forklive: + live %66 + fork %:forklive + aff r1 + +alive: + live %66 + ld %0, r16 + zjmp %:alive + +wallstart: + live %66 + ld %42991616, r2 + ld %265, r3 + ld %4294508544, r4 + fork %:wallstart + +wall: + live %66 + st r2, -300 + st r3, -301 + st r4, -302 + st r2, -303 + st r3, -304 + st r4, -305 + st r2, -306 + st r3, -307 + st r4, -308 + st r2, -309 + st r3, -310 + st r4, -311 + st r2, -312 + st r3, -313 + st r4, -314 + st r2, -315 + st r3, -316 + st r4, -317 + st r2, -318 + st r3, -319 + st r4, -320 + st r2, -321 + st r3, -322 + st r4, -323 + st r2, -324 + st r3, -325 + st r4, -326 + st r2, -327 + st r3, -328 + st r4, -329 + ld %0, r16 + zjmp %:wall diff --git a/test_tool/champion/_.s b/test_tool/champion/_.s new file mode 100644 index 0000000..982310f --- /dev/null +++ b/test_tool/champion/_.s @@ -0,0 +1,155 @@ +.name "Underscore" +.comment "__UNDERSCORE_S__" + +first: + ld %0, r2 + zjmp %:begin + zjmp %-511 +defdessus: + live %-42 + sti r10, r11, r13 + add r12, r13, r13 + xor r13, %-255, r14 + zjmp %:zero + ld %0, r14 + zjmp %:defdessus +zero: + ld %0, r13 + zjmp %:defdessus +#plein de truck pour remplir +lasertop: + live %-42 + ld %-128, r6 + fork %:lasera + ld %190056198, r7 + ld %0, r5 + ld %0, r16 + zjmp %:laser +lasera: + ld %84541307, r7 + ld %4, r5 + ld %190056198, r16 +dec1: + st r16, -490 +dec2: + st r7, -491 +laser: + ld %0, r2 + zjmp %-511 +empty: + lldi %42, %42, r16 +#def du dessus +atj1: + live %-42 + sti r1, %:defdessus, %1 + ld %57672959, r10 + ld %-30, r11 + ld %-5, r12 + st r1, 6 +defplus: + live %-42 + fork %:defdessus + ld %-165, r13 + ld %0, r2 + zjmp %:defplus +at2: + sti r1, %:li1, %1 + sti r1, %:proc1, %1 + fork %:atj1 + st r1, 6 + live %-42 + or r1, r1, r7 + ld %1880161814, r9 + ld %1879571989, r10 + ld %34209281, r11 +#live + def dessous + attack +atf: + fork %:proc1 +li1: + live %-42 + fork %:head + ld %0, r2 + zjmp %:brain +head: + ld %191104768, r7 + ld %5, r6 + ld %0, r2 + zjmp %:forklive +proc1: + live %-42 + fork %:tail +corps: + ld %101056768, r7 + ld %9, r6 + ld %0, r2 + zjmp %:forklive +tail: + ld %0, r2 + ld %12, r6 + ld %0, r2 + zjmp %:forklive +forklive: + st r1, 6 + live %-42 + sti r7, r6, %317 + ld %0, r2 + zjmp %309 +beginnewattack: + sti r16, %:modme, %1 + fork %:def_at + ld %24, r16 + sti r16, %:modme, %1 + st r1, 6 + live %-42 +golive: + ld %0, r2 + zjmp %511 +brain: + ld %16, r12 + add r12, r9, r9 + add r12, r10, r10 + add r12, r11, r11 + st r1, 6 + live %-42 + ld %0, r2 + sti r1, %:lasertop, %1 + sti r9, %:dec1, %1 + sti r10, %:dec2, %1 + sti r11, %:laser, %6 + fork %:lasertop + zjmp %:atf +begin: + ld %16777216, r16 + sti r16 ,%:first, %6 + st r1, 117 + sti r1, %:sst, %1 + ld %507, r4 + ld %507, r6 + st r1, 6 + live %-42 +def_at: + ld %190055170, r8 + ld %67699190, r9 + st r8, 511 + st r9, 510 +modme: + ld %24, r8 + fork %:at2 +at1: + fork %:sjmp +sst: + live %-1 + ld %0, r2 + ld %190055682, r3 + ld %190056194, r5 + ld %190056194, r7 + ld %0, r16 + zjmp %448 +sjmp: + live %0 + ld %4, r2 + ld %101253622, r3 + ld %134807571, r5 + ld %134807571, r7 + ld %0, r16 + zjmp %405 diff --git a/test_tool/champion/_honeybadger.s b/test_tool/champion/_honeybadger.s new file mode 100644 index 0000000..65492c4 --- /dev/null +++ b/test_tool/champion/_honeybadger.s @@ -0,0 +1,225 @@ +.name "HoneyBadger" +.comment "This is where I'd put the forks. IF I HAD ANY" + +ld %0, r2 +zjmp %:var2 +var1: +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +var2: +zjmp %:var225 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +lfork %:var1 +var225: +ld %57672449, r4 +ld %4278780410, r5 +ld %151087104, r3 +ld %0, r2 +st r4, 511 +st r5, 510 +zjmp %501 diff --git a/test_tool/champion/a_test_comment.s b/test_tool/champion/a_test_comment.s new file mode 100644 index 0000000..6410413 --- /dev/null +++ b/test_tool/champion/a_test_comment.s @@ -0,0 +1,5 @@ +.name "test_comment" +.comment " +Hello" + +add r1, r1,r1 diff --git a/test_tool/champion/barriere.s b/test_tool/champion/barriere.s new file mode 100644 index 0000000..14428f2 --- /dev/null +++ b/test_tool/champion/barriere.s @@ -0,0 +1,218 @@ +.name "Barriere" +.comment "Envoie des torpilles a l'avant et se protege avec des barrieres a l'avant et a l'arriere" + + and r6, %0, r6 + zjmp %:init + +# On bombarde derriere notre programme + +arriere: ld %-5, r5 + ld %1024,r4 +arriere2: ld %-5, r3 +arriere_live: live %42 + sti r4, %:arriere, r3 + add r3, r5, r3 + sti r4, %:arriere, r3 + add r3, r5, r3 + sti r4, %:arriere, r3 + add r3, r5, r3 + sti r4, %:arriere, r3 + add r3, r5, r3 + sti r4, %:arriere, r3 + add r3, r5, r3 + xor r3,%-430,r15 + zjmp %:arriere2 + and r6, %0, r6 + zjmp %:arriere_live + +fork_arriere: live %42 + fork %:arriere + zjmp %:fork_arriere + +# On commence les lives en serie +live_live: live %42 + sti r1, %:live100, r9 + sti r1, %:live102, r9 + sti r1, %:live104, r9 + sti r1, %:live106, r9 + sti r1, %:live108, r9 + sti r1, %:live110, r9 + sti r1, %:live112, r9 + sti r1, %:live114, r9 + sti r1, %:live116, r9 + sti r1, %:live118, r9 + sti r1, %:live120, r9 + sti r1, %:live122, r9 + sti r1, %:live124, r9 + sti r1, %:live126, r9 + sti r1, %:live128, r9 + sti r1, %:live130, r9 + sti r1, %:live132, r9 + sti r1, %:live134, r9 + sti r1, %:live136, r9 + sti r1, %:live138, r9 + sti r1, %:live140, r9 + sti r1, %:live142, r9 + sti r1, %:live144, r9 + sti r1, %:live146, r9 + sti r1, %:live148, r9 + xor r9,%6,r10 + zjmp %:fork_live + ld %6,r9 + and r6,%0,r6 + zjmp %:live_live + +init: fork %:kmissile + live %42 + sti r1, %:arriere_live, %1 + fork %:fork_arriere + live %42 + sti r1, %:avant_live, %1 + fork %:fork_avant + live %42 + ld %1,r9 + and r6,%0,r6 + zjmp %:live_live + +fork_live: live %42 + fork %:live100 + live %42 + fork %:fork_live + live %42 + zjmp %:fork_live + +live100: live %42 +live101: live %42 +live102: live %42 +live103: live %42 +live104: live %42 +live105: live %42 +live106: live %42 +live107: live %42 +live108: live %42 +live109: live %42 +live110: live %42 +live111: live %42 +live112: live %42 +live113: live %42 +live114: live %42 +live115: live %42 +live116: live %42 +live117: live %42 +live118: live %42 +live119: live %42 +live120: live %42 +live121: live %42 +live122: live %42 +live123: live %42 +live124: live %42 +live125: live %42 +live126: live %42 +live127: live %42 +live128: live %42 +live129: live %42 +live130: live %42 +live131: live %42 +live132: live %42 +live133: live %42 +live134: live %42 +live135: live %42 +live136: live %42 +live137: live %42 +live138: live %42 +live139: live %42 +live140: live %42 +live141: live %42 +live142: live %42 +live143: live %42 +live144: live %42 +live145: live %42 +live146: live %42 +live147: live %42 +live148: live %42 +live149: live %42 + zjmp %:live101 + +fork_avant: live %42 + fork %:avant + zjmp %:fork_avant + +avant: ld %-5, r5 + ld %12, r4 +avant2: ld %10, r3 +avant_live: live %1 + sti r4, %:fin, r3 + sub r3, r5, r3 + sti r4, %:fin, r3 + sub r3, r5, r3 + sti r4, %:fin, r3 + sub r3, r5, r3 + sti r4, %:fin, r3 + sub r3, r5, r3 + sti r4, %:fin, r3 + sub r3, r5, r3 + xor r3,%435,r15 + zjmp %:avant2 + and r6, %0, r6 + zjmp %:avant_live +fin: zjmp %:avant_live +kmissile: live %42 + fork %:kfork1 + live %42 + fork %:kfork2 + live %42 + fork %:kfork4 + ld %12,r2 + ld %192,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork1: live %42 + fork %:kfork3 + live %42 + fork %:kfork6 + ld %0,r2 + ld %180,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork2: live %42 + fork %:kfork5 + live %42 + ld %8,r2 + ld %188,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork3: live %42 + fork %:live100 + ld %4,r2 + ld %184,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork4: ld %16,r2 + ld %196,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork5: ld %20,r2 + ld %200,r5 + and r6,%0,r6 + zjmp %:kdebut + +kfork6: ld %24,r2 + ld %204,r5 + and r6,%0,r6 + zjmp %:kdebut + +kdebut: ldi %:kdebut,r2,r3 + sti r3,r5,%:kfin + live %42 + and r6,%0,r6 +kfin: zjmp %180 + + + + + diff --git a/test_tool/champion/bee_gees.s b/test_tool/champion/bee_gees.s new file mode 100644 index 0000000..3b999df --- /dev/null +++ b/test_tool/champion/bee_gees.s @@ -0,0 +1,24 @@ +.name "stayin' alive" +.comment "Ha, Ha, Ha, stayiiiiin' aliiiiiiiiiive" + +sti r1, %:live, %1 ;change live by the right value +sti r1, %:live2, %1 ;change live by the right value +ld %1, r3 +ld %33, r6 +#While (r2 < 10) +forks: +add r2, r3, r2 ;increment r2 +xor r2, %15, r4 ;if (r4) {carry = 0} +live2: + live %4 +zjmp %:endwhile ;if (carry) +fork %:forks +ld %0, r4 ;carry = 1 +zjmp %:forks +#EndWhile +endwhile: +ld %0, r4 ;carry = 1 + +live: +live %4 +zjmp %:live diff --git a/test_tool/champion/big_feet.s b/test_tool/champion/big_feet.s new file mode 100644 index 0000000..1ce6149 --- /dev/null +++ b/test_tool/champion/big_feet.s @@ -0,0 +1,79 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# big_feet.s :+: :+: :+: # +# +:+ +:+ +:+ # +# By: clafleur +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2014/02/16 20:28:04 by clafleur #+# #+# # +# Updated: 2014/03/02 17:23:26 by clafleur ### ########.fr # +# # +# **************************************************************************** # + +.name "top defense plus plus" +.comment "la meilleure defense c'est d'avoir une bonne defense" + +start: + +start_piege: +ld %-16, r5 # r2 = soustraction de start pr aller a r2 : carry a 1 +ld %-12, r4 # r4 = suite (soustraction de start pr aller a r3 : suite du carry) +ld %-8, r6 # r6 = soustration de start pr aller a r10 : zjmp +ld %150994944, r10 # r10 = zjmp +ld %42991616, r2 # debut de carry a 1 +ld %256, r3 # suite du carry a 1 +ld %16, r16 # decrementation de start +ld %12, r7 # r7 = addition de end pr aller a r7 : carry a 1 +ld %16, r9 # r9 = suite (addition de end pr aller a r9 : suite du carry) +ld %20, r11 # r11 = addition de end pr aller a r11 : zjmp +ld %23, r12 # compteur pour le nombres de pieges +ld %1, r13 +ld %0, r8 # carry = 1 +sti r1, %:piege1, %1 +sti r1, %:piege2, %1 +sti r1, %:begin, %1 +sti r1, %:live, %1 +fork %:begin + +piege1: # while(1) +live %118978653103279 # je suis en vie +sti r2, %:start, r5 +sti r3, %:start, r4 +sti r10, %:start, r6 +sub r5, r16, r5 +sub r4, r16, r4 +sub r6, r16, r6 +sub r12, r13, r12 # decrementation du compteur +zjmp %:start_piege # reviens en debut de boucle +ld %0, r8 # carry = 1 +zjmp %:piege1 # reviens en debut de boucle + +begin: +live %13371337 +fork %:piege1 +live %42424242 +fork %:piege2 +live %123456789 +fork %:begin +live %08395432657 +fork %:live +zjmp %:begin + +live: +live %23456789456780987 +zjmp %:begin + +piege2: +live %198562346853412 +sti r2, %:end, r7 +sti r3, %:end, r9 +sti r10, %:end, r11 +add r7, r16, r7 +add r9, r16, r9 +add r11, r16, r11 +sub r12, r13, r12 # decrementation du compteur +zjmp %:start_piege # reviens en debut de boucle +ld %0, r8 # carry = 1 +zjmp %:piege2 # reviens en debut de boucle + +end: diff --git a/test_tool/champion/bigzork.s b/test_tool/champion/bigzork.s new file mode 100644 index 0000000..d750230 --- /dev/null +++ b/test_tool/champion/bigzork.s @@ -0,0 +1,90 @@ +.name "bigzork" +.comment "I know i cant win" + +ld %0, r2 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +st r1, 211 +loop: +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +zjmp %:loop diff --git a/test_tool/champion/bw.s b/test_tool/champion/bw.s new file mode 100644 index 0000000..c6a7c3f --- /dev/null +++ b/test_tool/champion/bw.s @@ -0,0 +1,9 @@ +.name "sebc Hello World" +.comment "sebc Hello World" + + +l3: ldi %:l2, r2, r4 + add r2, r3, r2 + xor r4, r4, r4 + zjmp %:l3 +l2: diff --git a/test_tool/champion/casimir.s b/test_tool/champion/casimir.s new file mode 100644 index 0000000..f30a8cd --- /dev/null +++ b/test_tool/champion/casimir.s @@ -0,0 +1,63 @@ +.name "CASIMIR" +.comment "GLOUBIBOULGA" + + ld %880, r2 + ld %16778753, r3 + ld %4, r4 + ld %72618000, r5 + ld %269090801, r6 + st r1, 6 + live %456 + fork %:live + add r16, r16, r16 + zjmp %:forknikator +live: + st r1, 6 + live %546 + st r2, 1023 + st r3, 1022 + st r4, 1021 + st r5, 1020 + st r6, 1019 + fork %993 + sti r1, %:live2, %1 + fork %:live2 + add r16, r16, r16 + zjmp %:live +live2: + live %4 + add r16, r16, r16 + zjmp %:live2 +forknikator: + st r1, 6 + live %37 + fork %:protect1 + fork %:protect2 + add r16, r16, r16 + zjmp %:forknikator +protect1: + st r1, 6 + live %789 + st r2, -129 + st r3, -130 + st r4, -131 + st r5, -132 + st r6, -133 + st r16, -134 + st r16, -135 + st r16, -136 + add r16, r16, r16 + zjmp %:protect1 +protect2: + st r1, 6 + live %212 + st r2, -219 + st r3, -220 + st r4, -221 + st r5, -222 + st r6, -223 + st r16, -224 + st r16, -225 + st r16, -226 + add r16, r16, r16 + zjmp %:protect2 diff --git a/test_tool/champion/champ.s b/test_tool/champion/champ.s new file mode 100644 index 0000000..220613d --- /dev/null +++ b/test_tool/champion/champ.s @@ -0,0 +1,131 @@ +;******************************************************************************; +; ; +; ::: :::::::: ; +; champ.s :+: :+: :+: ; +; +:+ +:+ +:+ ; +; By: aelola +#+ +:+ +#+ ; +; +#+#+#+#+#+ +#+ ; +; Created: 2014/02/25 11:56:47 by aelola #+# #+# ; +; Updated: 2014/02/25 11:56:48 by aelola ### ########.fr ; +; ; +;******************************************************************************; + +.name "lazer" +.comment "Mundo dit beaucoup son nom pour pas l'oublier, pck c deja arriver!" + +entry: + sti r1, %:live, %1 + sti r1, %:mov, %1 + sti r1, %:wall, %1 + sti r1, %:torpille_front, %1 + sti r1, %:write_front, %1 + and r1, %0, r1 + ld %100, r4 + fork %:wall + zjmp %:mov + +live: + live %1566 + fork %:write_front + lfork %:mov + zjmp %:live + +init_write: + ld %0, r8 + ld %5, r15 + +write_front: +af: + live %2 + ldi %:init_write, r8, r16 + sti r16, %:up, r8 + add r15, r8, r8 + sti r16, %:up, r8 +bf: + live %3 + xor r8, r3, r9 + zjmp %:init_write +cf: + ld %0, r9 + zjmp %:write_front + +wall: + live %42 + ld %1111638594, r2 + st r2, -69 + st r2, -74 + st r2, -83 + st r2, -92 + st r2, -101 + st r2, -109 + st r2, -115 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + zjmp %:wall + +mov_init: + ld %4, r8 + ld %0, r4 + ld %1111638594, r6 + # zjmp %:mov_init + +mov: + live %99 + sti r6, :up, r4 + add r4, r8, r4 + sti r6, :up, r4 + add r4, r8, r4 + fork %:mov + zjmp %:mov + +torpille_front: + live %4242 + add r4, r8, r4 + sti r6, r4, %:up + add r4, r8, r4 + sti r6, r4, %:up + zjmp %:torpille_front + +up: diff --git a/test_tool/champion/corelol.s b/test_tool/champion/corelol.s new file mode 100644 index 0000000..5df2323 --- /dev/null +++ b/test_tool/champion/corelol.s @@ -0,0 +1,11 @@ +.name "laugh" +.comment "aff, just kidding" + +hello: + sti r1, %:alive, %1 + fork %:alive + add r2, r3, r4 + +alive: + live %0 + zjmp %:alive diff --git a/test_tool/champion/darksasuke.s b/test_tool/champion/darksasuke.s new file mode 100644 index 0000000..a25a237 --- /dev/null +++ b/test_tool/champion/darksasuke.s @@ -0,0 +1,68 @@ +.name "Xx_DaRk_SaSuKe_93_xX" +.comment "The Dirty Hamster" + + st r1, 235 + st r1, 205 + ld %8, r15 + ld %1, r16 + ld %-400, r13 + ld %0, r11 + ld %0, r16 + zjmp %:start + +lf: + live %9999999 + lfork %:lf + +start: + ld -3, r9 + ld -13, r7 + ld -17, r8 + ld %300, r10 + fork %:forward + live %999999 + fork %:backward + ld %0, r16 + zjmp %:initlive + +initlive: + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + ld %0, r16 + +live: + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + live %93999 + zjmp %:live + +backward: + live %9999999 + sub r13, r15, r13 + sti r9, r10, r13 + ld %0, r16 + zjmp %:backward + +forward: + live %9999999 + add r11, r15, r11 + sti r7, r10, r11 + sti r8, r10, r11 + ld %0, r16 + zjmp %:forward + diff --git a/test_tool/champion/doge.s b/test_tool/champion/doge.s new file mode 100644 index 0000000..d7bee94 --- /dev/null +++ b/test_tool/champion/doge.s @@ -0,0 +1,154 @@ +.name "Candy" +.comment "" + + st r1, r12 + ld %0 , r14 + zjmp %:base + +def: + st r9, -256 + st r10, -256 + st r14, -9 + st r4, -21 + st r14, -30 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r9, -256 + st r10, -256 + st r14, -9 + st r4, -21 + st r14, -30 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r4, -256 + st r10, -256 + st r14, -9 + st r4, -21 + st r14, -30 + ld %0 , r15 + zjmp %:def + +liv: + live %42 + fork %:live3 + ld %0 , r16 + zjmp %:base + +base: + live %42 + ld %57672449, r3 + ld %57672959, r4 + ld %42991616, r9 + ld %235536380, r10 + ld %16777216 ,r11 + xor r12, r14, r15 + sti r15, %:live1, %1 + sti r15, %:liv, %1 + sti r15, %:live2, %1 + zjmp %:live1 + +live1: + live %42 + fork %:def + fork %:save + ld %0 , r15 + zjmp %:liv + +live3: + st r3, 256 + st r3, 256 + st r3, 256 + live %1 + st r3, 256 + st r3, 256 + st r3, 256 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + st r3, 256 + st r3, 256 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + st r3, 256 + st r3, 256 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 + live %1 + st r3, 256 +zjmp %:live3 + +attak: + live %42 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 + st r9, 256 +zjmp %:attak + +live2: + live %1 +save: + live %1 + fork %:attak + st r4, 254 + zjmp %:save diff --git a/test_tool/champion/dubo.s b/test_tool/champion/dubo.s new file mode 100644 index 0000000..74e9079 --- /dev/null +++ b/test_tool/champion/dubo.s @@ -0,0 +1,22 @@ +.name "dubo" +.comment "Tu veux du pain" + +pede: +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +zjmp %:pede + +nodeadplz: + live %1 + live %1 + live %1 + live %3 + live %2 + live %2 + zjmp %:nodeadplz + diff --git a/test_tool/champion/ex.s b/test_tool/champion/ex.s new file mode 100644 index 0000000..d66a55b --- /dev/null +++ b/test_tool/champion/ex.s @@ -0,0 +1,7 @@ +.name "zork" +.comment "just a basic living prog" + +l2: sti r1,%:live,%0 + and r1,%0,r1 +live: live %1 + zjmp %:live diff --git a/test_tool/champion/fluttershy.s b/test_tool/champion/fluttershy.s new file mode 100644 index 0000000..f77237d --- /dev/null +++ b/test_tool/champion/fluttershy.s @@ -0,0 +1,147 @@ +#by zaz, it's not very good, but what did you expect, rainbowdash is way better +#2013 + +.name "fluttershy" +.comment "oh, my, what a scary project" + +entry: + fork %:coregeni + st r1, 6 + live %42 + fork %:torpgeni + st r1, 6 + live %42 + fork %:avdefgeni + +ardeftgt: + +ardefgeni: + st r1, 6 + +ardefgen: + live %213904 + fork %:ardefgen + +ardefinit: + sti r1, %:ardefl1, %1 + st r1, 6 + live %43123 + sti r1, %:ardefchk, %1 + ld %-6, r2 + ld %-6, r3 + ld %150994953, r4 + ld %-186, r5 + +ardefwrite: +ardefl1: + live %295423 + sti r4, %:ardeftgt, r2 + add r2, r3, r2 + sti r4, %:ardeftgt, r2 + add r2, r3, r2 +ardefchk: + live %3940641 + xor r2, r5, r15 + zjmp %:ardefinit +ardefloop: + ld %0, r16 + zjmp %:ardefwrite + + +coregeni: + st r1, 6 + +coregen: + live %123012 + fork %:coregen + +coreinit: + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + st r1, 58 + ld %0, r16 + +corelive: + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + live %985341 + zjmp %:corelive + +avdefgeni: + st r1, 6 + +avdefgen: + live %213904 + fork %:avdefgen + +avdefinit: + sti r1, %:avdefl1, %1 + st r1, 6 + live %43123 + sti r1, %:avdefchk, %1 + ld %0, r2 + ld %6, r3 + ld %150994953, r4 + ld %180, r5 + +avdefwrite: +avdefl1: + live %295423 + sti r4, %:avdeftgt, r2 + add r2, r3, r2 + sti r4, %:avdeftgt, r2 + add r2, r3, r2 +avdefchk: + live %3940641 + xor r2, r5, r15 + zjmp %:avdefinit +avdefloop: + ld %0, r16 + zjmp %:avdefwrite + +torpgeni: + st r1, 6 + +torpgen: + live %96824 + fork %:torpgen + +torpinit: + ld %0, r2 + ld %4, r3 + ld %96, r5 + sti r1, %:torpchk, %1 + st r1, 6 + +torpwrite: +torpl1: + live %8008135 + ldi %:torpinit, r2, r4 + sti r4, %400, r2 + add r2, r3, r2 + ldi %:torpinit, r2, r4 + sti r4, %383, r2 + add r2, r3, r2 +torpchk: + live %89523 + xor r2, r5, r15 + zjmp %362 +torploop: + ld %0, r15 + zjmp %:torpwrite + +avdeftgt: diff --git a/test_tool/champion/gateau.s b/test_tool/champion/gateau.s new file mode 100644 index 0000000..f36f0d1 --- /dev/null +++ b/test_tool/champion/gateau.s @@ -0,0 +1,176 @@ +.name "🎂" +.comment "🎂" + +wall: + ld %0, r10 + zjmp %:debut + +def: + live %2 + ld %251658240, r2 + ld %0, r10 + fork %:ouais + +boucle1: + st r2, -511 + st r2, -505 + st r2, -499 + st r2, -493 + st r2, -487 + st r2, -481 + st r2, -475 + st r2, -469 + zjmp %:boucle1 + +ouais: + live %2 +boucle2: + st r2, -471 + st r2, -465 + st r2, -459 + st r2, -453 + st r2, -447 + st r2, -441 + st r2, -435 + zjmp %:boucle2 + +aff: + ld %71, r1 + aff r1 + ld %82, r1 + aff r1 + ld %79, r1 + aff r1 + ld %83, r1 + aff r1 + ld %32, r1 + aff r1 + ld %83, r1 + aff r1 + ld %65, r1 + aff r1 + ld %67, r1 + aff r1 + ld %32, r1 + aff r1 + ld %71, r1 + aff r1 + ld %82, r1 + aff r1 + ld %79, r1 + aff r1 + ld %83, r1 + aff r1 + ld %32, r1 + aff r1 + ld %83, r1 + aff r1 + ld %65, r1 + aff r1 + ld %67, r1 + aff r1 + ld %32, r1 + aff r1 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + lfork %0 + live %2 + +debut: + st r1, :wall + st r16, -5 + st r1, 143 + st r16, -5 + fork %:def + live %2 + fork %:aaaaah + +super: + live %2 + +apocalypse: + fork %:super + live %2 + fork %:salut2 + or r2, %32, r2 + +salut2: + live %2 + fork %:salut3 + or r2, %16, r2 + +salut3: + live %2 + fork %:salut4 + or r2, %8, r2 + +salut4: + live %2 + fork %:salut5 + or r2, %4, r2 + +salut5: + ldi %:prog, r2, r16 + ld %0, r15 + +prog: + sti r16, %64, r2 + sti r16, %122, r2 + sti r16, %180, r2 + sti r16, %238, r2 + sti r16, %296, r2 + sti r16, %354, r2 + live %2 + live %2 + sti r16, %402, r2 + sti r16, %448, r2 + zjmp %442 + live %2 + +aaaaah: + live %2 + ld %507, r6 + ld %8, r8 + ld %139, r10 + fork %:sjmp + +vite: + live %2 + ld %4, r2 + ld %101253622, r3 + ld %101253622, r5 + ld %168362119, r7 + ld %262144, r9 + ld %0, r16 + zjmp %:rush + +sjmp: + live %2 + ld %0, r2 + ld %190055682, r3 + ld %190056194, r5 + ld %190056706, r7 + ld %134443017, r9 + ld %0, r16 + zjmp %:rush + +rush: + sti r3, r2, r6 + zjmp %502 diff --git a/test_tool/champion/gedeon.s b/test_tool/champion/gedeon.s new file mode 100644 index 0000000..8039a17 --- /dev/null +++ b/test_tool/champion/gedeon.s @@ -0,0 +1,79 @@ +.name "Gédéon le Cochon" +.comment "Tout est bon dans Gédéon" + +tmp: + sti r1, %:youshallnotpass, %1 + sti r1, %:core, %1 + sti r1, %:core, %9 + sti r1, %:core, %17 + sti r1, %:core, %25 + sti r1, %:live1, %1 + sti r1, %:live2, %1 + sti r1, %:youshallnotpass2, %1 + ld %0, r1 + fork %:core + +trap: + ld %0, r1 + +youshallnotpass: + live %1337 + st r1, -16 + st r1, -25 + st r1, -34 + st r1, -43 + st r1, -52 + st r1, -61 + st r1, -70 + st r1, -79 + st r1, -88 + st r1, -97 + st r1, -106 + st r1, -115 + st r1, -124 + st r1, -133 + st r1, -142 + st r1, -151 + st r1, -160 + st r1, -410 + st r1, -411 + st r1, -412 + st r1, -413 + st r1, -414 + st r1, -425 + st r1, -416 + st r1, -417 + st r1, -418 + st r1, -419 + ld %0, r1 + zjmp %:youshallnotpass + +core: + live %1337 + fork %:youshallnotpass + live %1337 + fork %:youshallnotpass2 + live %1337 + fork %:live1 + live %1337 + fork %:core + #ld %0, r1 + zjmp %:core + +live1: + live %1337 + fork %:live1 + ld %0, r1 + +live2: + live %1337 + zjmp %:live2 + +youshallnotpass2: + live %1337 + st r1, 30 + st r1, 29 + st r1, 28 + st r1, 27 + ld %0, r1 + zjmp %:youshallnotpass2 diff --git a/test_tool/champion/helltrain.s b/test_tool/champion/helltrain.s new file mode 100644 index 0000000..0178a5c --- /dev/null +++ b/test_tool/champion/helltrain.s @@ -0,0 +1,147 @@ +#by zaz, still not as good as rainbowdash though +#2013 + +.name "helltrain" +.comment "choo-choo, motherf*****s !" + +entry: + sti r1, %:beegees_gen, %1 + sti r1, %:beegees, %1 + sti r1, %:cc_spawn, %1 + sti r1, %:wall, %1 + sti r1, %:cc4, %1 + sti r1, %:cc4, %9 + sti r1, %:cc4, %17 + sti r1, %:cc4l, %1 + sti r1, %:cc4ld, %2 + sti r1, %:cc3, %1 + sti r1, %:cc3, %9 + sti r1, %:cc2, %1 + ld %0, r16 + fork %:cc_spawn + +wall_prep: + ld %0, r2 + ld %0, r16 + +wall: + live %4902343 + st r2, -24 + st r2, -33 + st r2, -42 + st r2, -51 + st r2, -60 + st r2, -69 + st r2, -78 + st r2, -87 + st r2, -96 + st r2, -105 + st r2, -114 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + zjmp %:wall + +beegees_gen: + live %4239423 + fork %:beegees_gen + ld %0, r16 + +beegees: + live %3442302 + zjmp %:beegees + +cc_spawn: + live %4320423 + zjmp %3 + fork %:cc_spawn + +cc4: + live %4329034 + fork %:cc3 + live %3401123 + fork %:cc2 + live %4590543 + fork %:cc1 +cc4ld: + ld %0, r2 + ld %251883523, r3 + ld %0, r16 +cc4l: + live %4930423 + ld %0, r16 + zjmp %:choochoo + +cc2: + live %4342342 + fork %:wall_prep + ld %251883523, r2 + ld %386101251, r3 + ld %0, r16 + ld %0, r16 + zjmp %:choochoo + +cc3: + live %4239013 + fork %:cc4 + live %4093282 + fork %:beegees_gen + ld %4294902016, r2 + ld %436432899, r3 + ld %0, r16 + ld %0, r16 + ld %0, r16 + zjmp %:choochoo + +cc1: + ld %57672192, r2 + ld %318992387, r3 + ld %0, r16 + zjmp %:choochoo + +choochoo: + st r2, 15 + st r3, -1 +cc_live: + live %0 diff --git a/test_tool/champion/jinx.s b/test_tool/champion/jinx.s new file mode 100644 index 0000000..e12fef8 --- /dev/null +++ b/test_tool/champion/jinx.s @@ -0,0 +1,97 @@ +.name "Jinx" +.comment "Stay still, I'm trying to shoot you..!" + +init: + st r1, :replic1 + st r6, -4 + ld :replic1, r1 + +start1: + ld %0, r7 + zjmp %:start2 + +stuff1: + live %66 + ldi %-5, r3, r1 + sti r1, %-173, r3 + add r3, r4, r3 + xor r5, r3, r6 + zjmp %:stuff2 + +stuff2: + xor r3, r3, r3 + zjmp %-207 + +replic1: + st r1, r1 + +start2: + sti r1, %:live0, %1 + +live0: + live %66 + sti r2, %:start1, %-60 + ld %4, r4 + st r2, 512 + +replic2: + ld %48, r5 + sti r1, %:stuff1, %1 + sti r1, %:stuff3, %1 + sti r1, %:live1, %1 + sti r1, %:live2, %1 + sti r1, %:live3, %1 + sti r1, %:live4, %1 + sti r1, %:live5, %1 + +live1: + live %66 + +live2: + live %66 + +live3: + live %66 + +live4: + live %66 + +live5: + live %66 + zjmp %:live1 + xor r3, r3, r3 + sti r1, %:live6, %1 + +live6: + live %66 + fork %:live1 + sti r1, %:loop, %1 + sti r1, %:loop, %9 + sti r1, %:loop, %17 + sti r1, %:loop, %25 + +loop: + live %66 + fork %:stuff1 + live %66 + fork %:loop + live %66 + fork %:stuff3 + live %66 + zjmp %:stuff1 + +stuff3: + live %66 + ldi %-5, r3, r1 + sti r1, %147, r3 + add r3, r4, r3 + xor r5, r3, r3 + zjmp %:stuff4 + ld %0, r7 + zjmp %:stuff4 + ld %0, r7 + zjmp %:stuff3 + +stuff4: + xor r3, r3, r3 + zjmp %113 diff --git a/test_tool/champion/jumper.s b/test_tool/champion/jumper.s new file mode 100644 index 0000000..fb74114 --- /dev/null +++ b/test_tool/champion/jumper.s @@ -0,0 +1,70 @@ +#debut du mega truc qu'il est trop dur a faire + +.name "Jumper !" +.comment "en fait C forker !" + +gobepc: st r1,:buff + st r6,-4 + ld :buff,r1 +debut: ld %0,r7 + zjmp %:suite + +goboucle0: live %66 + ldi %-5,r3,r1 + sti r1,%-173,r3 + add r3,r4,r3 + xor r5,r3,r6 + zjmp %:finboucle0 + ld %0,r7 + zjmp %:goboucle0 +finboucle0: xor r3,r3,r3 + zjmp %-207 + +buff: st r1,r1 + +suite: sti r1,%:livel,%1 +livel: live %66 + sti r2,%:debut,%-60 + ld %4,r4 + st r2,512 +go: ld %48,r5 + sti r1,%:goboucle0,%1 + sti r1,%:goboucle1,%1 + sti r1,%:live0,%1 + sti r1,%:live1,%1 + sti r1,%:live2,%1 + sti r1,%:live3,%1 + sti r1,%:live4,%1 +live0: live %66 +live1: live %66 +live2: live %66 +live3: live %66 +live4: live %66 + zjmp %:live0 + xor r3,r3,r3 + sti r1,%:livex,%1 +livex: live %66 + fork %:live0 + sti r1,%:boucle,%1 + sti r1,%:boucle,%9 + sti r1,%:boucle,%17 + sti r1,%:boucle,%25 + +boucle: live %66 + fork %:goboucle0 + live %66 + fork %:boucle + live %66 + fork %:goboucle1 + live %66 + zjmp %:goboucle0 +goboucle1: live %66 + ldi %-5,r3,r1 + sti r1,%17,r3 + add r3,r4,r3 + xor r5,r3,r6 + zjmp %:finboucle1 + ld %0,r7 + zjmp %:goboucle1 +finboucle1: xor r3,r3,r3 + zjmp %1 diff --git a/test_tool/champion/justin_bee.s b/test_tool/champion/justin_bee.s new file mode 100644 index 0000000..b88f700 --- /dev/null +++ b/test_tool/champion/justin_bee.s @@ -0,0 +1,125 @@ +.name "L'arene des abeilles" +.comment "Baby, baby, baby, oh !" + +ertuen: + sti r1, %:label1, %1 + sti r1, %:label2, %1 + sti r1, %:label3, %1 + sti r1, %:label4, %1 + sti r1, %:label5, %1 + sti r1, %:label6, %1 + sti r1, %:label7, %1 + sti r1, %:label8, %1 + sti r1, %:label9, %1 + ld %0, r16 + fork %:label1 + +label4: + live %314 + ld %31415926, r2 + ld %0, r16 + fork %:label3 + +label6: + live %314 + ld %0, r16 + fork %:label5 + +label7: + ld %62821932, r5 + ld %0, r16 + fork %:label8 + +label2: + live %314 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + st r2, -450 + zjmp %:label2 + +label1: + live %314 + zjmp %:label1 + +label3: + live %314 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + st r2, 450 + zjmp %:label3 + +label5: + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + live %314 + zjmp %:label6 + +label8: + zjmp %:label9 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + +label9: + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 + st r5, 500 diff --git a/test_tool/champion/littlepuppy.s b/test_tool/champion/littlepuppy.s new file mode 100644 index 0000000..7d1e969 --- /dev/null +++ b/test_tool/champion/littlepuppy.s @@ -0,0 +1,47 @@ +.name "Little Puppy" +.comment "Wang Wang!!!!" + +ld %0, r3 +live %42 +sti r15, %0, r14 +live %42 +sti r15, %0, r14 +live %42 +sti r15, %0, r14 +live %42 +sti r15, %0, r14 +sti r15, %0, r14 +sti r15, %0, r14 +sti r1, %65462, %1 +sti r1, %65455, %15 +sti r1, %65448, %29 +sti r1, %65441, %43 +sti r1, %65434, %57 +sti r1, %65427, %71 +ld %393216, r4 +ld %917504, r12 +ld %1, r11 +ld %6, r10 +live %42 +sti r4, %65381, %1 +add r4, r12, r4 +sub r10, r11, r10 +live %3 +live %4 +live %42 +ldi %8, %65343, r15 +ld %-186, r14 +ld %0, r2 +live %42 +live %42 +ldi %4, %65306, r15 +ld %-190, r14 +ld %0, r2 +live %42 +ldi %12, %65277, r15 +ld %-182, r14 +ld %0, r2 +live %42 +ldi %0, %65248, r15 +ld %-194, r14 +ld %0, r2 diff --git a/test_tool/champion/live.s b/test_tool/champion/live.s new file mode 100644 index 0000000..07d2768 --- /dev/null +++ b/test_tool/champion/live.s @@ -0,0 +1,127 @@ +.name "zdoh" +.comment "w8 for da next one" + +lol: sti r3, -1, %1 + and r3, %0, r3 + +jmp: fork %:start +ld 0, r4 +st r4, -6 +zjmp %:jmp + +start: live %0 +live %42 +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:live +fork %:start +fork %:start +fork %:live +fork %:start +fork %42 +fork %42 +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:wall +fork %:start + +live: +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +live %1 +fork %:wall +fork %:live + +wall: live %42 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-500 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +st r8,-400 +zjmp %:wall diff --git a/test_tool/champion/loose.s b/test_tool/champion/loose.s new file mode 100644 index 0000000..9682a19 --- /dev/null +++ b/test_tool/champion/loose.s @@ -0,0 +1,156 @@ +.name "loose" +.comment "loooose" + +start: + lfork %2048 + sti r1, %:wall, %1 + sti r1, %:loop_live, %1 + sti r1, %:loop_live, %16 + sti r1, %:next_wall, %1 + st r2, -14 + st r2, -13 + +wall: + live %53165 + st r2, -10 + st r2, -15 + st r2, -24 + st r2, -33 + st r2, -42 + st r2, -51 + st r2, -60 + st r2, -69 + st r2, -78 + st r2, -87 + st r2, -96 + st r2, -105 + st r2, -114 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + zjmp %:wall + ld %0, r2 + +loop_live: + live %654664 + ld %0, r2 + fork %:wall + live %354534 + fork %:next_wall + zjmp %:loop_live + +next_wall: + live %65468435 + ld %0, r2 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + st r2, 511 + zjmp %:next_wall + + + +# ld %251883523, r2 +# ld %386101251, r3 +# st r2, 15 +# st r3, -1 + +# st r2, 15 +# st r3, -1 diff --git a/test_tool/champion/mandragore.s b/test_tool/champion/mandragore.s new file mode 100644 index 0000000..c4a1f86 --- /dev/null +++ b/test_tool/champion/mandragore.s @@ -0,0 +1,96 @@ +.name "mandragore" +.comment "you can see me, you can't anymore, you can, you can't !" + +entry: + sti r1, %:fwall, %1 + sti r1, %:petale, %1 + fork %:petale + sti r1, %:spore, %1 + ld %0, r2 + +fwall: + live %569092 + st r2, -24 + st r2, -33 + st r2, -42 + st r2, -51 + st r2, -60 + st r2, -69 + st r2, -78 + st r2, -87 + st r2, -96 + st r2, -105 + st r2, -114 + st r2, -123 + st r2, -132 + st r2, -141 + st r2, -150 + st r2, -159 + st r2, -168 + st r2, -177 + st r2, -186 + st r2, -195 + st r2, -204 + st r2, -213 + st r2, -222 + st r2, -231 + st r2, -240 + st r2, -249 + st r2, -258 + st r2, -267 + st r2, -276 + st r2, -285 + st r2, -294 + st r2, -303 + st r2, -312 + st r2, -321 + st r2, -330 + st r2, -339 + st r2, -348 + st r2, -357 + st r2, -366 + st r2, -375 + st r2, -384 + st r2, -393 + st r2, -402 + st r2, -411 + st r2, -420 + st r2, -429 + st r2, -438 + st r2, -447 + st r2, -456 + st r2, -465 + st r2, -474 + st r2, -483 + st r2, -492 + st r2, -501 + st r2, -510 + ld %0, r2 + zjmp %:fwall + +petale: + live %235894 + fork %:petale + zjmp %:feuille + +spore: + live %265924 + fork %:petale + zjmp %:petale + +second_entry: + sti r1, %:feuille, %1 + ld %1, r3 + ld %512, r5 + ld %1024, r7 + +tige: + add r6, r3, r6 + zjmp %:spore + +feuille: + live %568724 + add r6, r5, r7 + sti r7, r5, r7 + fork %:petale + zjmp %:tige diff --git a/test_tool/champion/maxidef.s b/test_tool/champion/maxidef.s new file mode 100644 index 0000000..7f68551 --- /dev/null +++ b/test_tool/champion/maxidef.s @@ -0,0 +1,75 @@ +.name " maxidef " +.comment " module de defense" + +loop: live %0 + zjmp %8 + +gobepc: st r1,6 # 03 70 01 00 06 5 + live %66 # 01 00 00 00 42 10 + ld -4,r1 # 02 d0 ff fc 01 5 + st r2,-14 # 03 70 02 ff f2 5 + + ld %0,r5 + zjmp %:init + +slide2: zjmp %-492 + +slide1: live %1 + st r2,-385 + st r4,-386 +defm: st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 + st r3,-510 +deflv: live %1 + zjmp %:defm + + +init: ld %57672703,r3 + #ld %57672560,r3 + sti r1,%:loop,%1 + sti r1,%:source,%1 + sti r1,%:source,%9 + sti r1,%:arbre,%1 + sti r1,%:gen21,%1 + sti r1,%:gen22,%1 + sti r1,%:deflv,%1 + sti r1,%:slide1,%1 + ld :deflv,r2 + ldi %:deflv,%4,r4 + ld %0,r5 + +source: live %1 + fork %-5 + live %1 + zjmp %:arbre + +arbre: live %1 + fork %:gen22 + + +gen21: live %1 + zjmp %:slide1 +gen22: live %1 + zjmp %:slide2 + + diff --git a/test_tool/champion/meowluigi.s b/test_tool/champion/meowluigi.s new file mode 100644 index 0000000..1f531c7 --- /dev/null +++ b/test_tool/champion/meowluigi.s @@ -0,0 +1,132 @@ +.name "Meow Luigi" +.comment "Here we meoooooow !" + +shield2: + zjmp %:shield2 + +start: + ld %0, r16 + sti r1, %:mloop, %1 + fork %:protect + +mloop: + live %0 + fork %:main + zjmp %:mloop + +proloop: + live %0 + st r15, -200 + st r15, -201 + st r15, -202 + st r15, -203 + st r15, -204 + st r15, -205 + st r15, -206 + st r15, -207 + +proloop_2: + live %0 + st r15, -213 + st r15, -214 + st r15, -215 + st r15, -216 + st r15, -217 + zjmp %:proloop + +protect2: + live %0 + fork %:proloop + zjmp %:protect2 + +protect: + live %0 + fork %:protect2 + zjmp %:protect + +main: + sti r1, %:replicate, %1 + sti r1, %:mloop, %1 + sti r1, %:main2, %1 + sti r1, %:main3, %1 + sti r1, %:main4, %1 + sti r1, %:replicate_loop, %1 + sti r1, %:protect, %1 + sti r1, %:protect2, %1 + sti r1, %:proloop, %1 + sti r1, %:proloop_2, %1 + sti r1, %:loop, %1 + sti r1, %:loop, %6 + sti r1, %:loop, %11 + sti r1, %:loop, %16 + sti r1, %:loop, %21 + sti r1, %:loop, %26 + sti r1, %:loop, %31 + sti r1, %:loop, %36 + sti r1, %:loop, %41 + sti r1, %:loop, %46 + sti r1, %:loop, %51 + sti r1, %:loop, %56 + sti r1, %:loop, %61 + sti r1, %:loop, %66 + sti r1, %:loop, %71 + sti r1, %:loop, %76 + fork %:protect + +main2: + live %0 + fork %:replicate + +main3: + live %0 + fork %:main4 + zjmp %:main3 + +main4: + live %0 + fork %:loop + zjmp %:main4 + +loop: + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + zjmp %:loop + +replicate: + live %0 + ld %0, r4 + ld %8, r5 + ld %4, r6 + ld %220, r8 + fork %:replicate_loop + ld %4, r4 + +replicate_loop: + live %0 + ldi %:main2, r4, r2 + sti r2, %:replicated, r4 + add r4, r5, r4 + sub r4, r8, r16 + zjmp %:replicated + sub r16, r6, r16 + zjmp %:replicated + ld %0, r16 + zjmp %:replicate_loop + +replicated: + live %0 + diff --git a/test_tool/champion/mise_a_jour_windows95.s b/test_tool/champion/mise_a_jour_windows95.s new file mode 100644 index 0000000..aa68cf1 --- /dev/null +++ b/test_tool/champion/mise_a_jour_windows95.s @@ -0,0 +1,151 @@ +.name "mise_a_jour_windows95" +.comment "Votre version de windows est obselete, votre mémoire vas être mise jour, veuillez ne pas eteindre vore ordinateur au risque de voir toutes vos donnees se faire ecrasées" + +begin: +live %1 +ld %252645135,r2 +ld %57672449,r3 +ld %16777216,r5 +fork %:begin_coromp2 +fork %:lefork +sub r4,r4,r4 +zjmp %:live3 +live %1 +fork %-511 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +st r4, -100 +live3: +live %1 +st r2, -511 +st r2, -510 +st r2, -509 +st r2, -508 +st r2, -507 +st r2, -506 +st r2, -505 +st r2, -504 +st r2, -503 +st r2, -502 +st r2, -501 +st r2, -500 +st r2, -499 +st r2, -498 +st r2, -497 +st r2, -496 +st r2, -495 +st r2, -494 +st r2, -493 +st r2, -492 +live2: +live %1; +st r16, -262 +st r16, -245 +st r16, -244 +st r16, -243 +st r16, -242 +st r16, -240 +st r16, -238 +st r16, -236 +st r16, -234 +st r16, -232 +st r16, -230 +st r16, -228 +st r16, -226 +st r16, -224 +st r16, -222 +st r16, -220 +st r16, -218 +st r16, -216 +st r16, -214 +st r16, -212 +zjmp %:live3 +lefork: +st r1, -212 +st r1, 69 +st r1, -117 +st r16, -15 +st r16, -15 +st r16, -15 +ld %1879245026, r4 +ld %5,r10 +live1: +live %1; +fork %:live3 +live4: +live %1 +fork %:live1 +live %1 +fork %:machinerie +sub r4, r4, r4 +live5: +live %1 +zjmp %-5 +begin_coromp2: +live %1 +ld %495,r08 +ld %16,r11 +ld %-9,r12 +ld %103, r13 +ld %269025348, r14 #ld %369885440, r14 269222120 +ld %0,r10 +fork %:corruption_second +ld %4,r10 +corruption_first: +ld %185139211,r9 +ld %134808042,r7 +ld %134808042,r6 +ld %134808042,r15 +sub r16, r16, r16 +zjmp %:end1 +corruption_second: +ld %190056714,r9 +ld %190056714,r7 +ld %190056202,r6 +ld %190055946,r15 +zjmp %:end1 +end1: +add r13, r12, r13 +sti r15,r10,r13 #102 +live %1 +add r14, r12, r14 +st r14, -109 #-67 +st r13,-121 #-79 +st r14, 9 +and r16, r16, r16 +lancement: +zjmp %258 +live %1 +zjmp %:end1 +machinerie: +fork %:begin_coromp2 +live %0 +add r4, r10, r4 +st r4, 6 +st r3, 200 +and r16, r16, r16 +zjmp %-25 + diff --git a/test_tool/champion/mortel.s b/test_tool/champion/mortel.s new file mode 100644 index 0000000..3e8c509 --- /dev/null +++ b/test_tool/champion/mortel.s @@ -0,0 +1,60 @@ +.name "Booster !" +.comment "Alors la, si ca marche, trop content ! :)" + +boost: ld %12,r2 + ld %3,r3 + ld %4,r4 + ld %5,r7 + + sti r1,%:live1,%1 +live1: live %66 + sti r1,%:fork0,%1 + sti r1,%:fork1,%1 + sti r1,%:fork2,%1 + sti r1,%:wait,%1 + sti r1,%:master,%1 + sti r1,%:numero1,%1 + sti r1,%:numero2,%1 + + sti r1,%:live,%-4 + ldi %:live,%-2,r6 +fork0: live %66 + fork %:numero1 +fork1: live %66 + fork %:numero2 +fork2: live %66 +# fork %:fork0 + +master: live %66 + ld %0,r3 + ld %16777216,r6 +# ldi %:master,%0,r6 + ld %0,r5 + zjmp %:ready + +numero1: live %66 + ld %3,r3 + ld %68436,r2 +# ldi %:live,%-2,r6 + ld %0,r5 + zjmp %:ready + +numero2: live %66 + ld %6,r3 + ld %1409680135,r6 +# ldi %:tampon,%1,r6 + ld %0,r5 + zjmp %:ready + +tampon: sti r6,r3,r5 +live: sti r1,r5,r5 + +ready: sti r6,r3,%:ecriture + +wait: live %66 + zjmp %:ecriture + +ecriture: zjmp %:wait + + + diff --git a/test_tool/champion/overwatch.s b/test_tool/champion/overwatch.s new file mode 100644 index 0000000..e883c4e --- /dev/null +++ b/test_tool/champion/overwatch.s @@ -0,0 +1,178 @@ +# ------------------------------------------------------------------------------ +# By: pzarmehr ---------------------------------------- +# ------------------------------------------------------------------------------ + +.name "Overwatch" +.comment "Reinhardt, Pharah, Mercy, Mei, Symmetra & Torbjorn" + +# ------------------------------------------------------------------------------ +# Defend objective A ----------------------------------------------------------- +# ------------------------------------------------------------------------------ + + ld %1, r16 + st r1, 6 +mei: + live %0 + zjmp %:mei + st r15, -12 + st r16, -22 + +# ------------------------------------------------------------------------------ +# Escort the payload ----------------------------------------------------------- +# ------------------------------------------------------------------------------ + + fork %:reinhardt +pharah: + st r1, 6 + live %0 + fork %:symmetra + st r1, 6 + live %0 + ld %589824, r13 # r13 = 0x00090000 (0x00 zjmp %0) + ld %8, r14 + ld %-511, r15 + ld %0, r16 + zjmp %:payload +payload: + ld %190057742, r11 # r11 = 0x0b540d0e (sti r13 r14 ..) + ld %269090402, r12 # r12 = 0x1009fe62 (.. r16 zjmp -414) + ld %0, r16 + st r11, -501 #-491 + st r12, -502 #-492 + #st r1, 6 + #live %0 + zjmp %-511 +reinhardt: + st r1, 6 + live %0 + fork %:mercy + st r1, 6 + live %0 + ld %190057743, r13 # r13 = 0x0b540d0f (sti r13 r15 ..) + ld %-409, r14 + ld %-21, r15 + ld %0, r16 + zjmp %:payload +mercy: + st r1, 6 + live %0 + ld %269090790, r13 # r13 = 0x1009ffe6 (.. r16 zjmp %-26) + ld %-405, r14 + ld %-17, r15 + ld %0, r16 + zjmp %:payload + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + + lfork %0 # . B@M@B@MMM@B@B@B@MMM@@@M@B + lfork %0 # @B@B.i@MBB@B@B@@BM@::B@B@ + lfork %0 # B@@@ .B@B.:@B@ :B@B @B@O + lfork %0 # :0 r@B@ B@@ .@B@: P: + lfork %0 # vMB :@B@ :BO7 + lfork %0 # ,B@B + lfork %0 # + lfork %0 # :PB@Bk: + lfork %0 # ,jB@@B@B@B@BBL. + lfork %0 # 7G@B@B@BMMMMMB@B@B@Nr + lfork %0 # :kB@B@@@MMOMOMOMOMMMM@B@B@B1, + lfork %0 # :5@B@B@B@BBMMOMOMOMOMOMOMM@@@B@B@BBu. + lfork %0 # 70@@@B@B@B@BXBBOMOMOMOMOMOMMBMPB@B@B@B@B@Nr + lfork %0 # G@@@BJ iB@B@@ OBMOMOMOMOMOMOM@2 B@B@B. EB@B@S + lfork %0 # @@BM@GJBU. iSuB@OMOMOMOMOMOMM@OU1: .kBLM@M@B@ + lfork %0 # B@MMB@B 7@BBMMOMOMOMOMOBB@: B@BMM@B + lfork %0 # @@@B@B 7@@@MMOMOMOMM@B@: @@B@B@ + lfork %0 # @@OLB. BNB@MMOMOMM@BEB rBjM@B + lfork %0 # @@ @ M OBOMOMM@q M .@ @@ + lfork %0 # @@OvB B:u@MMOMOMMBJiB .BvM@B + lfork %0 # @B@B@J 0@B@MMOMOMOMB@B@u q@@@B@ + lfork %0 # B@MBB@v G@@BMMMMMMMMMMMBB@5 F@BMM@B + lfork %0 # @BBM@BPNi LMEB@OMMMM@B@MMOMM@BZM7 rEqB@MBB@ + lfork %0 # B@@@BM B@B@B qBMOMB@B@B@BMOMBL B@B@B @B@B@M + lfork %0 # J@@@@PB@B@B@B7G@OMBB. ,@MMM@qLB@B@@@BqB@BBv + lfork %0 # iGB@,i0@M@B@MMO@E : M@OMM@@@B@Pii@@N: + lfork %0 # . B@M@B@MMM@B@B@B@MMM@@@M@B + lfork %0 # @B@B.i@MBB@B@B@@BM@::B@B@ + lfork %0 # B@@@ .B@B.:@B@ :B@B @B@O + lfork %0 # :0 r@B@ B@@ .@B@: P: + lfork %0 # vMB :@B@ :BO7 + lfork %0 # ,B@B + lfork %0 # + lfork %0 # :PB@Bk: + lfork %0 # ,jB@@B@B@B@BBL. + lfork %0 # 7G@B@B@BMMMMMB@B@B@Nr + lfork %0 # :kB@B@@@MMOMOMOMOMMMM@B@B@B1, + lfork %0 # :5@B@B@B@BBMMOMOMOMOMOMOMM@@@B@B@BBu. + lfork %0 # 70@@@B@B@B@BXBBOMOMOMOMOMOMMBMPB@B@B@B@B@Nr + lfork %0 # G@@@BJ iB@B@@ OBMOMOMOMOMOMOM@2 B@B@B. EB@B@S + lfork %0 # @@BM@GJBU. iSuB@OMOMOMOMOMOMM@OU1: .kBLM@M@B@ + lfork %0 # B@MMB@B 7@BBMMOMOMOMOMOBB@: B@BMM@B + lfork %0 # @@@B@B 7@@@MMOMOMOMM@B@: @@B@B@ + lfork %0 # @@OLB. BNB@MMOMOMM@BEB rBjM@B + lfork %0 # @@ @ M OBOMOMM@q M .@ @@ + lfork %0 # @@OvB B:u@MMOMOMMBJiB .BvM@B + lfork %0 # @B@B@J 0@B@MMOMOMOMB@B@u q@@@B@ + lfork %0 # B@MBB@v G@@BMMMMMMMMMMMBB@5 F@BMM@B + lfork %0 # @BBM@BPNi LMEB@OMMMM@B@MMOMM@BZM7 rEqB@MBB@ + lfork %0 # B@@@BM B@B@B qBMOMB@B@B@BMOMBL B@B@B @B@B@M + lfork %0 # J@@@@PB@B@B@B7G@OMBB. ,@MMM@qLB@B@@@BqB@BBv + lfork %0 # iGB@,i0@M@B@MMO@E : M@OMM@@@B@Pii@@N: + lfork %0 # . B@M@B@MMM@B@B@B@MMM@@@M@B + lfork %0 # @B@B.i@MBB@B@B@@BM@::B@B@ + lfork %0 # B@@@ .B@B.:@B@ :B@B @B@O + lfork %0 # :0 r@B@ B@@ .@B@: P: + lfork %0 # vMB :@B@ :BO7 + lfork %0 # ,B@B + lfork %0 # + lfork %0 # :PB@Bk: + lfork %0 # ,jB@@B@B@B@BBL. + lfork %0 # 7G@B@B@BMMMMMB@B@B@Nr + lfork %0 # :kB@B@@@MMOMOMOMOMMMM@B@B@B1, + lfork %0 # :5@B@B@B@BBMMOMOMOMOMOMOMM@@@B@B@BBu. + lfork %0 # 70@@@B@B@B@BXBBOMOMOMOMOMOMMBMPB@B@B@B@B@Nr + +# ------------------------------------------------------------------------------ +# Capture objective B ---------------------------------------------------------- +# ------------------------------------------------------------------------------ + +symmetra: + ldi %:mei, %0, r1 # r1 = 0x01?????? (live ?? ?? ?? ..) + ldi %:mei, %4, r2 # r2 = 0x??09fffb (..?? zjmp %-5) + ld %196608, r3 # r3 = 0x00030000 + add r2, r3, r3 # r3 = 0x??0cfffb (..?? fork %-5) +torbjorn: + ld %57671937, r16 # r16 = 0x03700101 (st r1 0x01 ..) + st r16, 511 + ld %4278415363, r16 # r16 = 0xff037003 (.. 0xff st r3 ..) + st r16, 503 + ld %33424240, r16 # r16 = 0x01fe0370 (.. 0x01fe st ..) + st r16, 495 + ld %16907523, r16 # r16 = 0x0101fd03 (.. r1 0x01fd st..) + st r16, 487 + ld %1879245308, r16 # r16 = 0x700301fc (.. r3 0x01fc) + st r16, 479 + ld %57671937, r16 # r16 = 0x03700101 (st r1 0x01 ..) + st r16, 471 + ld %4211306498, r16 # r16 = 0xfb037002 (.. 0xfb st r2..) + st r16, 463 + ld %33162096, r16 # r16 = 0x01fa0370 (.. 0x01fa st ..) + st r16, 455 + ld %285205251, r16 # r16 = 0x10ffe303 (.. r16 0xffe3 st ..) + st r16, 447 + ld %1880162275, r16 # r16 = 0x7010ffe3 (.. r16 0xffe3) + st r16, 439 + ld %57676031, r16 # r16 = 0x037010ff (st r16 0xff ..) + st r16, 431 + ld %3808653328, r16 # r16 = 0xe3037010 (.. 0xe3 st r16..) + st r16, 423 + ld %4293067632, r16 # r16 = 0xffe30370 (.. 0xffe3 st ..) + st r16, 415 + ld %285205251, r16 # r16 = 0x10ffe303 (.. r16 0xffe3 st ..) + st r16, 407 + ld %1880162275, r16 # r16 = 0x7010ffe3 (.. r16 0xffe3) + st r16, 399 + ld %151110400, r16 # r16 = 0x0901c300 (zjmp %451) + st r16, 391 + ld %0, r16 + zjmp %319 diff --git a/test_tool/champion/pdf.s b/test_tool/champion/pdf.s new file mode 100644 index 0000000..c7a63ee --- /dev/null +++ b/test_tool/champion/pdf.s @@ -0,0 +1,5 @@ +.name "some name" +.comment "some comments" + +and %6, %:test, r7 +test: and %3, %7, r1 diff --git a/test_tool/champion/run_Kitty_RUN.s b/test_tool/champion/run_Kitty_RUN.s new file mode 100644 index 0000000..6b5880e --- /dev/null +++ b/test_tool/champion/run_Kitty_RUN.s @@ -0,0 +1,104 @@ +.name "run Kitty RUN" +.comment "Jan-ken-pon (じゃんけんぽん) +Ce qui reste éternellement incompréhensible dans la nature, c’est qu’on puisse la comprendre. +Celui qui ne peut plus éprouver ni étonnement ni surprise, est pour ainsi dire mort : ses yeux sont éteints. – Albert Einstein +Si vous voulez trouver les secrets de l'univers pensez en termes de fréquences, d'énergies et de vibrations. - Nikola Tesla +Pas la pour etre ici. - Silicon Val[list] +Dieu est la plus belle invention. +Tapis dans l'ombre je veille. - Minou +J'te KHABBAR" + +gomugomu: + fork %:gear_second + live %252645135 + fork %:gear_fourth + ld %190056971, r9 + ld %190057744, r10 + ld %506, r11 + ld %139725068, r13 + ld %505, r16 + ld %252645135, r2 + ld %511, r15 + st r2, r5 + st r2, r3 + st r2, r6 + st r2, r4 + st r2, r7 + st r15, r14 + st r2, r1 + st r15, r8 + ld %0, r12 + zjmp %:j_te_khabbar +gear_fourth: + st r1, 6 + live %42 + ld %1879178767, r1 + st r1, -16 + ld %201916917, r9 + ld %201916916, r10 + ld %510, r11 + ld %151783691, r13 + ld %507, r16 + ld %190055695, r2 + ld %5, r15 + ld %190055183, r5 + ld %190055951, r3 + ld %190055439, r6 + ld %190056206, r4 + ld %160370433, r7 + ld %10, r14 + ld %1409421068, r1 + ld %14, r8 + xor r12, r12, r12 + zjmp %:haki_of_kings +gear_second: + live %252645135 + fork %:gear_third + ld %201916917, r9 + ld %201916916, r10 + ld %510, r11 + ld %151737348, r13 + ld %509, r16 + ld %34540555, r2 + ld %2, r15 + ld %84872203, r5 + ld %51317771, r3 + ld %101649419, r6 + ld %68094987, r4 + ld %190054664, r7 + ld %5, r14 + ld 23, r1 + ld %11, r8 + xor r12, r12, r12 + zjmp %:haki_of_kings + live %42 + sti r15, r1, r1 +gear_third: + st r1, -9 + ld %1879114239, r1 + st r1, -11 + st r15, r15 + st r15, r15 + ld %190056971, r9 + ld %190057744, r10 + ld %506, r11 + ld %1409552140, r13 + ld %511, r16 + ld %1409617676, r2 + ld %6, r15 + ld %1409486604, r5 + ld %1409683212, r3 + ld %1409552140, r6 + ld %1409748492, r4 + ld %1409353740, r7 + st r15, r14 + ld %33554431, r1 + ld %8, r8 + ld %0, r12 + zjmp %:j_te_khabbar +haki_of_kings: + st r9, 20 + zjmp %11 +j_te_khabbar: + st r9, 8 + zjmp %3 diff --git a/test_tool/champion/salamahenagalabadoun.s b/test_tool/champion/salamahenagalabadoun.s new file mode 100644 index 0000000..cf394af --- /dev/null +++ b/test_tool/champion/salamahenagalabadoun.s @@ -0,0 +1,25 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# salamahenagalabadoun.s :+: :+: :+: # +# +:+ +:+ +:+ # +# By: gjestin +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2014/02/21 22:08:42 by gjestin #+# #+# # +# Updated: 2014/02/25 21:02:17 by gjestin ### ########.fr # +# # +# **************************************************************************** # + +.name "salamahenagalabadoun" +.comment "sussKBO hin hin" + +ld 32, r3 +ld 4, r4 +ld 190, r5 +st r1, 6 +loop: +live %666 +sti r5, r5, r3 +add r3, r4, r5 +ld %0, r16 +zjmp %:loop diff --git a/test_tool/champion/skynet.s b/test_tool/champion/skynet.s new file mode 100644 index 0000000..f566927 --- /dev/null +++ b/test_tool/champion/skynet.s @@ -0,0 +1,151 @@ +.name "skynet" +.comment "j'aime les chats" + +setlive: + st r1, 7 + ld %323, r1 + ld %0, r2 + st r2, :setlive + sti r2, %:setlive, %1 + sti r1, %:wall, %1 + sti r1, %:wall, %1 + sti r1, %:wall2, %1 + sti r1, %:live, %1 + sti r1, %:live1, %1 + sti r1, %:loop, %1 + +wall_prep: + ld %0, r2 + ld %0, r16 + +fork %:wall + +live1: + live %12345 + +fork %:wall2 +zjmp %:loop + +wall: + live %12345 + st r2, -37 + st r2, -46 + st r2, -55 + st r2, -64 + st r2, -73 + st r2, -82 + st r2, -91 + st r2, -100 + st r2, -109 + st r2, -118 + st r2, -127 + st r2, -136 + st r2, -145 + st r2, -154 + st r2, -163 + st r2, -172 + st r2, -181 + st r2, -190 + st r2, -199 + st r2, -208 + st r2, -217 + st r2, -226 + st r2, -235 + st r2, -244 + st r2, -253 + st r2, -262 + st r2, -271 + st r2, -280 + st r2, -289 + st r2, -298 + st r2, -307 + st r2, -316 + st r2, -325 + st r2, -334 + st r2, -343 + st r2, -352 + st r2, -361 + st r2, -370 + st r2, -379 + st r2, -388 + st r2, -397 + st r2, -406 + st r2, -415 + st r2, -424 + st r2, -433 + st r2, -442 + st r2, -451 + st r2, -460 + st r2, -469 + st r2, -478 + st r2, -487 + st r2, -496 + st r2, -505 + st r2, -511 + zjmp %:wall + +loop: + live %12345 + fork %:live +zjmp %:loop + +live: + live %12345 +zjmp %:live + +wall2: + live %12345 + st r2, 273 + st r2, 272 + st r2, 271 + st r2, 270 + st r2, 269 + st r2, 268 + st r2, 267 + st r2, 266 + st r2, 265 + st r2, 264 + st r2, 263 + st r2, 262 + st r2, 261 + st r2, 260 + st r2, 259 + st r2, 258 + st r2, 257 + st r2, 256 + st r2, 255 + st r2, 254 + st r2, 253 + st r2, 252 + st r2, 251 + st r2, 250 + st r2, 249 + st r2, 248 + st r2, 247 + st r2, 246 + st r2, 245 + st r2, 244 + st r2, 243 + st r2, 242 + st r2, 241 + st r2, 240 + st r2, 239 + st r2, 238 + st r2, 237 + st r2, 236 + st r2, 235 + st r2, 234 + st r2, 233 + st r2, 232 + st r2, 231 + st r2, 230 + st r2, 229 + st r2, 228 + st r2, 227 + st r2, 226 + st r2, 225 + st r2, 223 + st r2, 222 + st r2, 221 + st r2, 220 + zjmp %:wall2 diff --git a/test_tool/champion/slider2.s b/test_tool/champion/slider2.s new file mode 100644 index 0000000..636f4b8 --- /dev/null +++ b/test_tool/champion/slider2.s @@ -0,0 +1,116 @@ +.name "Sliders" +.comment "And the winner is ..." + + sti r1,%:leon_live,%1 + sti r1,%:fork1,%1 + sti r1,%:fork2,%1 + sti r1,%:roger_live,%1 + sti r1,%:torp,%1 + sti r1,%:torp_,%1 + sti r1,%:fork3,%1 + sti r1,%:fork_live,%1 + sti r1,%:live,%1 + sti r1,%:live,%6 + sti r1,%:live,%11 + sti r1,%:live,%16 + sti r1,%:live,%21 + sti r1,%:live,%26 + sti r1,%:live,%31 + sti r1,%:live,%36 + sti r1,%:live,%41 + sti r1,%:live,%46 + sti r1,%:live,%51 + sti r1,%:live,%56 + sti r1,%:live,%61 + sti r1,%:live,%66 + sti r1,%:live,%71 + sti r1,%:live,%76 + sti r1,%:live,%81 + sti r1,%:live,%86 + sti r1,%:live,%91 + sti r1,%:live,%96 + sti r1,%:live,%101 + sti r1,%:live,%106 + sti r1,%:live,%111 + sti r1,%:live,%116 + ld %48,r14 + ld %4,r4 + ld %48,r6 + ld %48,r13 + ld %:leon_ecrit,r8 + ld %330,r9 + add r8,r9,r8 + ld %:roger,r12 + sub r12,r8,r12 +fork1: live %42 + fork %:fork_live +fork2: live %42 + fork %:leon +fork3: live %42 + fork %:roger + ld %0,r15 + zjmp %:torp +leon: ld %0,r2 +leon_live: live %42 + ldi %:leon,r2,r3 + sti r3,r8,r2 + add r2,r4,r2 + xor r13,r2,r7 + zjmp %415 + ld %0,r15 +leon_ecrit: zjmp %:leon_live +roger: ld %0,r10 +roger_live: live %42 + ldi %:roger,r10,r11 + sti r11,r12,r10 + add r10,r4,r10 + xor r6,r10,r7 + zjmp %-361 + ld %0,r15 +roger_ecrit: zjmp %:roger_live +torp: live %42 + fork %:leon +torp_: live %42 + fork %:roger + ld %0,r15 + zjmp %:torp +live: live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + live %42 + zjmp %:live +fork_live: live %42 + fork %:live + ld %0,r15 + zjmp %:fork_live + + + + + + + + + + + diff --git a/test_tool/champion/terminator.s b/test_tool/champion/terminator.s new file mode 100644 index 0000000..f33a095 --- /dev/null +++ b/test_tool/champion/terminator.s @@ -0,0 +1,57 @@ +.name "terminator" +.comment "Hasta la vista, baby!" + +live: + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + live %1 + fork %-10 + +protection: + zjmp %:live + ld %25, r4 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + st r4, -500 + zjmp %:protection diff --git a/test_tool/champion/test_header.s b/test_tool/champion/test_header.s new file mode 100644 index 0000000..b4b1053 --- /dev/null +++ b/test_tool/champion/test_header.s @@ -0,0 +1,4 @@ +.name "test_header" +.comment "test" + +live %66 diff --git a/test_tool/champion/toto.s b/test_tool/champion/toto.s new file mode 100644 index 0000000..4dabcbd --- /dev/null +++ b/test_tool/champion/toto.s @@ -0,0 +1,78 @@ +# +# Warrior qui a gagne +# l'annee derniere +# VOALA +# +.name "Celebration Funebre v0.99pl42" +.comment "Jour J" + + ld %0,r3 +label: zjmp %:avantdebt + zjmp %0 # pour eviter ecrasement + # de l'instruction suivante +code: live %42 # 5 + sti r15,%0,r14 # 6 + zjmp %-200 # 3 + live %42 # 5 + sti r15,%0,r14 # 6 + zjmp %-200 # 3 + live %42 # 5 + sti r15,%0,r14 # 6 + zjmp %-200 # 3 + live %42 # 5 + sti r15,%0,r14 # 6 + zjmp %-200 # 3 + sti r15,%0,r14 # 6 + zjmp %-200 # 3 + sti r15,%0,r14 # 6 + zjmp %-200 + +avantdebt: sti r1,%:code,%1 # # mets a jour le live + sti r1,%:code,%15 # # mets a jour le live + sti r1,%:code,%29 # # mets a jour le live + sti r1,%:code,%43 # # mets a jour le live + sti r1,%:code,%57 # # mets a jour le live + sti r1,%:code,%71 # # mets a jour le live +init: ld %393216,r4 #7 + ld %917504,r12 #7 + ld %1,r11 #7 + ld %6,r10 #7 +debt: live %42 #5 + sti r4,%:label,%1 #7 + add r4,r12,r4 #5 + sub r10,r11,r10 #5 + zjmp %:init #3 + fork %:debt + live %3 +level0: fork %:level10 +level11: live %4 + fork %:level111 + +level110: live %42 + ldi %8,%:code,r15 #set des octets 9-12 + ld %-186,r14 #=$A-6-8 + ld %0,r2 + zjmp %:label + +level10: live %42 + fork %:level100 +level101: live %42 + ldi %4,%:code,r15 #set des octets 5-8 + ld %-190,r14 #=$A-6-4 + ld %0,r2 + zjmp %:label + +level111: live %42 + ldi %12,%:code,r15 #set des octets 13-16 + ld %-182,r14 # $A -6 -12 + ld %0,r2 + zjmp %:label + +level100: live %42 + ldi %0,%:code,r15 #set des octets 1-4 + ld %-194,r14 # $A -6 -0 + ld %0,r2 # + zjmp %:label # + + + diff --git a/test_tool/champion/turtle.s b/test_tool/champion/turtle.s new file mode 100644 index 0000000..42da39d --- /dev/null +++ b/test_tool/champion/turtle.s @@ -0,0 +1,98 @@ +.name "turtle" +.comment "TURTLE FFS U LAMA" + +entry: + sti r1, %:zork, %1 + sti r1, %:ardef, %1 + sti r1, %:avdef, %1 + sti r1, %:entry_l1, %1 + ld %0, r16 + fork %:zork + +entry_l1: + live %42 + ld %439025904, r2 + ld %0, r16 + fork %:avdef + +################################################################################ + +ardef: + live %42 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + st r2, -400 + zjmp %:ardef + +################################################################################ + +zork: + live %42 + zjmp %:zork + +################################################################################ + +avdef: + live %42 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + st r2, 400 + zjmp %:avdef + +################################################################################ diff --git a/test_tool/champion/ultima.s b/test_tool/champion/ultima.s new file mode 100644 index 0000000..41ac579 --- /dev/null +++ b/test_tool/champion/ultima.s @@ -0,0 +1,229 @@ +.name "Ultima" +.comment "Je suis l'Alpha +Je suis Le destructeur +Je suis Omega +Je suis La raison de ta peur + +Ta puissance est ma puissance +Ton pouvoir est sans défence +Ma seule crainte est ta faiblesse +De mourrir d'une maladresse + +Les plus puissants combattants +S'ront détruits d'un coup de dent +Les plus vifs et combatifs +S'ront finis d'un coup de griffe + +Je suis un puits sans fond +Qui t'aspire dans ses tréfonds +La plaie sanglante et cruelle +Qui déchire tes organes frèles + +La haine pur qui se diffuse +Sur ton code et le déturit +Prétrifié comme la méduse +Tu vivras son agonie + +un poison ronge ton âme +L'obscurité noie tes flammes +Une mort glacée se répends +Le long d' tes veines et ton sang + +Mais déjà tu m'appartients +Ton destin est dans mes mains +Pleur de rage, pleur de douleur +Noie tes larmes dans ton aigreur + +Que mes attaques te pénêtre +A moi tu ne peux que te soumettre +Qu' ma puissance abime ton etre +Que j' te brise, petite soubrette + +Mon pouvoir aspire tes forces +Aspire ton ame, et se renforce +Ma présence est ta souffrance +Ma raison d'etre ta défaite + +Imposer, gifler tes tactiques +Abuser d' ton code heuristique +Dénuder ton code d'ses méthodes +Déchirer toutes tes ruses informes + +Contraindre ton code aux pires outrages +Forcer, détruire tes stratégies +Tromper, corrompre tes algorithmes +Vicier, souiller tes procédés + +Jusqu'a mon souffle je suis letal +Meme mon regard détruit ton âme +T'emporte au vent comme une pétale +Puis te consumme un vrai lance flammes + +Tu viens pour ton exécution +Pas un combat une pendaison +Pas un proces, une mise a mort +Toi le taureau, moi l'matador + +A tout jamais le championnat +Lesté de mon ADN, changera +Inséminé dans l'corps de mes proies +Etrange héritage sortira +Nées du tréfond de tes abats + +Mais viens ici, entre mes griffes +Entre mes cros, t'ecorcher vif +Pour me repaitre de tes lambeaux +Pour te détruire en quelques mots + +Abandonne tout idée osée, +de m'échapper, de me défier +car les roles sont deja figées. +Je Suis le Prédateur, tu est Ma Proie" + + +begin_coromp2: + st r1, :stock + ld %151068160,r1 + st r1, :begin_coromp2 + ld %506,r2 + ld %100,r3 + live %0 + fork %:corruption_second2 + +corruption_first2: + ld %34144757,r4 + st r4,r5 + ld %50921567,r6 + st r6,r7 + st r6,r12 + st r6,r13 + st r6,r14 + st r6,r15 + st r4,r8 + st r4,r9 + st r4,r10 + ld %167685120,r11 + ld %4,r1 + sub r16, r16, r16 + zjmp %:end2 + +corruption_second2: + ld %190055681,r4 + ld %190055937,r5 + ld %190057473,r6 + ld %190057729,r12 + ld %190057985,r13 + ld %190058241,r14 + ld %190056193,r15 + ld %190056449,r7 + ld %190056705,r8 + ld %190056961,r9 + ld %151087617,r10 + ld %151035392,r11 + ld %0, r1 + + zjmp %:end2 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + aff r2 + +stock: + aff r2 + live %0 + live %0 + live %0 + +rebond: + zjmp %:atterissage + aff r2 + aff r2 + aff r2 + aff r2 + live %0 + live %0 + live %0 + +atterissage: + ld :stock,r5 + st r5,6 + +llll: + live %1 + st r16, :begin_coromp2 + ld %0,r6 + ld %0,r7 + ld %0,r8 + ld %0,r11 + ld %0,r12 + ld %0,r13 + ld %0,r14 + ld %0,r15 + and r1,r1,r16 + zjmp %:part2 + +part1: + fork %:part3 + ld %190055684, r5 + ld %190055684, r9 + ld %190056708, r10 + ld %10, r4 + sub r16, r16, r16 + zjmp %:end + +part2: + fork %:part4 + ld %84149761, r5 + ld %151259145, r10 + st r5, r9 + ld %12, r4 + sub r16, r16, r16 + zjmp %:end + +part3: + ld %0000, r7 + st r5, r9 + ld %32768000, r10 + aff r1 + ld %16, r4 + sub r16, r16, r16 + zjmp %:end + +part4: + live %1 + ld %151587073, r5 + st r5, r9 + st r9, r10 + ld %511, r4 + sub r16, r16, r16 + zjmp %:end + +end: + ld %495, r8 + add r16, r16, r16 + sti r10, r8, r4 + zjmp %500 + aff r4 + aff r4 + aff r4 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + live %0 + +end2: + sti r4,r1,%505 + zjmp %499 + +#deux jump a 500 diff --git a/test_tool/champion/ultimate-surrender.s b/test_tool/champion/ultimate-surrender.s new file mode 100644 index 0000000..dbaa116 --- /dev/null +++ b/test_tool/champion/ultimate-surrender.s @@ -0,0 +1,433 @@ +.name "Ultimate Surrender" +.comment "Y'en a qui vont prendre cher... :)" + +ld %0, r2 +zjmp %:var170 +var1: +lfork %:var1 +var2: +lfork %:var1 +var3: +lfork %:var1 +var4: +lfork %:var1 +var5: +lfork %:var1 +var6: +lfork %:var1 +var7: +lfork %:var1 +var8: +lfork %:var1 +var9: +lfork %:var1 +var10: +lfork %:var1 +var11: +lfork %:var1 +var12: +lfork %:var1 +var13: +lfork %:var1 +var14: +lfork %:var1 +var15: +lfork %:var1 +var16: +lfork %:var1 +var17: +lfork %:var1 +var18: +lfork %:var1 +var19: +lfork %:var1 +var20: +lfork %:var1 +var21: +lfork %:var1 +var22: +lfork %:var1 +var23: +lfork %:var1 +var24: +lfork %:var1 +var25: +lfork %:var1 +var26: +lfork %:var1 +var27: +lfork %:var1 +var28: +lfork %:var1 +var29: +lfork %:var1 +var30: +lfork %:var1 +var31: +lfork %:var1 +var32: +lfork %:var1 +var33: +lfork %:var1 +var34: +lfork %:var1 +var35: +lfork %:var1 +var36: +lfork %:var1 +var37: +lfork %:var1 +var38: +lfork %:var1 +var39: +lfork %:var1 +var40: +lfork %:var1 +var41: +lfork %:var1 +var42: +lfork %:var1 +var43: +lfork %:var1 +var44: +lfork %:var1 +var45: +lfork %:var1 +var46: +lfork %:var1 +var47: +lfork %:var1 +var48: +lfork %:var1 +var49: +lfork %:var1 +var50: +lfork %:var1 +var51: +lfork %:var1 +var52: +lfork %:var1 +var53: +lfork %:var1 +var54: +lfork %:var1 +var55: +lfork %:var1 +var56: +lfork %:var1 +var57: +lfork %:var1 +var58: +lfork %:var1 +var59: +lfork %:var1 +var60: +lfork %:var1 +var61: +lfork %:var1 +var62: +lfork %:var1 +var63: +lfork %:var1 +var64: +lfork %:var1 +var65: +lfork %:var1 +var66: +lfork %:var1 +var67: +lfork %:var1 +var68: +lfork %:var1 +var69: +lfork %:var1 +var70: +lfork %:var1 +var71: +lfork %:var1 +var72: +lfork %:var1 +var73: +lfork %:var1 +var74: +lfork %:var1 +var75: +lfork %:var1 +var76: +lfork %:var1 +var77: +lfork %:var1 +var78: +lfork %:var1 +var79: +lfork %:var1 +var80: +lfork %:var1 +var81: +lfork %:var1 +var82: +lfork %:var1 +var83: +lfork %:var1 +var84: +lfork %:var1 +var85: +lfork %:var1 +var86: +lfork %:var1 +var87: +lfork %:var1 +var88: +lfork %:var1 +var89: +lfork %:var1 +var90: +lfork %:var1 +var91: +lfork %:var1 +var92: +lfork %:var1 +var93: +lfork %:var1 +var94: +lfork %:var1 +var95: +lfork %:var1 +var96: +lfork %:var1 +var97: +lfork %:var1 +var98: +lfork %:var1 +var99: +lfork %:var1 +var100: +lfork %:var1 +var101: +lfork %:var1 +var102: +lfork %:var1 +var103: +lfork %:var1 +var104: +lfork %:var1 +var105: +lfork %:var1 +var106: +lfork %:var1 +var107: +lfork %:var1 +var108: +lfork %:var1 +var109: +lfork %:var1 +var110: +lfork %:var1 +var111: +lfork %:var1 +var112: +lfork %:var1 +var113: +lfork %:var1 +var114: +lfork %:var1 +var115: +lfork %:var1 +var116: +lfork %:var1 +var117: +lfork %:var1 +var118: +lfork %:var1 +var119: +lfork %:var1 +var120: +lfork %:var1 +var121: +lfork %:var1 +var122: +lfork %:var1 +var123: +lfork %:var1 +var124: +lfork %:var1 +var125: +lfork %:var1 +var126: +lfork %:var1 +var127: +lfork %:var1 +var128: +lfork %:var1 +var129: +lfork %:var1 +var130: +lfork %:var1 +var131: +lfork %:var1 +var132: +lfork %:var1 +var133: +lfork %:var1 +var134: +lfork %:var1 +var135: +lfork %:var1 +var136: +lfork %:var1 +var137: +lfork %:var1 +var138: +lfork %:var1 +var139: +lfork %:var1 +var140: +lfork %:var1 +var141: +lfork %:var1 +var142: +lfork %:var1 +var143: +lfork %:var1 +var144: +lfork %:var1 +var145: +lfork %:var1 +var146: +lfork %:var1 +var147: +lfork %:var1 +var148: +lfork %:var1 +var149: +lfork %:var1 +var150: +lfork %:var1 +var151: +lfork %:var1 +var152: +lfork %:var1 +var153: +lfork %:var1 +var154: +lfork %:var1 +var155: +lfork %:var1 +var156: +lfork %:var1 +var157: +lfork %:var1 +var158: +lfork %:var1 +var159: +lfork %:var1 +var160: +lfork %:var1 +var161: +lfork %:var1 +var162: +lfork %:var1 +var163: +lfork %:var1 +var164: +lfork %:var1 +var165: +lfork %:var1 +var166: +lfork %:var1 +var167: +lfork %:var1 +var168: +var169: +var170: +st r4, -503 +zjmp %:var225 +var171: +lfork %:var1 +var172: +lfork %:var1 +var173: +lfork %:var1 +var174: +lfork %:var1 +var175: +lfork %:var1 +var176: +lfork %:var1 +var177: +lfork %:var1 +var178: +lfork %:var1 +var179: +lfork %:var1 +var180: +lfork %:var1 +var181: +lfork %:var1 +var182: +lfork %:var1 +var183: +lfork %:var1 +var184: +lfork %:var1 +var185: +lfork %:var1 +var186: +lfork %:var1 +var187: +lfork %:var1 +var188: +lfork %:var1 +var189: +lfork %:var1 +var190: +lfork %:var1 +var191: +lfork %:var1 +var192: +lfork %:var1 +var193: +lfork %:var1 +var194: +lfork %:var1 +var195: +lfork %:var1 +var196: +lfork %:var1 +var197: +lfork %:var1 +var198: +lfork %:var1 +var199: +lfork %:var1 +var200: +lfork %:var1 +var201: +lfork %:var1 +var202: +lfork %:var1 +var203: +lfork %:var1 +var204: +lfork %:var1 +var205: +lfork %:var1 +var206: +lfork %:var1 +var207: +lfork %:var1 +var208: +var209: +var210: +var211: +var225: +st r1, 6 +live %0 +ld %57672449, r4 ;ld %4278780395, r5 +ld %4278780410, r5 +ld %151088384, r3 ;st r4, 511 +st r4, 511 +st r5, 510 + ;; st r3, 509 +ld %0, r2 +zjmp %494 diff --git a/test_tool/champion/youforkmytralala.s b/test_tool/champion/youforkmytralala.s new file mode 100644 index 0000000..2c81c94 --- /dev/null +++ b/test_tool/champion/youforkmytralala.s @@ -0,0 +1,172 @@ +.name "Oh, You Fork my TRALALA ..." +.comment "HMMMM, my ding-ding-dong !!" + +# LD : charge la valeur du 1er param dans le registre + +# ST : stocke la valeur du registre vers le second paramètre. + +# ADD : Additionne les 2 premiers registres, et met le résultat dans le 3eme. + +# SUB : Soustrait les 2 premiers registres, et met le résultat dans le 3eme. + +# AND : Applique un & (ET bit-a-bit) sur les 2 premiers registres, et met le +# résultat dans le 3eme. + +# OR : Applique un OU (bit-a-bit) sur les 2 premiers registres, et met le +#résultat dans le troisième. + +# XOR : Fait un OU exclusif bit a bit (c'est comme un OU normal, mais 1^1 = 0) + +# ZJMP : saute a l'adresse si le carry est a 1. + +# LDI : additionne les 2 premiers, traite ca comme une adresse, y lit une valeur +# de la taille d’un registre et la met dans le 3eme. + +# STI : additionne les 2 derniers, utilise cette somme comme une adresse ou +# sera copiee la valeur du 1er param + +# FORK : Crée un nouveau processus, qui hérite des différents états de son père, + # à part son PC, qui est mis à (PC + (1er paramètre % IDX_MOD)). + +# LLD : similaire a ld sans la restriction de IDX_MOD (ici 512) (a confirmer) + +# LLDI : Pareil que ldi, mais n’applique aucun modulo aux adresses. + +# LFORK : Pareil qu’un fork sans modulo à l'adresse. + +# AFF : affiche sur la sortie standard le char ASCII + +entry: + st r1, 6 + st r1, r3 + live %42 + fork %:hanibalsmith + zjmp %:move1 + +hanibalsmith: + live %42 + st r15, -50 + st r15, -64 + st r15, -78 + st r15, -92 + st r15, -106 + st r15, -120 + st r15, -134 + st r15, -148 + st r15, -162 + st r15, -176 + st r15, -190 + st r15, -204 + st r15, -218 + st r15, -232 + st r15, -246 + st r15, -260 + st r15, -274 + st r15, -288 + st r15, -302 + st r15, -318 + st r15, -332 + st r15, -346 + st r15, -360 + st r15, -374 + st r15, -388 + st r15, -402 + st r15, -416 + st r15, -430 + st r15, -444 + st r15, -458 + st r15, -472 + st r15, -486 + st r15, -500 + st r16, 1 + live %42 + fork %:hanibalsmith + zjmp %:hanibalsmith + +forking: + live %898 + fork %:move2 + live %1892 + fork %:move2 + live %4024 + fork %:move2 + live %232 + fork %:move2 + +move1: + st r1, 6 + live %5 + fork %:move1 + zjmp %9 + +move2: + st r1, 6 + live %42 + fork %:move2 + zjmp %1 + +move3: + st r1, 6 + live %42 + fork %:move3 + zjmp %2 + +move4: + st r1, 6 + live %7 + fork %:move4 + zjmp %3 + +move5: + st r1, 6 + live %1 + fork %:move5 + zjmp %4 + +hanibalsmith2: + live %512 + st r14, 1 + st r14, -203 + st r14, -406 + st r14, -609 + st r14, -803 + st r14, -1006 + st r14, -1209 + st r14, -1403 + st r14, -1606 + st r14, -1809 + st r14, -2003 + st r14, -2206 + st r14, -2409 + st r14, -2603 + st r14, -2806 + st r14, -3009 + st r14, -3203 + st r14, -3406 + st r14, -3609 + st r14, -3803 + st r14, -4006 + st r14, -4209 + st r14, -4403 + st r14, -4606 + st r14, -4809 + st r14, -5003 + st r14, -5206 + st r14, -5409 + st r14, -5603 + st r14, -5806 + st r14, -6009 + st r14, -6203 + st r14, -6406 + st r14, -6609 + st r14, -6803 + st r14, -7006 + st r14, -7209 + st r14, -7403 + st r14, -7606 + st r14, -7809 + st r14, -8003 + st r1, 6 + live %1 + zjmp %:hanibalsmith2 + fork %:hanibalsmith2 diff --git a/test_tool/champion/zork.s b/test_tool/champion/zork.s new file mode 100644 index 0000000..5a6bed2 --- /dev/null +++ b/test_tool/champion/zork.s @@ -0,0 +1,4 @@ +.name "zork" +.comment "I'M ALIIIIVE" + +ldi 3, %4, r4 diff --git a/test_tool/main.py b/test_tool/main.py new file mode 100644 index 0000000..5445735 --- /dev/null +++ b/test_tool/main.py @@ -0,0 +1,87 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# main.py :+: :+: :+: # +# +:+ +:+ +:+ # +# By: mdchane +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2019/07/04 12:01:58 by jfleury #+# #+# # +# Updated: 2019/07/15 18:04:59 by jfleury ### ########.fr # +# # +# **************************************************************************** # + +#!/usr/bin/python3.7 +# -*-coding:Utf-8 -* + +import os +import glob +import sys + +def init_project(): + os.system("make") + os.system("clear") + print() + +def search_files(): + os.chdir("test_tool/champion") + list_files = glob.glob("*.s") + return list_files + +def cal_file_cor(file): + str = file + str = str.split('.') + str[0] = str[0] + ".cor" + return (str[0]) + +def export_error(file, export_error): + str = file.split('.') + os.system("rm -f ../../error_" + str[0]) + error_file = open("error_" + str[0], 'x') + hex_zaz = os.popen("hexdump test_zaz.cor", 'r').read() + hex_us = os.popen("hexdump test_us.cor", 'r').read() + error_file.write(export_error + "\n\n") + error_file.write("\tzaz hexdump :\n\n") + error_file.write(hex_zaz + "\n\n") + error_file.write("\tasm hexdump :\n\n") + error_file.write(hex_us) + os.system("mv error_" + str[0] + " ../../") + +def check_cor(file): + name_cor = cal_file_cor(file) + + #Zaz compile + os.system("../asm_zaz " + file + " > /dev/null") + try: + with open(name_cor): pass + except IOError: + print(file + "\t\t\t\x1B[31mzaz not compile\x1B[0m") + return + os.system("mv " + name_cor + " test_zaz.cor") + + #Asm Compile + os.system("../../asm " + file + " > /dev/null") + try: + with open(name_cor): pass + except IOError: + print(file + "\t\t\t\x1B[31masm not compile\x1B[0m") + return + os.system("mv " + name_cor + " test_us.cor") + + #Diff + exit_diff = os.popen("cmp test_zaz.cor test_us.cor", 'r').read() + #Check Diff + if not exit_diff: + print(file + "\t\t\t\x1B[32mok\x1B[0m") + else: + print(file + "\t\t\t\x1B[31mko\x1B[0m") + export_error(file, exit_diff) + os.system("rm test_us.cor test_zaz.cor") + +if __name__ == "__main__": + init_project() + list_files = search_files() + print("\x1B[01m\x1B[04mFiles:\t\t\tresult:\x1B[0m") + i = 0 + while i < len(list_files): + check_cor(list_files[i]) + i = i + 1