From 42b2ded6669ccb504755d9aa266d683999ad4c15 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Wed, 27 Jul 2022 11:07:01 -0500 Subject: [PATCH] c64: update wasm, debugging --- res/c64.wasm | Bin 104881 -> 107404 bytes src/machine/c64.ts | 90 +++++++++++++++++++++++++++++++++++++++---- src/machine/cpc.ts | 5 ++- src/machine/vic20.ts | 5 ++- 4 files changed, 90 insertions(+), 10 deletions(-) diff --git a/res/c64.wasm b/res/c64.wasm index c0b80b0ea793d1f6ef053d3ce181f2b81d7ef46b..3b79ec9c312054bd9fcae17fae56fec28e3b671a 100755 GIT binary patch literal 107404 zcmeFa37A#InLd8Dd++JK-A$vYC`NDJF&WHAT#~4x$;csbi!+In*)o}#A3-G1Muct} zG&6~`HX@}Dk>@}iVN<$;*N^)f8Vc8o#mc;&b>6v%=3SqVAA(g z)wkDIRbMTqjxl2V7}GEe^SAweXHA-9PU2tVcc%OwDFgqvCozkErT7^0nBN)3?;NC& zo#PLFiF}M?{@M6lUNV_`3~=lV&GSvywp_=tEK~kju4`HOd|st&`By9yOw+Oord4P_ z27a0>+ib|?8ckq9MBB72tFf`!G#c^^W{W}Syk%K7vWaF{Ilvf}rTAca9oAs%!YT&asD#8h*%x-~WD8r(u_L;U6lBhL1S( zP#}yqobRN9j6eLpM;W<>BgX#WXJ9ybypb>9dEcW)jWh~;`t_(0hZ?Snr+@1_yla%v zK+pq!CE1OQ@~jGqMI`?9*WN!!QB#wjQiaV-9(ZKesLsv_ZpGjIpWA8 zpq9~($jI2QbHtcYMk}HJscXc@(Fac$f0)sqg(^9AoUs`V2O}7p^I_z;KNqu&xu}xD*W!y+(P(dX}7~A?!M;qVq zpZ;iU=Rb`%w)daL86{U?0J*JEJsy7K;ax_ViCuRYe)!nV4&$%!^e+1V#FVZA9eVlU56Pz z7!c1rY}Da@IIPRq*{3sd>=9!-ja^7*&s`OZU0H;LVzHZFBrJYdJY>|UaicmF;E$U8 zl!E-RE)>w+-O+~}s^Iq6f{&e}{&4ts_`>ipV-G$2_lLuW_uQsx{%~=QzumTaAq1W< z=160&)>!fAQGYb{Ze-Skafgn8$Nr>=31kmHbnH<_8hp#p#*Q%#Yz)edGJer7L_{USiU$dBCtB>du1@3crTi$i zT97*O52K8KXd;Hd4(~kF_+=z{RHyMPcjOVHl}rcsyLj3AE(3rbF)go4M&au!+$BNv~rSv?XN+{kLv6i z-Zf&}DC6J!yiW9uu(ag;#wSTnHvZjDjPF8M@LNq`JUj^<=kT#d8vn7mqDoXqLDCTG zKYcXu$N!=q@3xzg@&8F{+s$|J;eL_8{fVkyUYhb2Qr9-3=MLOk?b!&7r5h7?r6B>0AjcB407oBeV*guXZ=J2jR zqB4&X_VK)FKy104>BrdtHg(rxx1G2zg|$I94y2*#V?zdzDA*6goG%fsNc$|}d1O*&ItyT@$S zX$3IZ++1gj?-~Jr{=E!k$A@^zqyZUa)`1#H#_q$99(9Bs)~A?TN6W^K7&GpOV9Y#O{J_>S*xtRtTKLQO|Xd9=7xvXtJ_q0$9fepAB)58*h4@+j4gJSgK zG8i+%VuctJ(KtP{P~g$C%oa`29~;gHp@c{$I^Z)y4JeFM+DPN9WbXKJ#%yy7O_8v0 zK3L(9BSsl#n_KAu66hQuW1$Rn=Y;jd0cXtE3FAi@=f*wZ&{2m>_`~pVV-IIIWt?Xg zhYvq&6o!jKMvNb2n@xvI7&A_nBE*(Z5s{*87xm-V-;cMQrl`-@xyC~dA3J{dh|bOt zf3)+>F=w+2TMtK*JoNC+Q6u5j6OP0vIQB@iBctW}lFm-8W?B^bMJLeM4qJ-;i18 zlNlPVsd{~cb+p(}b@bCH0W+*>BU0690ODjO93DlwM-5RoJ~2ez`AvuL-R5 z2^?=)HdX}C)Mz_+vN^gf$COv-C_8AlC8N!5GKOXgmNQLLUP9!UMg2-p%)y}@BJxJS3+hN*a+6mJ+rgLFB z&vZUa7nm-DX)%}S;m3rnVKrrItCSzzW)-0-O(2zLO)RrA+VX&-_F8oGsPIo702wDO^OICevV!mR=3ceJ=UfLTIh~wA$YXGA2e&WU-Sg3 z8KYxDH&XN_d2|-%ph3k31Jw@?$p=q`;K>c18iJ=r|7ma2Di(k{1eof#;QzY*Z-f8a zD8D-c{&LfFCP5;%eVDO_4P-QivgJSPtX<%W`gw4B+0oCX_Hs@?4-5#vl^aXeFbqDk z9U)nQ&7Iw?9ZKj62U{+ic#cm^e1fL1if4}B%lM9JEUoP7B)k7!#;%G^@lC9`VgM+a zOuId8ATZZ6rL)Z)%-+)+wtjuj(LE(&S7WDPty3n$_@FVYb?V$Q1lkD+%bPSFz6SH` z*1^9&C|Mn4t8*`7H>P$ev3+%V>rE66wo3dnxW7qBP&$Nvb}Ewupai=Em^+uue(c$l z2!Qkvcj#{$WIH4ji|CG$K=6g>t{t7eC=Q0PPBk1s_%@THKt%o@C^2>_+av)O5+y9i z9M!-{(LjsN;Y`U+FN9WY7P*j2$x-SQpScms+s8N@<;2!&ayK>+zi&*_i>5ceM9m2ily~iI z4rF3iW9MO|DJ)0y(jyjJzy7qNdnT97J?vImToGwieCP)vfU0=P$m=VgRN(XT;$*AeQ0*Db3w%n@X1dYKQNBPd)zi;2lGd@BdBs zyvp5aNHq0>oujE;cHQlVI{l*`@4knA-t%ww+WRLzW$N$t8R`xD8J~W>?|%F1@&gY1 z#X*1n4@~{?S2~Zs2mj-*|LLFq#BXdWw01 zIn_MTJjp!SoQAwp%u~(N%<1L~bEbJZ(zDDn%rnii%-QDIf^m*{u6Z8L)LdX*DCs%o zMe?f|Uu<4tUTR)uUT)4c=b2ZSSDIIuS4SY`o7b4vM$!w+>&)xT8_XO1yqnCM&0EZc z=Bpbgx>jLXSYYy@*vM#nRu`abPvo5#hB0bN#!n)GB%DUQ`FBsQY z*IEm#>#Xao8zg|3u@+jlTDMuZTZ^natUIl{ti=(CyRCbydn4&3)_vCf z)&tg3Kkq^7A?smlne~XDe$;x*S{{La+kaEo>n-bTNxx&gYrSW^AHaWLeQ2$*KC(WxK9Rgn ztGljs&$LeuU`b<^eTIFeeU?4j&pq2dCsuy0eV%>3eSv+UJ;%NXB^TS5 z*q7Ru*_ZoJbM1Nd750_(Ret(vd%k^*eXYH~zRtcLc{kWM+BexZ+qc*Y?OTz)&A#1U zWZz-mY2PIni|xDZd+dAdCH8%izTbX8ezkr}?Fa3L?1$}T_9OPA_G9*P`*Hh;2*i{2 z3j3)@`f2+ad!_xX{hZFTpSNGIU$kHH)2r>5?N{tqb*cNB{d(|Bo^RN1#?o)uZ^zQ_ z*zel!+3(vQ__-h2YwVBgj{}%b>`(2_?9c5l?6s2jrTvxtwY|>%#{O2)>+NpmSm!uL z>(}Ecux--i;!#Oj6Im?;tob8+w zq|bHEbIx}za4vM_NZv)x#m*(prOsu}<&vK3%nM*i{|e_y=PKuFXTG0%jdN|Re1UVF zbG>tebE9*Ub2CbAaTYqaI=4Bu`%sIVJDfY6yPU;-`fleQ=U!)tbDwj+^8oUeIuAMz zIS)I_oJX8Tk$%is?n5dIJnlTzr?#Z-exDr#p9S?zmh~-?_=T<8xDj^a;7Cxf63IQb^vpB?ws7Yx$}bb`MC>n7v|;!>5Fm~=Pt=z z8l*4FT^>A>{@mQW+!eVib65GfSLf!(%CE^?n_G~(E_c13dqeKV+)cTgbGP{Eg}GaE zx8-inE%MWMg(r@P8ilyJqy%S5nn|m+!e(r-H@59`h+()^OgY+l4PjjE;J`d7gMo_xSJw880ewB4rxhLeO=18J0?FZQ35hIi-h$={n_lD{v1zvMrVUm7caF#k~g;rz1vBl$=3kL8!=AJ0FL ze=-8GBL7tW=}7vS{L1{Z`RDSh{JiJ$FXUg$zm#9?r(e#$5`kXjzM6k6mVQ0|MlAhi z{;gR0?fg6Wck}NBdGF^x$bXn$6Qn=Nf1Lj$|7rfS{O6MQMSgAm%ludQuk-69{Z0Pc z{Q7)%LD%oGh2si6g~^5E3sWTTgu>LIj4&q_PAZ&Sm{vHYaBAVS!t}z7!py?yg;@d2 z8HF9Y&x6wWQ2S2(|Lf#h9Sm{Yi@aB<<1!ljbFtZ;b%OZsyQ^9olKt}I;T z=U!cyA1lA6aBX2h;kv^0g&PVtqU5H+&4pVE3k$dUP`4FsFDxqDQMl7j-&I&#xVvyq z;oicM!hOiQzwkg|Y2m@bLxqP6%aDGg@Td=|Ebv%idExQG6NM)WDBdUW=q(FT7EBv+!2oZ9ngw!n=j{3hx&_@Y5d_ z)TuCR`@)Y{-Ut9@MYnvAn)tKy23YwZ-eyuLbrRYdz{6>?rrYvvGPUk9qyg(UG8G{ZucIP-0LoJ?{n{WAMl};x(~V!xevR` z{PZL4qwZtwa`$of3HM3lt#F@mpLU;dSGv!-&moPCg&&&OQpOI;pL(#F(DWR$u*jdf-`X9XJ8?eu-X;(0wy;~n zZH}IGNA+N{#OW9WM$eKFH$oa@|DSXy3Q!=+I_&kxt|7?@^#mPm;rOIhCP^uzfCl!F z8hv4o>o%dM>;QqW+8grLt+)3!ohA~pl$-#;evs@Od0&O4hWD*XJVTxyPGWE?2nKUx zYX(G=QjOjKY!j)i&p#<0*4tv>r-}GO)8Q5{x2swwa(jq~*pLgV;VGpO=)!RB)VW^w zF&)^Pg7pPx-Pn*OH^*9`l7Dgx2Mt!Z{-HBRod=S%)SudJgworG0(yOy!hV|AcutGWxF-sl(v-$yNp>!(!9Z6u?|gIKG$RWZn}mW2SS zQZ2U#Zi?hLE5cgfP2p@ekwsOlZj6?w@$UvLPdF_3V~K3IkL%%?g!ov}bbXXe%xu>w zYT0I6pjmEw=XGsV5~a{J0d@9MXw6lcZqRbkJHk9fps<}yCN#d6$fockLS*Adj zDvEv48(oqVE~&xANuZhz@I10BWF$+_UFMp6`vu*n9mrCcsO#!s8@n)91NT29}JVD zW=L#9ocUq=FiT5{0Wd3CZaQ59X2owa1*k^+HiJNQ2WHbX-^$3IVKDk%9B3{hwi;r% z?d1X{Q8;JjPQ*dKcARi5JkBAhC1o|KZw07EWq(7UGy&ErHhtm8U)Lk?SM^BzWtPNi6@}_P^M#UOV~4!Y zNv5h_e5M#=SIehL#B9I#gg|N4^0A^&UCED>44blHtRai42KX>qqMY~xEl(pSw_K^I zj{3fW%eLKnNuZkH!n+zL);-B8$wm(Y?~rzC2llq&+!xK~Et1kESB8BvnicDw-cWqA zP5F8fsHQ1j(>T58>t7{qs;OQP$|+IX%Zlx$bm`S(q3s(p=1YoswlQB!0@XC;3mT`E zUlukzJb9k9Bi#pPV3F`-6-%os`<#|3Yg~CY2~<mv~wuHFVvhNMVizR> z1&P?!ODr2RHuXw&4o}G)7$I=CmLaP#FBYI0A@p6EQueOGodm0UT6G7ZQy0q?DV9N} z7GL(;pk0{T6(hA?p{nOLW_dHL_yqG-#WUOg779=egWaMjWgF~fg4J!Xn+Tn1up5KCwti_I-gT{)BWcVzIwpuen}mt`}&0$zPP#@~X$iiy1J&bJG# zrt6iARn~^CQzB#=cL9L>bwgTMZ^m33i0}OrjzE|1RI9=2mBqYlNGvw_>SS8T>SAXUM-VX zt;)G1sC%_oz<9Z0m0gvW0jNqapQrZqm+j9cy@EEv_tRK>+ z(7MV6we_MLO!-#ccPm*)%-VH1yB^(U2i*H?x96;S_@0>rsu`l4L7de7c$U_rvG;w} z=}D;~p672m%}fH-6n#df=+m|68}DGJC520BaB32$rUs{EYA{VGrt~r=D|YN<`lhEm zNy$=W&^uAF%5Kk7lR!1qKS8k!_Dp!NCp^M3MJT4If4pM1={woUO2#T?=}{tNo8`C& z(1z_39l(8}V}Y(*ZNv77h_`|JMBQ3a%+)gYiPq;yyVjz%0M!UEzadcFk>fhew{kYZ zsBa_piM}T7)K#yq6z9GO6nsw?l*B)dzB#>I=m)+q*s&pc+>Gj6ii; z`BTj|b;|C_QM77n9G?(3)ruc0VXMdXA1St*zCEuYBV7Tpfbc^lLbk;}P)cO)3cOFC z$kIh@x9Gi80p6`gfOqN<;O#5{-coG(!kgc$N8&f?k@)p2iCN`}502wx$= zsvh#PVwLS7tCg_X9`X`_(mdovMWMR7FDMx{eM5PkjH;SpRkTFK+s_43$%Qg$)7NJe zShfLICV^^363=LyO)xe*P1>ow+Ea>iU$mwbB&98`?D}LhE7n^*q4;K-^6?~4O;aw{ zIK3DE9wTn5sU8)|DFNLhitVQN>t$r5tsFDy!%Bo~lRlILs%g>(HBK$>?8O$+Qqqp} zB=Iez2UuEF+55FjS?j9zC4p)xyF}w`0%h+d?Nnv&QJnjtDc-G>$gRUcGGuEH*gIz@ERD;b?a#fF_FI4hyhZyU_xNtYzJHlGAGhVL|} z!k(rG_q9)*O0rcoIVD=6hJ|TbhV&ByyBhiEaeLjJWRQlSigRD|4R4Z^9w61Y@dmTJ8UD4< zdQ0VX#WUNlUK5}iR(_R0bzAur%{O)8n!cs-GI3L_xLOHYJ;r@WvF+=2`y$C|bH@UP z7Zk&6`#!Hk&YoYbB2Z+y9@{{9E>(bM>k(jOJpw$FCBV~)O<(x#Q}sx^q8^E#%#!#C zMWMQ%Jg#Ku#W=Q{m{ncjF-0@m6&_VmWxK*71WI!Sd^i?;a>}^%u#%y#{r@47t*Z2c z(Gt}WE!8qKdS7R~Rr7#?%eL43NuUblli}ih8fO#q@JmQLwQsstaqf#&at}#qlPkmC z9nFgMLW>pOY*XHq1gdGuJ2g%(y74=Rn`){>LOI2aZ&z&l+Kq1`S#8sp0dG|dvkkZ~ z2~^X7w`iPNzSxUxkef+6(oMv-L2hDcRb_9~GG#?xHza{-Dto=g*#yd7N7|{%E>N8N zqTyYumB_NrHA$eF)|szyQrlAcHptb)P1XJ?p`6l|u2gJ$G1Of_%&HzVPtnY7E_0JW zHEndc#_5HPE+cNLjV=|+DK@%9vF+>r=3xu(sOZUC{Nl3n2wz2|#7i&$thRHZvg_HoI9E%S)eg^5N@j;sXKPB? z3-PlFR`&$wEJCL)#Gk3;(!pozcdHr=cUveb(QS!Y%<^XB|t#KNmQ>}5Tl1p2I`wroH_bEyq^iO!hrGO8SvK1D*fnDC#6a9A`_^l(( z&h>jO+?J@kFQ}A*kx5ln#iMVwOjEK|S#&vBvCcN?NdT&{EPi4t)v5JRJ)t_)DS{g` z+El+ez8)TvtMllI^N82Raf&c&BX-1EnH<%V3u{Kdm4bEK#NH6UqN(+NDdaxZCUU8DWKdP7ucIZZWB*D^Q=?=5l5oi$daa;y zab|Ai_NUxrh+2T(%WatlXT8Pog%Ts%+Mg?Cx}~Q2-)Dr=22g5#s_4_`c)vv2aUSN^ z?O5$8zR4E0V0n)%OY%?Zk^E!L9t-ajAJ;kfFTf;JlKk4AtR;{7zaK6J& z$mTp3A85nkJ^Go)jDv75kyFZ#_ZBDajVu*9{maqN3+3Cre!PZf4O#(o0&c$!58rG= z^I2`QBO^BmlBlo3`McNXx&RzpLkV)Q*xd%MP6QpW8^rhc8u46G->l0a6CXot#Aj*) zo5yA^AJt=^HA$d~29%shf2eWd(E+=RB=83W&KxnIQsN!)_tRJe{k6QO$ep0zcFy-S zPS#-fZW5@bzV8qxbr^eFDAw+r-%4^$TIu{O89I`-%p^( zIz((E=e|?{meeD_z4ZuiPnH08D+=2FsS)1ddc?V_9&zr>66cP%IB|Daq-5yBLF;x> ztXluKDPGz2f2)!e-jy0RsY6li3;d%2&9p(9jCqD za=ik}Hr#bdpqiuo0*$i?y76mCJGGCxMmPtNL~0wEPdIH(WwfiKS+Nf0Dj`~Dua~5$^RXbBC2dc%J%o&PpAC70UNU^HhoUV9fw~?7ipqjRup>cX) zyXnMDwcTk#ImLFTDz=-hyE%mns+w||Vx4WulT*=8st5f<0je<#nyM*fFWsL&u)0J2 zDS+13qd|Yw8TdC+u(IUjG-jB`lWJA_Ox9v$HPfC{^yBJ5KURQh*r!`l%C^sXdqeE= zEuhowGsM9C$k=x7i0(LiLk3k%wT>mMoGep)9pOlg3>oW{g12DuUZu!rLtNREm6VShl)FHUH8na5*H zZ-d@7`aqG%uH^Tl>|@c*d(jdl*t=S=Lgf|!msHhSa@Gp^JM~EPcEAMwj@<^{*GAX& zj_eF>mP;5T@|B(Yqq+PW!zLw;gT&I0C2~<Gx`RbT(a;5mWep1!%o@{LU2c6mwYqj0iss5*!^0d zEI+wVfNB_G34kKC2N4iG;(H@_O*$H^+?y)OJ@trkcRivk&K5=Yw|AwAa%VlF+)Hta{Yl*89riB-+Tp= zZH=pwKsBv#mB#6XHLeTo@Mcq9`@Opgkya-KOlt8`1SoS6v-0F9-r9f*z6f+hbi>v%iMN4knJ;Kb5%XrQ zWj?O~vj(PB0#sv->Nx_{9fdrr`PMoS(TlJ0t|aXsXje;l%I^I7&NG2BL4>1w%nkDU zr%5M1hCRhBZ$>e`9=bvp))@Pr45Z442cIBN-6noq^W6j{UQXJnCVnhXCNS~FL<^5< zMY4SKk$`800hcMU(bwtqQ@=sdF&+*mh}69vjvlH<+y?_@8R9O@68C|CLSW=x`SJbr zhT@?kc%KNtur%>0SQuA!Z{tekb! zVS!dDt6#o02~^Wo*Jzwtw(7;%(D|etEI3yN2UiQ{z%zS223(~z$TH29NuZjhxkBS? z0@KVR?Nrmu70!WaqAs&Rant2mgDlfrmISJ4noBiKEz|TOq`ZW*Q(M@@!Z|QaugA8F zv<6wGnUe&nX_^Z)&L%L;1*Dy7n)8KoV497crk$r1$+FP73W#gB{x=?7^`bI6G#obb zx~&5@;GO7m>fw2Ipl3$JFDwInT($=>AHa?}E7Y zTbUfIa&$kvI2Sq9=Wq{KT`z!H(vb%}Xw4LNV~F_#0JkXm*J%WW##D*OdrWhO^f+ zhpZ<3Y7(fX)~_g*I5CCM6_>2VFSB@AD5hw=TC+=Nz0n=#OG>ILhImmk%`(Ib5unV? z2uA0P!>pcR1LZ{Z^T1Pf*sxs);%(qA#40UftzC%cG+>s(&k9hDxNs$b>JIpx(R??- zyy$7tPMsG$r8q~zuZ`+3R*;+?gw;^{B(uC3&GF5MCluf82;*@9s$uEn1ghK8k7>TW zIE3{maZ@e%h!R#0h4D^nS-`e3WZUTG`!GpslgFaChcweHZ+=jTojuE0N}$M!Ol(E{ zfm8wRuSbCU>JeZ`mH_uEHhty8_tYcx-StSlI7{lg6ou;ka;KId(cN#@Aa@7pRCSI; znnRXz+^%HIc8=Q!l;#|_Dhk!LT&QJ8Xt~j?;ueyws`$;(64gcBq~xFjeUY^Va-)_v z%VswufocW@*K3?j(EndY+Nr(P0>!zn+Rn8kr_HX6drdSe)<4ZxytBuEtCK)A&3To^ z=|v}hC2>>Db%jt)iP7c-Z2P>EpG(r(t}!ECu9;@}_u9pEM?~;fodvyp~l$+%3eU)smh+OIQLZpJWnfbuC zQ|T{PoK4(R3(OYEDQ)VkfNf=)+OUD}Owy_9Q)g%nSr(g>1gdGV(=|>nEH;z4sTP|d zlv6A=Jz!gDv5g*7Pb2B7Mm$wB%`)OC3Mk_0h1k;32JVMUtB2>w0#suPagwH#y@-Dz z!RnrAOeJ*ca?=S)E*%%OelNwaQ?zJVhCN=fsxpJ0Tn~DWk|jIJJ5E!|w$ZT!tJ_B1 zgif{5Bou}Y5}!~V!!k0$+pu~GT$XEL$&}^pKMSuaM*5RaE6c?HqZcdW?1J9B_;11N zD~JAL9daC9RgR;G8T1FK&NQ(O1{10>=!!9jSH*arYP2f!39xD_&neZ@2{KjtmX124 z9#>WBu^CbySw-p^4m2iB!XqLDD(D?8)baMGxM%zT&<1TUwEJRa`R3t-sa^YrC8YdA zBqtVB{=N>bqw3>&XdR?RCSW4^(AkoU&W8Xcwc{8e^!ln<{w^V1Qk>xln3@{=zbp;@ zi}Y$&>3=5JCPn*?1Wbf-b>sdvOSFHFi5Bk)e&h4n$gbeugnyNu`d@weS*_t;5->IO z{b%79xLJHz{+~!MsEWA0zxH`W^{vr~{G;%yqT9hftt{Ps6~a&?x62zi0bgwiB-eXO zmFNB~Irsld-AQiPf;-SQaJ~H>d@&LDW*++g`%sTihF91__%yFO=PPSj> zdfmr#;F}{fBDC~y-$n;MjgIlF7pJoh0O{1FgZ)L3ngQQ_0Mo;u8cX&?jyI!UeEt0A zqz0w4yya)YF*~dq2AH}{=lM)iCp76VX%7Wzs%iESLA7b(P3-S9&-w$sp8`djFgC3H z#HW>Iw7o@^Y@_W3n8@TTwi^DoY0USmgZUnHFyB3c`Hux(8!|Nx{81gE{ICvDcFPcD z*O(~rI^D(RAMG}K5i#xzGF9vO2R{9*dLAP3W!LjgfJv+8zY%bQR2_xVTlt1&F> z2$ZV242~42{@|~LI-?sm;~2&Fd>OKA@ZAJV#YmToCU)>qYORy?qWAnOkWTF)%H$i2 z!l|C!1~6?#Wvx;qC)OEkPl`2q(Crd15g}OTNdtYyN9jc$xh+sr4KRpw0|UhUZ5z$A z{yuVRplCzI%relYmE|{EC15HM7jsZO81Hq0*^rE1kk zx`9@4r*F_aBTnCoLBs`_st!`{>1Q>Bd;+FI+@y8&2he(9DqeM)YAW0tQNcU>I2zA+ zN|+ZhRgLjTEzBjSDL$ovp4qjxIZ%<^MiSdFv8%E3u+kKMwW)hep$FX~K1#p-w4-|_ zm(4xw){k5`^>`@b#^N*YBYAHp{cxa-eLM>~_V8`5(R|q78R~VLZ8<>m zqhC~zpXx&F&+lvze!MqnJW8D|Jaz!Kqs{b8WJGva;8C_q<{$^MW4f>ypYTFcA5^kA z6q6*R=nx{v$V;mfJpiOMXfNC9Jty1i&O^HW0sNB==+j;3z{-$KQ3rKGGm^F-mLp=> z_!XJtENXG3WfnHfj3U*f@w8!1*>E(?H(JbR959HV&706xfB?S1N4L2azm*1UOSyIe zL$ZBgMA)~?MA_-eCkh-y~p?t{umd7?^6hd~l(^%na!MZw#gI*XtlceyhmuhGSk#BPN}mBD7lfid4WT}pmzu=n z<&Zhrk3j{Rl~~`U2+)w9LG(f}OM}UcaoydEjh^yW2Mf?(VpM>)3OFbXZZB;$Y{#iT zf!-tsNOS~-w}V)6fVL#wI+=t|Ans*IT#rvEc9yr;%do9Ur9uggMW<6$?ZA|fa~t%l zccDY(+bfP#2Hb;k=evMQ!#AnNBERqmY-QNI!Upns1K)ncml}QKtp(ZGpI@ykbhZ^p zp-^f@5(#=`p}mBg8{sx^9EUGymGF&5CjN(Ce&jtG=r_E!4zCU4N(pe{Z`j&Up5k~P zqNByg(!?@Up{rfeL0u~hFYr@q5_?+6o%eDRJ$Rxyy2Z8(gKA0Via|+~w7|Z|RzWfN zNljemfnT3#UYO?hG6ssHxSeer_=gy!wnj){cx_a=+`5-h5~0kA-uiF9`MS_i-V(wi z3$-&5jaOyj%ao1kLPul&&T`}K)((KkLwMTR>IA697AKTo(H7((mh6WgIFO4U1c#g92LWFLeh|EEjvt0;?90ni1>Ngte>D6~+Bb)C z)R_1V9#Q*Jqf(1#RCp2VXoOV3<*f{w3m>{U8@4#$l=Clv+EHMx4Or*M@XX+<4z+jB2GuPnkNzw}vXo*i0G9u%R>~ zl3*tZ1XzJhSaSokNE3zLItDGBwgNAnY??NM3Bz0Kv~FHDycPI7tcf8~jnNM=wX@k+ zwz#%ycu%NwOBqoE(~}W0nmbypd&r2sRF%4(J(0`R1X!-JnwVv(tVfZBhzpwn1XxCZ zlEYN-0_HI2KpoNp59817*3Tu=IvT0J4FZ>4gQp#Xr?%i}>)@$>@YE1Iy<_lE*ney= z_K-(>7}qnDP~B$mIE|0qi+1bg+Z69O#A-r(g1!*FA*2BvgcYdOT@b!wRo;8R{0B5p zwM6gjvY$rSMh`fs8F~#dCa?t=-lsl0&s1qt=LFA0<5p#$QeXs8=-3ZVg}4@R zI7U;{xo0B7+@B+k;e7%sbOg^RqPv$aZv8PmZ7pyJusV!Ge7hKu5yj7u*c*S1^zN&A z!(?tL*Rqe{_i1j!z{bYLVpDTVJ^%W(_TOyt0b6Xj6&=sJmv@6BG^go2PJm!IWK1?|3Bt*Nl_U~94o z0^EFJ)KtoWAQEVnXcQ$P!4Td)h{wcA51Vc1^Hi5_O)g+$&eIakZRWr1BqCm7lOw{Swuv{6}k4erPA|7$9tlgallNPYnq; z2S6xdc*@`^7QPfU?qJaN!vK`N>DPT~M36D!GH!azBxNr4|^bi90cjn%`oS_5osf z!&@Vv3Ipku2>4_{w188xo0|Y8kvFQdiECosX$-Tm28hSg`6!_o5{PeMQpUa05ZHOA zil=PFJVeF<JTr65Fb>BcqxSVuo^_n=4~yAKWqdg7CdBUlQSsP5d!b(0VzZ6A;w#nWp;H zXm@pXcBsf!2_#W|1$qRN95BxcS?*6Qy@crT;5utTGZ z;u$8A)+F;#HVp1NqR4Lom<>r2fR6)Grir2Fb4Ezb*-&_KftoSyvma~6Tk1C`@`3+r z?66ftv3XTO4Ew#U;ff%*X**f`b>jn zEsOv}oxsptsJ1!x{uznDZ+8Vf`f~_(^hiI!ZflL|DV2Z&YX<|cBmEXv@~@i3Z7KV8Z*;&(_>_uF8hkbuH{7sp#36k3Qc zF$6QbKr}-pHGL7I8rab$ZhW5rJfe~imiP^jXeQ*FBV zw7Ihbf)Xu5MU+Eb3wEOn)Q47q4x}Kq7Bh*0Gz^hn7GxDKXk^7xAv=}GkHb0|`4vG{ z;etj+C=hVYS0XekOvv zSdi6{I;c#|T1p>cEH&AHh8U}{?V{(*l@nzN$EW)9YQ2meoixLJNI^xNdyy8>OKUEa z3^5)=Lk`x2b4Bq!1Vq#>xi0>gu?VATKpHF;Q_Yx0zcvvoAh4V9?IY<+3knu}_8;Hg?~bis|s^}M?y z-oyG#4XdIXGK!WMd77^hI*dNrka@7CA9=n~p)1*{@+;)xEG&>qRQ*4x{0CL#CoEOJ zL^Ue^!L-U({U)rS3>K|?*@e6(TKQNrsjKo8EvfwJe&wUX@1x3psCMQ1N`;k=vwmuy z5Z%LJ=u-S0*jp?$0mk|iI}~&)vcW5}eZWv;l&}rFCw&dZbLy{Qtp+gi~1$1;a(4=xtAJQVFgts5%=O$st?vhf?7aj7~UY-w*x0H z5tylyQK&I&{9;hRVk4sZ61Qs|M4mFP;4A}nR?BMm046sVKi{e0}(gVZ1dsEQ>H5*>^)PQnlYBFbd6 z8e+`D_<9iHES`m$dh8q=(K5UR0#I@e1cn;>5H)EO?+U-P66?AI7Q&?f>&g_Y>l0Xr zlLD-(Qm}4FU?D&Xu&z$Qx-o%;$SA;?pMrH$0t+EgfOSm@*3Ahl#6khqwJBJ)M6sk! za5Ml_vXilmoW#M2PDCas$mwGOgDuCKI^*I$;oKv#u)$EW2U~6=%T-xTk*p?_)f&md z(H|lXh-3{=Spy?k169_xk*sZ{pTemPdZ~xAH9TvQJCM^9q;YNr>0e14f4?fjJE0y9 z>=3L#Fs2_3!2-|6d85%N!qFUn0;(`txxX}tR(b0T3xzgqiq%A}Z>ptF|2Ui^)JeGT zv`DFCE|(u|uRl({8Kxcnvn(DcV=KdXylzbEz*;SYvgNkfa^7r+(T*pMNSxTAW9Fe+ zbRd=le5%8i0%W6?UMy1p9Hs(3aa#P7XLfkF+cq3peR zD%mYNtMh$0+Q)-1>X6HJ+ik~lF8JAc`|Y0ptwk3p zeIo05e=q0p?9+BW1W68uL|&l-5?}5Lzg84zHTP`(36{-Jm5gHz@rfxUKNH| z{s|c3WI`2&RwY9ou?iUS9X9XQxPt7nE0nZ4ct$r=k{X}~PwI%X;gvdC9nD(<982>` zN4^6mEO}H47L2MXtV2~}Y@w=Vo6uC)#x(_7yeJd0m4jNhRcMNFrb1JPCv7V<#i*0i z)JbaUbTn@Tme@v6n(~D`k1X|B{z!#-WF2Z6W9w^5wh2vzZCq2Z-7?BnP9@zAEx;069!gWb4Cs+1k8oGkDOrb_#@PCrl5Ij$VH?*J zY;jmMWGg3Y76Cb`DaP{(O-rL&Iyg686dq!!>7Z^RVG;qYW zQd6=HHI1?LH6`1GrouL^DcEinWh=)>?f`OBQ^X(@nwC1a4H<8zh)9x};#_^DrlpSN z{$Po%B&8|esr1Ow@QMjd$vV_D#@5%AY!jLa+qkA+i&O9+TRA;(Cy=9>B5tbC6uYqK z|0`5Q7?o5NkO^Ip*W3?WvGb*r<=JbGTzL$+vRcVKR5s4p*Or_U+A7X*b;+4)$N^`* z8;T?IaeWc-Rp`rm{LM;z5dbQEEsqN@+qLgxUOSKmaMLF1KyA*VKgec93IuHKHfY?#539)gk264InGOv#R0gX)I=9(#`q|M zVMD1XZyn@Nf!og$(ilYz=r|J0z@ZRmBubf|w1c?4}K_ z>|#Y_H*QE}>wSup%4SuGRvT7P+Q6u;eVaLlsi-g6+u&Sf8&Jpl6gWGC#b3VL8^-*h zF~gR#>5bV~VayF`IkFb}ikJ-R8-C~U8q(Nn(sKpO5!CBB)7a!N5o#M<#`##6b_NpO ztKxD4nsHYm;^X_wU96Bp3Km=WEgZ`j2a*ZDL}9-hdP>ba!5rWfPysu_2K!Ln0pu z5d`m1B2`vVd?Lq%M7|1%d@Mu|q(+HUSyb_f^n^sd4vBmsL=gW)iBwr*@rg_hiL48W zd@4i`T1AOeS#t4-93K+-CM5Ei5JA)uB~oPt#wRi*B=T)Y2(`};J57dwk>4YM4hve4X8Fw1WpH={v1H@mVX;2Btwkt+6H1!<$`h({*RHn4Qq{U z&Gu0G9bQzzP#U_g%fS@PO7=lmaB=nep3UVK*MsMl^Ax3p`^R{N7lU-ZBsq9Ri^D5u z@?|Z&Q-~3<3xxwa)NB96_Hv6i4^!(F*)qyQ6D|AYLK zrNDCmj*%J|W)~iXej9d$^QEn16f70n2?tat!~+q|fz1}93cL#}>!eLU-EJbgl6LPc z0mNIf%_M<0WATz3Lk<%&|G;BAcEhn8hWak@C}XK%FJroi zU%baQ)AR~$jcO4}XE#F1a-)#Mqkp20NVxczob`XD&0BJYyfsxUwSsViz9irPaPN;= zWDoiiykF_!jS;8Fnk?`|Oe~nqG@);PqPMM-N(nSVIHcaC9RgM;1`L{(iFY{ZsS*0k zqylh`1!zo)vRaCpX~rN?-2j{DixB`;TQ-7lR-hkkCo;6yR1pfs#gEZc0}$}F2(d*e zp<7`OMGQV6wunnS2@=CJ+HlmH0GJKoz(L~GM|T$4Li^EA z`{^Sg^ax%_jT;-hwRRgE3RMomCZ`~30Tz?cV(~i!SZGxMJRvKz#bOJDrJtw;!{Qw| z%ltElprv`!t=7%k40&S{DwyB5@LDfZ4w|On?V>J*fLOu}FFnd5q+W-&!Pn8hbGut5 z^?v1G0PWeXVTO*@Pgr@@k1NARbh0}4Ed$+}PGFNwKducQ5sB+uoKDb>(}Ty7wWrk$ z!M$~uD$tDbA}V~wlmx4{tCSm4M)Ffijo&r+_2$6Xy!t{g76;@!#5Wo_AEAkMpn=hE z>&FG*{Kue)ikf zykWCu{_KH+ess@Fz7#L8!w2mNd2wS*yN?Q&*>G%JUxEz_^jc*bU4nFrvQ}BPwO*^) zWBLjHET_fZ(rVdoXG<(fYje$J9v#@4M9sc$89)2$6;BL>Iww=eU;P)FkTnl|AYH!u zXufRfplz6x`@i=)GaIuyw7PpjR2w2uV!CAaV$9aQhX(|I zJK#s|E+K%r07af$)}=i4+JP!^J%-9cBPZmL#P)OD?mbzL!HyxOCZ zhTaUl0}nu5;SJgnor60Ol@5^$9U>QX2m~;22rKRoDZpq79Ez=9&>_fe4cZc9K#Vil zQq7yqoRvBiX*n1Rw_Ci=9yUH^c^zJ@oMinOFJcen*zmowx{U=BC5*{CIT1ra|B1Z0h>Id!xatS&xsS+m-8;AQwi5(cxa-IEwwlP-Ryf^9 zB#hw1v&XeHVCc4W#1Q>OaOg~IX;1+~zTo0Gs|f6pFHS5X5M=x~kygxmO%t()hLr?@ z5Wq%ID7QmksDKE2VwX<}aNAL?bbUfXeN;@I} z*l@)niad3BC3!#;fmJ8&npzm_c_$1#+~TzlWzHjT1j6EbD`mQv4$&GY0AFg!gJ=sY zv{^YjYZlH9ZlELKyYBgLV;EWy3Bo^lpvLkLJg|YY@gVZyM2IZV59XEovN5d3y#_L> zG0O$y5;?-*Qx_VX{rHFtgkq~DJ!y-L(xev4ZUcryOkv1THK|g*#jy~nLia}CAglqI z{cz_7?(;#nr1E-L=N}_yClK?L8<0^h9D$B_(ilL( z?(m!fU~yo$+(7dk9#l;r{piYP*XJBEiQEZhkNZ1Fqr`M$Llqm-xCU0^;0t)c?P z8M6Zy!tute?WB`+a37%MeMg=fFiXLmPIf!Umd0?r?A~+M%yP?~paxGp22R`h_ppu( ze`KHrNX(Y~;J2mJdX z=Qk{G>(MQaArm=x1J_*{a0Ryk?SKo19Q0!{*;hqi24C5MO9BXI{UaFp@CXJj|H0_Z z+ke6+4siHbeZRTfsz)>j|0!|PK04^t_gu1CwhqU|$Po;lzmRS7@3)uw$sJ#%s33n+ zHFqa2r&<{Lz3%OJtslEI*>8y94&hEtKlR#atUyH-7NQECD*=#Ppyi+|Gce>ztHcvR z2E3d~KXkm!u(HA}fNvyH@T~FhIo6(|nsyWv(S@U<3v@FT(FIqy0-gBGKdrPUbVgd~O_u3-at6mG?`OauGhPMfSkLuCK3ON=C>QY8I@FzBf@ zO|SnEAQ}+F%7^UyR;R)QgdTp+fW?o9Kd`{}hefIWKq0F8!v*N@Vomu*-#XeM zz^$4?fNkgyn1uKa0m-X51SE?&1Qu;H(ZC^mif{bDbilI&zgx?5668>um1tXEl>_^7B;kQj*N4UGchQ- zq9c-II~`v+F=2^fL!$ z@qnl{g1M4u`;(=mNoqLVn@-IGLX-;VE_B-!!IA+P{1|F=NY`5#5G+~0Nebuzwu0nx zP0|_)25Td<*3_T{*a}*2Xqq{yh;i-G{L$z)==uu1atd=SXS^> z8)|W#D{W|7-MlT7a|0x?cHuRtQdJ?GIn`Aux<-^OH?UHCq{?~$%}Ax_RJ9uE4S`s7 zY#4z=UHIsg)uBaJUZqo9WT{pWv#VDGTlIp5;yWhBVGGScIW_tcbH8RxK`;T9#*YS~ za`1{da?o~z99weG0(DM_i{OT8bY)J8&^GWz0c0#f!wxb?XGJ6f$@lzZv+dbMZ{QJJ zS)POAIud-@VdrMEH#>H7K}wxLpvBH<;2N;RTdGW5XG|k_=T(;Z7gMwBg32=g zifNY3sVr0X6ba3XE6cD%if%!y?p<10h?Uf!@bW}qM2&fg!iXMMCJG~pT%9Q74MA`> z5%-#SsoL3y*TRju7H*E#!p(jy+!(KgZmETvD{JAnkc}#fNI$u8~$QNXlC&!rYYQ9xXB zmXAds?86QkcRF3xP4UA%)Eg&|wBEv*0#M;xRAKJghzsKES5#q1h6-cul2jN7qHr#u za6VL60i`PZWfg@R{ffpLnXG8pPi6H;MHf-gSo@4tG_E6;ibkFK3YYVkhT+pVsAzmv z#4Y9gx-L{zotu)8x|U?9I(8LsYOSKKwd#cw)p=fzRAC={$skhK>Wdyy*VpSl1U}8) zLfT)TXC5_WLRZWP+7Sd{y%p{r6`z5M)ExKtBH~Lj6kn2|lLA!gjB|x}=V3{mNxM`) z)!OB@(noTmlFf;x2_7g8Y$F}Y{_Jw`km*P3Ir#ZL#0FWKHP{F;VzUc3T` z9hjzrDY;Jr6^k>O1#BE~1&$zSlz7|0=O+yk?S+&+(X- zgjoR>>K95YoD`p8aW@{=!gnBo{sboVc><%%GhU3>$QCHP47&JzWeGO*2&@BGb|nf{ z-3M6g4^YOjTo*9sbJ~j|VCMXiam=vAlYiPhSJC3c6}gf(X)Xi6rqSrNP1@iWgLqa7 zL2q$uVarmtY>f6K#e+Ca#qZ!5BhIYulHB}{7!OXRFaMWejFVEQxRt=kVhH_;vvS!o z_{xM4NSM3Ea;tg+-^8ceDG;ol2!b^f>TPiVYS@G^yn8vJ;-l&9?muBG-G8#ZA^wwt zO=dpijB*r|aioW(>}!CE@B=&bP3T|bV@o_>h+GH#CQj#K zm~y+M>j8q-it9ZYUYO_wai~mQfoHyau}41L0T&&Of}(tIimpBwEb&JE-UbG3*|nUG zg$YxA3SvE{A1KFO89!FVoiw5_Yjc0$gzw!&(O9;n%IWSNs=oEG9kEQ7d=FUo=tFS~ z5~Q>X@@g^X7nIa1NcftDbT--C+sIAC-ci99-`c`*C*_W@hN>;t?(Wq_kH10tYg80I zGlMFtwmGXh@yfq2KHlq&d}+pQ=qLN27(5K`yRt@4qmT9eK>ynj8x0*^X}>|i%O#B- zUUb7|KW1Zcu?Cv0<$Z{?AWWgKuPg7~mGC0Ucg14(^VjqS)HBS0yMU1aCaUEN1GFK0 zkH^~I`!hb%#fwb=foN3mz=r}jXxZL3Tx?Pdlv4t-8VBqGfSbtFg6M32$kv3{$M^4$ z*Yi*TuDX0!?&QKz8D1ki#IW$hds9RGA=O>dV34Ukn?*HoSAo_N!9%K+a>by$76!V! zOmK)X08esz-4@a|+ubh*XH|<|^2L`=j6&hT=n!zAlEG{_*lxv#68T1_cs;GMBY@EKn`EsC z&p6h`76ud8-p~WNaR!&bGmgMX%hQbnEu7bgpadV4?B?VUulxGFAHuCjlSEgLY92H) zARZt=8e1DuytssCW7z(r289Jg+Cdte_#_(~H?VNiXb)al(h0Yx+%#;+RJ<6YbDW-X z%dnlM&c!TMEi>u@v!`4f_Wh}IaV`~n9jsm=9AQ7sBOmC(jQvZ+gSirka~=2=3qCn% z4J7~$tPT5{sdE9Zz?%r($PbqR$=Of6XJhT#hB|1TD`Pv3b#TgL5g%VZq|FLIM~KiO zXu_3m=ua%;V2NjfZ?m}#)h`Y+e%*}rN3pP8f}6Nu5**B?H4PyrZ(WusJ(5iUIfUqJ z(upT*X&znp+ZZ-AI-KiWn;(TmZCpoXQkgLk4)%r98- z5|E%Pf$gacT^h*#*B2pdH6S(w8*@s0LU3;r@6+JfUzNk6*Z}o8N~q|du~UQ{5pkKr zCLQmGKWHTQb|ZXQe1Kg61Y|YJd<@+OTQU!4nWND!(8Jo=@kfT&P({!eB^litUWqj1 z2_lz}5$aWvN|G!w1fISp*2IpEzuGI`eq@K~w{Qz*3*qFv$_6M1cJbaZz5$8vK>}HQ z1`+`3?gxQs^kLetrlNWeY*ou;_+ouDUipwC`$4>hFK6Jygy`G8!IwhefUqOV&?{nG z6Wt>vP!MYcfL#w*%wQnY4*WnEkiLf^IRc0;9q!V@Z}I6b9pdwb>+#V;e(4b3Kg5>~ z_3^-NeB?^na1N73-D&w*ZkXjrmbwHX%ym_+yw;9f`QBe~K~ddEha;FbnR;@$5Inp^ zKgR5eH*2BBWq#!?`V5DJkcGDpb=Ke@yboXY7>cPaLv_}zyyPKI!9;*Xd|k98G5>5w z0jhU72uZbcu6i#?@K^E7taKgTlZKiu`120(c^suOEnwooWI5+02cQTC&Gg)W7aVYE zf!ragY2yh~2lj`U4*9%r6jtkkTTV3s4v-;NaB&z-&2~r#$K=9;dNIn1BLHqm7M8=1@j~vT+(vjBvr`zaw03;7WKztu!_BCi*Oa2%>V~< zSc;Wwy6~d!V9C-RiUG#-gGfhKp}@PuwHI$uE?70ijMG~r$IWFOTawKz^_ONaVFha< z!kAo*BCl}S6#W@W@3N70sn#YP5nbjfa^BVLi z4f_25*WB5_*i~Ey_`ZAJ?!Mh?uOC)Q-B3Aq7h{&zKkJ`3j^hyDO`w#NgtUb;ZYvem zHe_uA*x-=z_m*ALRbuFt8sXAKY+Mj-Wtt5&(zY_~;@F83L1m@TS`nmM1gg{8s)<0c zT05`bIWu!-F1A}sQBjw~@661Z|Cuvq&YW{@3H7K)ebb@7?oi(>p`P%l#~do^lV)^| zl~7N5)OQ@}afkX&3ANEu4EZUC3JEc#o+_b^c+}w*J3FTx>M-B#^aDBSQMWtPZ53PU z_7dt&kGjL5VufxRu%m=J?or1a>Z1;Itc1GTqdw(O(JeHkK2<`U@Thwn>eCK&PYHF> zqwaO6xFa&9?)9iDa1zQeSxFz(b>?VWK_&vK8PGfI=^a7&*=Xt8zMvl|9fV$n-vY}2 z#FH)*IUT+InaH6&xGUAH4x0l5Z*HzTUsoy!H+OGbL5qpTh!`A^Yki(MC5;L_q{7{- zfu4aKaiV9oF@#Ha5`@4@qNuO_pwwc-Um+qi%Og@+-F%u_6e*)L;S{g8Zj^xlg( z-uSq;=w3lyPyExRoUHI|Od6Ilda6RR#As&h0j8ZJ70EzW|3H`UZ)3YmRF6AliF(6C zEpSofnA1fka8?O<o5Q09@fSu6+=L?}5*Q21dzDqH=59mBdQlT7jgAX&U^xsqw2w+*N?;_Mx3 zvEq4b6!udMhXg4O%P_0}iz*fcY^qhzSTQSj#K&Sze>pJjvA8_i;D?nU%uAM#Sb=nApd4# zN?(t7kHMTmMDrv}0-7<(_kyEmBIh6#k2IzmqkquYp~nlBz8T+Xp!8qV(s#E?>0(tb zr5|bKY@+>I;z|3gMEoJ%$oNd;5yqcy7@G=FNE2N$F)Ww*4}0us4<7a42@f{fWRNu5 zhzCd8%*bf`P9Hz+!QCF5@Zh8eMXRRslM%*4`V&RJqqf&9erfHF{X78PV(ibDDsa^l zt)(!##Q>M_uvX}Fn-&$ran#qcx2-^mg1l26Vx(8D=8X@EraSBek;edFR)pn`(UC8K_y)1aZtzEo)bw16dd^ z{;L{WV-_YA8r@l0;nVejz6ToPBaP9~Mr@Yg5fIR+Wf|v{t|(bU!??o9+Lo6uj0D>* z;#m@rWNI`p8yT)pvewPCs+!42;LQyayG%Gv=ZtBZwMAZI63hof#QEIWam3d!S6sdq zeQunp!jmXnW009_ z4D)cLQ7HBF4Nl3eNWV}X=Wnte2givR8Fx6Rh-wUukBpMhX4}W27;HR1M1i$eqXeh% zfW_LQQBq%H&_+F_QNu({xw6mzl;UYZjW)?5r>P^|vIdP35FwtUoDz^6xFaIqw$~>@ zi}1B)R-wHuq~j$B^u z$bK~*ay_95rLL?fcSVv_i-x`ke74TqFPj_+p)~E)2i(z|Xm~fy-69Ox9ljKha@UsE@d;q@?zy|~P z8w}@aqBmgp}jjAHdHB@bdxuLI58O;FkmV z)c}57U^o5&d^~{P4dBxOyp0Q?%ll9OKN`TV3T)f|asVF;;1>e;`2c=4fS(TFCj$7< z2ZJ^Q@U{RxE%=qI;z! zAKPzK0%R>iL%Q)cA(S}DcYs6k_ehovN6aY6XvCR-P?ee$Q;;O&#)fc-X*HYbG{YPT zdimx`L&GdxDZX`>IbKC7Fk2dnm{qHy?Y%C+{Q~eH@dl7wdfNai2U+ zGN-#q9=U|h+P1~{C?O|ofn6lzge`GCPRR8l78TE~gf`=6OGi%W_4ZXls;Eha0fI!> zfsTw3tHkgMOPL)xgH*$0LD)-ln4axfVF?@;kQIzjrcS8he6Nq6AYRYMuOb1k2kAba zJV~;gI%AKJtP_aW1)n@cvfe2lC%MB6%N{&OC{?9WZh13ZrMsmYNikj%67<72sRX!4 zosyti1{B0iE1OxQ?)6nnPz7g|sd_@td=>jV+N7e{4osHO4tTUFMYA253eiN3M_9Ie ze3!WdiC&Z(*BL$r#&!wI$1N5%1;h%7;&@_z4OvPJ5CPq4Q4~_>Qy;;~i<{c6`QrMe zHc-DI z)-F1;kw`qIYA_dty@WJ}(;lr@)Ju{$=FtUOaGz@7As|4MmW!;BO(^nP5jU7c%@ql? zA-mDJD1$?CumJ(C|MVn+~bih36iV(x_C_;M7XMeRF zN{XaV1YVCk&E`pFWy$U;H?Plw)s2x{poEqVj;=1YIcpznv4 z*?~T!8Dtz#L{(Xmj#G$(hI#NP^)1d#r zp-($>H(k>u^kWA74TpZzp}WaDT0(!vp#PggKjF}eNhqP8GUz{c=qDX|F$pE~;S0?q zIP}Ja@0|q5iJOGPcu?U^DSKC4Y>4ES8QA6W@1{BgG`c;_Sc|}y@LxEL2{00gVTT$F zUUDS-oWq#ZCKJQqU@#6CjK6UhQ((w_V~q2`VC<$>Ua&qv$kA)A-K8E+5we>hO;^Zj z5DB#0vV{a2a;$L#<&oy-pUn?r38rZaM`j}bj>c&#{LAR2X%|$n@U}Q1FOd~_U_n$S z@2KK#ajsxEcZ(haufJfV>9LygP=_$>fV9WTFC!x zkbN)XGdxbN{Et4iBuEth;dEa{;iw1YA<$MK&wv*EX9X44KXK-PgdVA)mmnf-v>DG7 zc*8cjTDfVs=9UDI5BvB>JocEzYTu3IQ=cS}e7fS~>CiU!F$J}`d(oG3s_OLn))GI5elKF0)S!85n1{3T&C%#0Tz zQYPPH7a~#?ualm!+&w5FQW2qRs|yh++sC66B2rALeQY5j4c!3-vQExXiY|Ix$U13= zm-W#U0?xx^9!Nn$$AyIyl!5RKD5Rhqdp@?1f+FDdv4s#ZY-}JKjq*Z>h){#3w+fT< zKKd^d(J?i4Rj7QAh!+h_K*nqgJ=Ka`mV+$M@frdl^EZV*LtzPFr1(#smbOU5+q2@< z``X1Wq9BA;sT(d7W?Y;<=SB%!w7WG@qO6L}Q_xOY)7`F_^4&HF3;Jo*huKr4!$w9J z>A=r*tcbzOj8-_FoF~AcNXoD{2uI+86-N{0%Myao)uBbe2X>ldz8|6SGc;aK3CYxf zK@9qku*a%iCJN%h$h8~&a9V`Pjdn{l#FfV*QB=f9E0KO3l_}w@88A3(UgPwg$G*nJ z)(sUr?lXZI$g#hgFJod2LF{9kHCZiVo+x2vv3ZT730aI?@viyO7*_o(7;t$9#7*Rr zr#>_!n%mEGwIh_S^r5~ubS>Vm#V0rF$owCc6BB*Wwnd^Wj5g!GkYigW2-lF)@Y#)V zOwyzHKK>IIVC_P^aZ#B!pGmG^3bczDEU1SsV!vTxkwX_Xm_-FfRce_@R~wVbXJ=Nj zI8`(nA>&Hszn082Zzh?g08)y~U=#svJ`}Pq;bVnWk1n3!C=w@z(v|%13|VU(bR~a9 z!8Ctz|J|q%P?29>Eh-OMMwn4Z4>^e@s@lY>1s}yD{?6MZI$^Q8QEuJ;njc+_67#$RYkW zSh+YVSgYz{cs(GKtaW&O@HCD0$r%^4aN&z&NAFwESSFqgi>SIMq^2nU`7g@P z&y}9CyS3oDtVp{*X88Tl5$ul+mZ|KI8N6M~{)qApjLfFo~iRWF}cu<+4C+E|#-R7N1M$Qj~?iZIm#`OP@@da*iBns;PXQ zc^SwPA_)^30SgKVU|9uuqo7_6Xj^Zj^^*6b$s4CvSRE61069vY?Hm82)z;RpJE^WQ z?-TVcq$Q&0DO+efud))Aax}WZMhPjuy&1C z&g59qm=U9cf{zTmduq&h5R+)kq>rJDcM#3QEdMK1dw=@{HpHqx>WQykP@W1RIc7{G zYB8FRMaR>WoK|&brfQpw_4&rmU#Lcv*ndUTLoGPcsHsg14HbhJ>NBP==jb92j_>Ir z@6Ye)A|FwBPZ#A*>$@my<$Jp*MmcA6Q6q~kVl+n=X<`)%9NW8CWoptnnL#}Y&{ki? ziJ+Q6L>$D7nTUf$1XoalVKNlysowjUSm-R~J9rnV3VUgo&Z_q=QguE<4%cMC@F<;O z|H{j(b1#x5^^a2)2YcvY#9*5wU1a~q)udlf)OVV$+C)}ug%LJu^-4XP8>pRH87wJg z&6<>*r4+MvP0B=(qJ3bRrBt()4aT7YBbH&v|AY17_K^HCSpVCC{0UiPDW8^K=KH7e z%lRW!z5gBfFKV~Tjn)gra9`+f3ogc3rL^EAqO{-)MzP>bda8PYvcC4!(i(-yRHd^4 z#NgvQ@E{q}^X*!CBo=QMaUOrBssp$<5*uN)!H+kxN|n29m9G~kFgl_npCuc)z^K`@ zy0unoaeKgGal`p8GI7-nqeJ2Z0s6r=Q&`AIg0V@>QHkHEMlbSgEq*Cj=BB7-bJp#g z)be`b3etPGq{An+>49D#wOJ&RI1P;6b}Zs(c>$0|VmL-MF{E|s;##ax_-eSY0@b{> zwVNSWWP_`s#Rej-w}@L(#4Ro2mKAZ!i@3jpzmihP{0)xW7_;tl7K5F0NCpj z1b!(}qXC3@7#HUUTVgeF}blrHNd_9djNlGpcXkUvh5e${>S(@Bc zA&F@^@vq4Hgs;;E8=Glr?2#!Gy-fy5ZS$omwo%-Ie22)U9jcfP5i|`JYSM5Gu4scP zhz3_ogSnTrGMM$-%@<=h81nHkVGPVx-M&`jq|-Cf3yUf1;thh&TuECa=NHg%x9lQa ze7YT&?X(Lds&eUea~f9;YVaijSh|;1G0~8!rrJ|>xU^c7RX^}S2}ubyv`N!0OY~5x zp^yGR)ID}rURFa3KZY_Oj-6E2HLtO}96%zWVCs-FM&J{PX6M&D(DI_vUlYJ*Rok z{O1$RpZ?)2jhby3JX3ys6kE7_S zIZ-tEg(zA>{2O16qD!_$(I0n2(Omtj+rL`ySN$LU@GN>hf0h6Lf0_MT_W6AI+TXY$ z`|z)SYQ-n7{LSC`$QOQPW#3iTUH{Qvy}I|BPk;6^zkKblEnKu}&4T-W>0?>;@oe#u zEL)mopL5x>i@$usyx-rlKD%V|y7~PZ?zrpHuiVsg(?#3@hg>< z{!KT0>89(KEML^Ss5k4m`Hnko+p=o$;+wvB$IW-%xTycuTNZEHwAK8xkcC$yemae>^f8~Z{8`fX;-)lXrUjP6A literal 104881 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 Ad;kCd diff --git a/src/machine/c64.ts b/src/machine/c64.ts index 9f5e32a0..9d1e7cc4 100644 --- a/src/machine/c64.ts +++ b/src/machine/c64.ts @@ -1,8 +1,7 @@ -import { MOS6502, MOS6502State } from "../common/cpu/MOS6502"; -import { BasicMachine, RasterFrameBased, Bus, ProbeAll, Probeable, NullProbe } from "../common/devices"; -import { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler, EmuHalt, dumpRAM } from "../common/emu"; -import { lzgmini, stringToByteArray, hex, rgb2bgr } from "../common/util"; +import { Probeable } from "../common/devices"; +import { dumpRAM, KeyFlags } from "../common/emu"; +import { hex, lpad } from "../common/util"; // https://www.c64-wiki.com/wiki/C64 // http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt @@ -78,7 +77,7 @@ export class C64_WASMMachine extends BaseWASMMachine implements Machine, Probeab } advanceFrame(trap: TrapCondition) : number { // TODO: does this sync with VSYNC? - var scanline = this.exports.machine_get_raster_line(this.sys); + var scanline = this.getRasterLine(); var clocks = Math.floor((this.numTotalScanlines - scanline) * (19656+295) / this.numTotalScanlines); var probing = this.probe != null; if (probing) this.exports.machine_reset_probe_buffer(); @@ -107,12 +106,21 @@ export class C64_WASMMachine extends BaseWASMMachine implements Machine, Probeab } saveState() { this.exports.machine_save_state(this.sys, this.stateptr); - for (var i=0; i> 4) * 0x400; + let isbitmap = state.vic[0x11] & 0x20; + let ischar = (state.cia2[0]&1)==1 && (state.vic[0x18]&12)==4; + s += `Scanline: ${lpad(this.getRasterLine(),3)} `; + if (state.vic[0x11] & 0x20) s += ' BITMAP'; else s += ' CHAR'; + if (state.vic[0x16] & 0x10) s += ' MULTICOLOR'; + if (state.vic[0x11] & 0x40) s += ' EXTENDED'; + s += "\n"; + s += `VIC Bank: $${hex(vicbank,4)} Scrn: $${hex(screen,4)} `; + if (isbitmap) s += `Bitmap: $${hex(charmem&0xe000,4)}` + else if (ischar) s += `Char: ROM`; + else s += `Char: $${hex(charmem,4)}`; + s += "\n"; + s += `Scroll X:${state.vic[0x16] & 7} Y:${state.vic[0x11] & 7}\n`; + s += dumpRAM(m, 0xd000, 64); + return s; + } + case 'SID': { + let m = state.sid; + let s = '' + s += dumpRAM(m, 0xd400, 32); + return s; + } + } + } } diff --git a/src/machine/cpc.ts b/src/machine/cpc.ts index 43b09c49..567fc5e1 100644 --- a/src/machine/cpc.ts +++ b/src/machine/cpc.ts @@ -58,7 +58,7 @@ export class CPC_WASMMachine extends BaseWASMMachine implements Machine { } } advanceFrame(trap: TrapCondition) : number { - var scanline = this.exports.machine_get_raster_line(this.sys); + var scanline = this.getRasterLine(); var clocks = Math.floor((this.numTotalScanlines - scanline) * 19965 / this.numTotalScanlines); var probing = this.probe != null; if (probing) this.exports.machine_reset_probe_buffer(); @@ -66,6 +66,9 @@ export class CPC_WASMMachine extends BaseWASMMachine implements Machine { if (probing) this.copyProbeData(); return clocks; } + getRasterLine() { + return this.exports.machine_get_raster_line(this.sys); + } /* z80_tick_t tick_cb; // 0 uint64_t bc_de_hl_fa; // 8 diff --git a/src/machine/vic20.ts b/src/machine/vic20.ts index 13fbe8b3..4e394b88 100644 --- a/src/machine/vic20.ts +++ b/src/machine/vic20.ts @@ -73,7 +73,7 @@ export class VIC20_WASMMachine extends BaseWASMMachine implements Machine, Probe } advanceFrame(trap: TrapCondition) : number { // TODO: does this sync with VSYNC? - var scanline = this.exports.machine_get_raster_line(this.sys); + var scanline = this.getRasterLine(); var clocks = Math.floor((this.numTotalScanlines - scanline) * (19656+295+32) / this.numTotalScanlines); var probing = this.probe != null; if (probing) this.exports.machine_reset_probe_buffer(); @@ -81,6 +81,9 @@ export class VIC20_WASMMachine extends BaseWASMMachine implements Machine, Probe if (probing) this.copyProbeData(); return clocks; } + getRasterLine() { + return this.exports.machine_get_raster_line(this.sys); + } getCPUState() { this.exports.machine_save_cpu_state(this.sys, this.cpustateptr); var s = this.cpustatearr;