From 2d412e233d3a425830a3ed48d24e66b95971c41b Mon Sep 17 00:00:00 2001 From: cdez Date: Tue, 20 Feb 2024 00:48:11 -0700 Subject: [PATCH] runSim partially working +- simulator.c --- Sim02/sim02 | Bin 0 -> 58576 bytes Sim02/simulator.c | 77 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 71 insertions(+), 6 deletions(-) create mode 100755 Sim02/sim02 diff --git a/Sim02/sim02 b/Sim02/sim02 new file mode 100755 index 0000000000000000000000000000000000000000..92d9f02e259be9370427bb55d163fe5e6a48bd10 GIT binary patch literal 58576 zcmeIb3w%`7wLgB&nb|Xw=S-f2_warQNqC4LpadA0U=kupG%9uo$%Kq1nV8J*@DfN3 zC}~U!7Avh(k!!7Ot;N;{RmAwXf?ltswO7&7EB2}lhTb2(TH12W|GW0%oS7lm-rLXT z|Ns2|e-7mA$9n9w*Is+?wf8=A&Q@Q^GDFujb=kBlG)f)wh@3?du=6)Ef?$z0S4+cv zf;L`rAZ_P)0=`HDfQsw55g)o_z6~MKR#RH!7RkmxRWsRC3e>p^skh-5l3 z%qSEbRjA-*dF2AGC4{Mxp9*8?NH@ot1l_Ur_;82R%fm8Mbd)5zlalVFq%%XQh?6o@ z)g+zJ-(0EB#Lx>EU0#0Iv_!gUNtYNdmG~;8GU%%KAX4|gDX(18xvB-9#BjH)mkL#R zSA&l9^7me{S+rHMybHBMq13+$W${`;V`%N1*#(Vt(;Gw0(T&qL&Yd%T&g}fQaQ;j# z0?9>XkWDQwtI~`Pt(Wo?J;k%}M`|VbHFqbEJn@^Z(ZdQ0wdDW!S<7S9U-Ky*L_;`q z5xz1BN>e-?e}p6I|5e099)-UQzAi0=Qs-Z($jUrFTf5`}`FA7VI|%;53*b91kiYr@ z`L!3w&$vK7)q61cA49$ue~H(4WDJHs>H_(_$oJwe@hU~e*u+dq*RKmkYPFVVq)n@D z4F)wNBcY~XxW2AtlU5&Y2{vm@HI0qoS}hQO4b=wPA~mg%KvPYq89AZ0aP7Q#f%>-E zn&x_>Yd6*e>O;*njiFnET77L}xGku)w1%1^^%@bAz0J{kM zcO9^sP<_>}hJ-?CG~z^L-s8Kz1@p9NTVy&qER;kXyO5?!jely~IY14L>$n`>RDO%h zFYn-BbDUD?-mM~^`a*0!IU18Mhcb?MEG9o$kn;QSn0!>kyiUgCQ@=B>4iO`JC!184 zt3$*npZc@9JRKrN`F!4yfV`M|(Vqpt8YCgkVw9(JL^*{Wbk{V>hoa4EZik3c zeu|l^X^Ud=X-v3yUDUuu4P4Z~MGaikz(o!G|5pS4&eJY`H~W{crunz`MvQ@D{?3ysaQ<_|}Q@uR>Q%aLdcIp66 z|B%w;DxKQL)B7n+F4C!;JpCO?lWTOUgQxGJG`TaUT6p?vlqOf`)Eb^1hIIW-r1>@D z55---{EENpcmB@z&y-jCX7tW@#ox2=bpQu)e$lLHpVjBPM{nb}R3E^u1_OT&TS39R zvymLA<53`zI+6xXx<_{q@{2MA{uqvbDV6J=@`b$HLzNtVJ)W@^>!0o}&J)4MlQY`&Y$`JRT~BBf9PynYff4pm__A++YB%BvD&MwxO z!@M$C%9D3{h_Jhd=)1QIX0HRe4a~Roy0;BQ=edaDvX~?f$Np{awH4 zyCjbgBO~2UZqEP`qNoiJ!Q=W|E`#1b%HOk{a{x&XdmIZ&fDe+0eZT+jfq{O|h-L|X8#uonzsr)NPZsWmF`&fDOgdgTphxX{)v;5sveL}7`33>!p znIKkatXSm`OI73EY?2pM>h^KYn_;m?_w^@>DmY>BsMh6zzVGvM0|OlJ%8R_Ay4ufz z^6bk%qF|9OLqmo(8QQg-Hwuc*(}i8_r~O^glm4!%s=J#`&!VDI1K@5%lb(k#eM`t@V}ZpfDNbFtch09)SQICkDwh8KcIrV8s{`^Uszo(qEr6fnSJI2AveV=vv z2FK{h`Eb5jwhU#oTqebR-`#$UJv(NLLi56anxEtE-d_h?9TYX+oL%DiC88BD* z0(6m1s2Y`p_j^IoLMSR-j2?O$jS=RqB^_cPwwohNnK;61FGi*%&#qrdPTS1Xgh z5y@>b`I<<6PbQxg$-^@Fs7SskllLQO*@x#j8U_2_A)GF>I%)q1a)gaZIXX{!{L=Wy z3ZTm@i9qpu(8ijn!tQK8t3~oS$L>Xw3G=rwJanJ4{;tK7c|P*a{5hWbtEZ1a7yhni z=hCRsy`2Y;tbYZk=+WDRVz@XP9yS5w0dwfivl! z!sV2@>#oA|!Hd&P)4Po~JIYJY2RGMAvD8r9J3@)D*du+*{siSC_|Jb7q#WFn z^BoQoH66i+<#D_wvPFpepJK_M26=xra+_jvA5=`GAre_-EJCM5=iOH>B9tvc@^pTzH^)Z z1)-clF&u#zh9f^&Le~?EcyRYz1ocOJZ?@6|3Iqh7QSh?wQ(ZYt7`!;P8cw$p5&G&C zmk~qWR(~2sMp5-9Pz8UUdm~kuMx4&}lUfuFsVK)=l+S|lAeDIPm)vQ%yPTM#u7@!a za3eehJLo*4Z|jYY^!IG%;GUfSo@18%_E0`V7H|c@Xz%%q7^tE?wh&jDMb)DyF;M)F zkh?Iq(Zt6G87}#9Aawc8A?G;81?uh8?YrIt`;pjS6l0zR`b>ac!xV&xxwHM8)4lC+ z5?>Bmb}o|emCE4^`Md8H`Zst9;QG@~V}-7>g#IpSC-n0eq>y65M7WrriP;YGMx69r zWV3@yAK)U=xOkrQ>6Y}7dr$|Ld;5E+11dh>_nCWp2d@t=M-?BH#lunogaKHMmrrTb zD{HuFyfJ>W@eW){Kwg6pdDM9BZM%UFHc&h2sM_v(7T&jj*War2`S>TKEul~CuY>7x zEik~3R!$bbc8lLK@Z)OjztMu1@t#U09j z30`1lpAH*6$P>j~FBd&$f{MFdDtgvTJx%8k{?3nd3<5u=_|pXP|LJ4@&AlG~l$ZQn z=!(5iz3)J`uh(S!Fi#YBy-@TF;mcHS(a+7)-_Lm85#MV>_OkC^@%O4_6MS4CPmY_# zIj9$_l&iX{Uc>rHcKHMTuGdMEWYt~1*U&CpnPSQY5R0p~`g*W}LUSN_q%VqvFdrEr zWBPOaM>skaevmJ)Z^Qkd9m!K05tH1^F^pKh+(9$G3F31>Tm}vPF&Xvl|I=$t*>X^f zowW~OR6IU|s>qG|${ap}ZHTMoK3U6OK&aSSD(?euUeO0ZjEe39%k)_$%hOnS!56Wl8=@CRa=IplYE5y)S1zD49Qj?A17JQa9;n|5q*Q=xBeH z7J+1fSOlVbqQ)ouJ;CEQ6s<10vFIyB0c$~z)d@yP?&|Pu8H}-_cgm%Fzdg>gp#?Df zodw=4eWtgg@}@<8-9Lwx?dTSL-J1I+aKc~USVxfqtfQcGAMVwU^^}t%)z{@A-eMse z<6H?WSU$A@#;5GWlHi2w!LU9cdj+vNqG2Q%0HSomty;-x@qbv4%i_xHt~xh}yVvPE z2bT{JUK!Knv%Ex7)U-jxe*o-78+4uB;XBvSey(5(*6!!#ZB1Oen=R$(YCngDI)mEM z60I9^yR_r4V3I)(bU~KRUcKLj&{~YdQ{8A$P5v?}bA8^EGuI;d9CISM39Y=#!WHYu z8Dl};lF&*E`r&j_$e&B-91Hqi7W7^T&9k6yThMk1{R>$#xqv-6FI&)ngp##L=wlYN zNJ0-=(0eWDI0@ZnLAP5_CZV@k(69yleL86)(jd!RZ9)D`K*}VfZW$Y zn_kZIo<`mal(%fjvI?2^67pU{-VxvHt5!`frxlfn0amoaK;B8pD-Ab?BH>ob`yKK= z;#8-Xg&KoMea2INTpW%xAoT@OJ*Du~9-*Gybqw2q20FW6@5PoTjdlBEKimjSs0C!_ z>2fs7L99IM@mLepdHwHE=N@*mOs=D3x9=c!z|^|6PJsC4U7rc>>~)b-(8ClMI??+4 zlDxZP2kEG%sux0_lqYC=sRwQ)Cn=R2IZ2L5awpOpUK|Vm{6j9_)vP=SAjxup()Z7R_PdcWPiEXD(Yrf#t0Kn6va{gie{&H=#ll-ndh)wDd{``el?mSm zxK-=tXjj~|Fur{E*D=g6)_)gsuYj|*X zH3A%8B!dJt@he)XpC;z(2ijmC=*)goQZAEb3D@ z$j?niL-c)}kkNBbCDZyLW^t=ZpQB2T%!jG+Rp3YeNd<`2VR~F)EmmQ#Kq^tM+c{^k zsewLp3XYRsE|ZbWK&`uczwT`RwavY41$=MB?9uTMrI+gp#q^~4IA2;g39H%&3HsZC z$s&2Ur$sVxcSKTgPmMTmcSRS*R0bTJ2^{879b|QTwjbk-#I@Op`u2|n=rybOf16Co zwu=Ar???epkbvDi9IxkYV$tpUHH|hechON=De6f_Y4f3G0B|VLc{a&?$3!H%dNHri5{f}ccrk(mfgv>WI%5fkjmC4soYp~8Zb&T_p z^*GY!g&waeuwy5UP5rmT zlGFIpABfG_Lpi0fIW)%f&xfo+xkviGMXNF?)II{ze)w^0J@KI)pv zwr?$*;}*^Wg@c}`o%*qb^O}W|r*L36+NmxJ=dgwI8R}1(I7riAzj7^qZXvv(5HMG1 z{maoBB<-UX!cP?f1~ILFqD0tjA?#8JaHeSWilk<`y2=z7GG$Azvq-Ozq%Z~2g+#c@ zLb%jIAce*@BQ^R^#r&-eviXH&wWkFSO!$IYVyaY)`3?Zc=@Gf>rW zS`wqX^6}N>zT-2PL)`fK(s;-s$Jc|1^YN8-x$4~ozLOiWG1U6-$VLHs5x@=X)X%_x z*6OEzC=3fDRL)IACyZt#te945n=EMSI1@TULT|93*IUpm36&;GoR?V8&p|_+M_aVh zEa+PjO26FU;+=(#JKOuTjmfyzxxe0zGza`nv<`6}GS-yr9!Y=1g5GO!r`k~2KTu5e zA@bGsz5$!2ZAn8!!*QPb>pcp*4G}7Q3ntsXx-I`i1@}jJP7<*Dh%Cf2Ytif^%1EoQ zR9;x5L_+c`$R}WnVRNR0{Ff#EaRJHWJTrIpdv^Ax?d(t9+3(!hZ{OLk@1z|I(~=7@ za9{+C($)cYS!O^Waaw>i#*x0UJo%YiBjJ$&%)ZF}>TfVg^CRjivFRY197`0fe-d>z zz88VD$uV=w;<(>Dp*kn`S|l2sQo(w$n}QQ6Y30DClPgHYx7r_g$8?S>@L1MlCAD;Z z`!A;_7T*D5C6FOfq?( zXFcd3#tZD5DNWr1lfjb&vh4mfAjKh+Y`^|7oxacFm2Z^-m7MEeh$f!zJF|5>HMO~+ z>`V_hHbD1CoN)yW;c6SU2A z9Kz8qnQ2rp<`UE9X>ZfU|2Zt|q!FAu&NFZbGZ4w^Xn$WL2lm|PE$?=;pA>O#l&yH+%6CHS^d-3u`;O1^or~Vj zodsEI;T@m{U`a+pj@IuY1yPA$cI8$K;pZ9re?aHv&KkAlSv)ca8{L63w!>AQ`MXQ| zQ2VpRU9S{%9s4<&R(qOmhv`QBum`@hsdNu_0{GS(9uVMUzbxWYfNM zIzIdd+PxoJnlXAXJHa61L;P3(GL*OFd1VegZw@{t0M3W5b*LeRC^=>R$WI!=XQ2iaY^F|NYQX(}*6By~~ty><3 zSSaX7-<$sqv8};E?Yl18;>Nz~^;?r*X4pRU_S-39+D3U-`yqdi?-*?#@|J%WY^bK< zsiEUtzSHuozW)~B^_qB33A|o0rXPhupovR-r+HJJ)i$Mk)pvH$Vz(yz3EnWFU%gSf z*5iNvBX8F)pZ~Mt+g(SepqTezs+aiAgnDVp!qUFG>SVX?eI1a`_?U5M^BwVH02jF{ zdO)6&k?9;V+}ozXc6sa@uZfrzNkLkVG@g0}84&)YDg0l4O;39MVkw^VB=vQ%R}e+4 zuZz8in92DFdmKr+j<82%tUK*t#JbsixTEO~@TF!xhU-(bG3m81*xOmY>r6bNN{RzH}i_r`$(O{N_Pv! z=c)rZv8;Dbeg}WQ#NScA-`4jQiYJU-SmfDLq(ZY=r+$bOB>e^KjU?SAB()m%oi|87 zKOu93z`b4U=ZGS9w2S==v2ONb+%18>AyQJ{9+8p)hehfS5V()T!MJk)fhUrPO5pw^ zQ`(*6AD-n9+?spMajBdcBbC~h~Rw(SRr09mU!(07)SkY=@yFnnhyNw>7d zVVd@d`zy~QUJ9gYL^6DRR4zHDXVy<60AaGl98(~0dg7Tjo9C|PWV{f7rlAZ-i%2gj zdXO7O1}a9my#Bp0b-=@>@S`y+0+4{m=J#yIy$yFGknV=g*FY zlW`1Nv-&Z;cgpi!uXY{l@fVu2DGe%JukOHf3i@OI(60o&=xT=SYJGf`hMTf=4>|sF zA|}$8wL$^=jBWWa4)QcDxM_aF{N8>#$^DHNk?tQ=-`UMS+6hMs9g2Pj5clLiRD1EdsDXH}6eyhGy#aJL(!Gi9t!+1Y7u53S z$LjIuA@R9F6ZpXM-Vkn~C(3FXZ}irM+FBZGHnn*LcC=MIYeuzD_)UZ2H_5s}6fa#U zGZwEk+T7-iGz3XLp=*KG8oVVMY7N%O@|1MELNzTd8h?YBsGc^V%^M=Yc>SkA@szA- zT^DT%Hb;`RU~`?;wy90iOtsTvmfoeJM%whju4HXxOKrF=c)3?AXbIJ!HS4s3+9ry$ zX?4N%T0tnx<2)=Y(vp)3P@;E+$fW2@K}6A6A{uV-LKZK*8Vwn9^XJrS+#pQ3sFvbM zJ@uR(e<&{=&L5ytkIz-mi`0~LdI@p*QZlS1kR2A$+8S+%c$<{DH3n<&Ml>(p-WQaQ z-*F9^{6o!9VoPH%62wDl6+C~p*#$ParS@|>TlQlWk zcsZZ4nx-Jf1Gp_&TT))-t*C7X)uW-d^ol%zA!s2F>A|~XQ!N0iphtoVSaHG1gnSED5?<$x zge@seo~Q@G;_D~r+Au~6qqYWLp;tBJ5E*Hk^eyZ=en>js$m8kxz#EHHThkJWwyGX6 zp|KtViiZ9kZWhJJc2(tvBEcpv%+4FG_qNtFuQU6ZIan!77*JD7MB|<2Z`VfIkD{gy z!Fy`Fe2|IZkaZaT=Hc%;{59im5B`3LzeD(Y9e@4!YrCm_db8Hn8mXV&f)^>)w;^b4 z#Z4MuL3u+B-mS>np}Z#25Nlnb=5<~^h{RddZ$p8WzhLyxvJMfFQs@m zWi(#O5Ji}MVqjo8{#x<33xEHNzk~RbO^RUrA{Ec~su+I2v@O3#q|RKa54X*ycdp_` zRa)M`fq|2VA4KSadvFxt0i+-M`M>}@OM3k?0|Sc?-idGx!mFOe8!-?*f^Z+gHxTwB z)DMFX!YdKdi%p+H=ta2iInX0K&Rr4k10_IRa0~-G`@57a+V24-BtC*p9FRVIiJA-iL4= z9w_fc_}>UmBBU!@1e$*9Dox+$(TArxT|0HBhw?|@&-2v4z*vbx!Ql9?0Kf>p@JW<~ zP)qkLOV3;3PTAn<(5@Udf9kC9oDI=0#oxogqX!t(MYOB&*M;(a09(+C(ml5uOVS*+ z2X%Ey~U<9&G;Li@5 zn-mLQYwj5Nr*hS-vgBtlwVb`_VUwV(B+qYjbN<7PP zeH?w2N$SKU3?#+1m7TX0!OsDH z3+AYo;^?0<=|^BL%E6qa$I+kTwnQWsuZtSEsDX+US4VwEhqevqx=92Y{S=sA9ud$lf9Y~9;(>;DFY-%$uV=VStG&QsGOfPb zL+ehu6#Vlq2Evr4eO$V*B;^QV|magL>F!w*@_Ng{R=1-OxDxbe$9xx?$uf(GtWYeX}|0}j$M2;}Q#=Bkf?B46l)4y$sjO@OBw~ONI~0@JSgezU3Vv zwtUHw%e|AA2G@pan!Ph-=FiM8oIYdr6dBc~0ZTNUXn>#7?^1C6^#Xbl_N)0*;5Loq!L3n{sz;O&E?F4B5Zc&ND6e7bJ7gjo44h1PIiMtwGH8kZLa4*o+kjhi+&$Jl#^`JUH2m~ zj3;*Jt{jSK-Y%3=j3`&mm0I#D%Fd<2lU_uW&A$nEy&g0=#WZ^>ZjKeWu@#II@->2UBo22> zgcK~qLHiU)bI=QSSpm;|M&$~Ij;UZ`o0CQ_H>N+GZknBx;m~k17G#`84*ltL)9kZI zxIZK2*y}`LJXcU9{Wn0iC3%!fH_iSMv7tfSw#Gp=u#iApS{|c%X?7}+4-n2eJ(cQo zy~4`XlHLH&sJxkSc=3)`5H)H!w{C@}^O)d9SVNvgS$e;tLXJB%R1PkEZ{A*j_1&C& zH#G$=e!zuL-@6d~*!c!%cMl~wj9sgpM7nzl0gPScPCux37cJ%~KZ^i!Z#vb>*cE11 zBmAyRHM6%tcYm7T(!hR))B`eA$G#8D2V@CrG&{*{CnFg80SUL>u~rJkPv!vB_tKs{ zFMRz(QFwzk>=4!7&f8RtGW@8I6FB{V+S93g+pcr%&ey@&KAfsy+jXX$EkM3Ahg4$3)_ffim>Zlm`Z=)fMH?edlXg5 zNAMJ0-l(wKS+s%Jh4c>iO?4DgkN7p+=_UjT>k@= zvzRBU^)ZxKn!6BkuF>7ZU|BYe=?!`-CH!3K7QKtO74t+yKSq!hDG^j*qke!ArI}YF z(V<^M+{)b4__yhk2(r>eFAVS0JBh*7?rV|Qq5qm7*QIp;ZKwVmC2kl}1IQlzDq^sD z=*>v%)7O*KH*#?v)`t^=uO#_Fb3mt4a(f_|#`S~xE`qG#vi0hh5oE2a1q@!&><+MF z&Y?7i<^GA#E=f0+ieXqZhs1euK06!U|FK`%w;h#d+sOEaix zF+c7Bef&J=5%Zv9+*Il(G!Hr^q<$0F7)U5FF_{1^o#sKuq@;QPcIY$@IwtePojT2f zjw#8P18t{HvzTKlhwRpA9&}v76MJ-;2OZORVy{l~pkq2u?9*u;bma4L9u$%jFJ47+ z9<^e29a|lmtbBKwM>SEU&Vj`rv zY||ZLA`}&Kh>4Kuzf*UJiI7UcL}*aAwbMlC9BHF?p3`0g4z83m9Sz`IgtpY2YjM|| zDbx%_fF+{Rtu&o+3J5 z7C}bxYI^isz+IzxB3u6fp^f2*JUv8^iM#>5`cXk`jTkkD&zbL9`CIAq^}!2Wg0DzNQFkU_agn0M+C(y673ZbLPL3~Crno5=-?V02>1 zVf>~IUyXFiTq7-o%BAk0WwKA7l8dprm8ig2x>8CC1*SiN!=y5t<5F9ESI8nn4GN}sWYiClKwp|ZzX5U6$ zy(z*+plk3DH`}fQo0GqZYTU$|D)|aP8b$O3qRl+Y=)|?fl<^Ox?=~ z)U-6otSg%i*~dw3HsJXuEGlVA3!`qid`c^XR%uF0T$a%MnG!RlG2z%V;n)vxG2z-X z;o38uyY|fBu6>@E(%kjn%Y=WQBIh-7@lxcxMseG>2uJw+Zi)|8^V$>$FzCES!>Kv1 zQNopLdacf%QX z7#+^^kAO1b3Ktett|_!J<9ZW@th@4HzlQ5Y+-0-Dp%(~0Ob;eD)bnvI-~(Uh4%W4%j^_4Ha(JIAD( z_&_9RdOqK%@e*y}G`rf_3Gro_8ecc#MtZ3v*{SMCK951U zV$g2n#WH9&E>R4!=!@44LgrKBMbQ&Y32q|>dpSlHH60|-vc7@zQc>iUlH!LZ#d}0S zwOnfC3B6PsBcRBo#xzl6xlzQSmkWVP9BYtVZt!`C*r(Db2!{yv!Eu7`J0|;;4zT}_ zV+`T(U4s1(RU^TEh%wJ(59DD+GGCbP3OklV_z|kK2F*rjsV;~R)IHQ?D@Td4_;Y=T z>U*c40gPXREU1qoBem^1xW!lju0ee+!7#&aaU4M;q`PUMW83xkR!0r+Z&K+4TOAXC z->CCS+IHQ!)o~e0Y|@kSIeqUI#|hv!>&aIjZQr$TtHW^$v9O-Z7bUxPBI6I>(4sgT z+UjtD;uf9P%eL#8t&V%Zu~ns?Mqj0_$vZGHuz#Iz(Q*mA40Z zIY??xanpZu7^1lNgOCXIy|W=n5-ozC8bwV?`bc^Tr5`LH2&p6Kdl2rRkJ=y3$rfh; z@(+3D;co0&=KLCP53BZeZb9zhA)>V!oYxX;l1SA#y8wHR4`#Mqy<42Sk?fT%S?hcp zGCrTdTW6Qw`5{VtL8hvmH-pWKDb!kU!7y9{HJJvJVsPN9(6w3hEi#PRsu4lr`187Gk$-y^$jc@kOiJ(o%=bN&Lb@2EOy6KJbNzt-{RJi(7Ygv$B; z3V2CnAiZ`nMQIGMeH}{7nF{c{G!pcnBq|cL5XOnRaiV#bi0U?I6MsU|dpLn|d}tz| zOW(_pJ!2$t(sSVIxlE+iU}=bg$%XnYy6O<_LeUNzxloBawHry=3%XEwU+O{)6)sc; zX-K+INii-|Qj81bAgh!vR0hR|U38($t%3gsU8tlO7ize4q43fy%>Lv;IrgKaT-03T zLOE$bK_sM!#Sy7Pa>Ohw-4V~Ej6waVEV6#54L!s7VJf0{x)p|P zXz7R=#c3Eo@C?zC)xNE@f5>`d#aHFoHQ-z z3<5`v=RuUuiyA`j;5DWKT{A`iQ8#u2!!Z5?#x~=($gvw&CVq*U6Qc82(PI1QLKx@is?H8Uxi?LajjxQZZrT<74Cvry@zpX#Yo5mHZYB>2}* zQ5)^LZ9JavNQ68w)Al zPr{~+MU($U=Vkv~?)uWk7G3(@`+%4H49AeO*y`jKo}3^ihw9|FcycziKkW#-gydiK zD@cLZRY>1}DmF!zgse$JW97E2Telu5abgH1_&-wEr zAHeLDLhi=RUZS_{I=(sObI9B{iy+tq-<(43Mx%5$j&8QUhtgWOFNPg+J2@Y%o*x0% z*tOW6h1x}O9^xs#o&1FL%1^LUy*4CMk0E!%eiVgl7$=kM_LqUXQF?HP+U*Ylx-nBU z@lyL?u-)htsnzz60Na#G?G10J-M$sT&B@PjX*=4-uDC>0u|fnIhwn)LR}Me98J&*A zb0m`?QuiZ5-fwl$j|q{d$BXoDRC=_QO9wJnJ~vr#=D(#tRNtG6nsKFFIhlCFDcfp4 z0U;MB69htT6|5#A#aUme<=z9Sr+z+3uzFPlVAVpb9s}*vkyKsVuDx4RW)kWY-ihF= z+P4EbJ(&<~@MQ((+ZAUg=bxmFqw_1>lR@$vk)`mlfeXxq^~@k3`AAwiBIL7-2AeGI zv#gLlOX6wqw;_w`f<8<3m-;L@!e`-2N$In=Vtf`?jL+hX@mW$So~wM8R5StK_K7{s zn3F`>5t}}j@wnLYnaks1%V!>siyfcKd0cGx%;#~j-?MAwCU$z3Wlu$1Z1lvQU&J0?tVpqTd14PQV$UvCy6B^RVvFZ$_mzl? z9iHpbwxhmcgXe}J#mE=?JFACQATG9dZsanE-JRG&i`X-Z*dvRzu4>S}q`6|;k|EM9 zNg}tz=>^=m9|fmTi;y((#KK8C|4HPQIG0k4+!ALQVjQtSA!cb#YP~@{k~}(Y)>%pu zI49Zqu0?>${Vpaxhi-6_`3Y!~iJ3N(W)UZ5kryb-&oOBxbjq3VZOZ1>?s)-@_hUMD zfop^h#eZK&B>LVI8jEQC{g^(4szf7v22I3W`a|;w1*3xqfE*!Y>WW?Za4|dhZ4q$q z(q|IL*tN)UIi&4TlSQ@TM@W7{PZ7xF4w_1KD(Gs>NrO+u8sJpx|2bC_^P*WAZNu2A zIdG^d?E{|7m!;Xm~HxRpzDqbje?u?FCPN;W#~2eTTLY~Zri zDp{+w%-4avRKFTh{6NYkwFga5uC0V4jHdR$5MsNDCkuqAYm^6+Nq)s_&L$+;EHbP3 zeZ^+BK1Q+m8raO%3q@npajvuVBEhv<^Nj`Gy5_j*B?#s=)BROTD~Ktt2TZ>sX{_Gc2yex z2h4us6{&LLPD;%csS<I!u1Xk>3m?+T=YF*cg8K0tr=p++z>nFC}B|B8=VY$Q zUA0>3d#L~I&x1|TLS8iHJ8|iIZ-O*7A7r?F1R-GUV7r1+(?x2LjXraE$2dx1Pj0L2 z50t!ABoA!m65g?tBqaAwe-Gt$r3%speGXDzlc_cONTj-Ds#;6^0?DO>Id?v8xROl0 zL^0mkUMDzzV#c=X5mC_6X`-NgTlIeibXmqPh|IRSgUF#{s>X5;=^)9rrh~GONwrx% zN@TWl@H|bYN-du%GV4?(Rc-k^kr`2$yHSu|@@!C<9?BdcFdJ3oG-MWMQ?p||re8^^ z(IT}-A5W>tlp?p7t73&xla~8Ap!ygmS-8}%6{i&>

y*K&LoQNpyiBF1w?ko8by$4?ZnYTi;4Bwd3(5nLunx=P-r6GjTm za{W3;GeOeTK|ZDxV;Ni`}iIjBybbn@w0_ zbb)5%p@Zb>R}NK_lZF;&Ef}f;(a91KUA%xXHdz9ugrpeKF^)+?1!Z!s5@d{xicFb| z^au!)I*|*SmZjU$Qy3R@jEBlf*Y)BoinzxBgVxEO41Gd+R*G%(@X;B1rqeS7W00(l z3;Pz3#1&iBEW3V1N($;NGKp0-FD1pw$T5Xw^HQvO=0XM9kbKS30Ts9?Z}U)`*qS6z zDv>A<6)-d&C_uMz-3^NeS#)GgiOpn~Z4=vIrVdf5L0e5UhSO>cr&2R^LWm~myar5; zYkM?IqKZ;+0-C-66;D$QlCB!WEvqCfCs7xk^O`inR6(4!GtY0=EYu$@o^3U6jzsZMEQ=X@LVU)w;BC0+fMqv(7)TR^Sv140j zVmwGOq7i72;X>JlO_-MbJnM-yHq#KD$^u-FplR@KWosU@;&DcmAxtt;v=@n0kl~I==i|F7l!icS^2wn# z%vCU&<_H$6?IGt|Tb{7Cp_a7`OSHD(mbP#VkZ4iXXn~3}r(3ES6<^FysyqZ`qvuUODQa{Rnp6gqXnCR!s-cWS6U{&kXeQ9=c4S_d>JuH1 zY+)rimX+itTFDTr^6(zGmZU>=0Dzcu z3~P=to6`i^)u_R^gkub04ePEKTpj-31d=re2<7#Y7XiX zH#Do^!ekMn=SOsSUs&6gkj{1eub4m)Ad~NM>-uQ8Z&=LZ&!9M*Q+3f&SM$^D8oCAP z)<(Cj_|vh9O)}IE2y$7DYdy>8WXanZEBk=CPBEwJC`-MarMNy}!%LYv!ZOO(m}gm9 z6S7`old#s-?`K{L+St;o*qjKPQpP;DF}JIljV@zZ5tdWNMn5Yf8MY+X3O3Yrj176Z zjO9Gdl59!!jO}Nszi0Y&Hg`T7y^W2HvQeFEcqbdt$@Fcu+yyMjHH)Pmx{9ThFy}^= z{s5bF1M|2RppX?Tzm!ef#-@D}qAy_C$e5a#F^Okfb`Ki`jJa>IF$l6y&xIuQIyR4j zAiH8U=P+df%ejqR@+iw`V!4M|o~?8R8)KXMG$A?aamNEa*k6d?=BS495I7dv(()NA z{eUi}e`wgyG;?KpHIkACYcEFa^-cU8!r#02Gutlp4x}`GbAbznRy68R+-zRDS?y`I zqMbMDBtY%FJ=IgLAYd8WS>AD$`Y6+{;$j~9kfk0XWkY7?A+}%x8*v*Ob{k{cWqx`- z^Vl+6UY2}-WfwlfQjeplt63qcs;_{KDwy{XmTJpE?XR-|*=Cdptw^{Nw zv}tla%XPiYGCpLP&p?GOZ?a1sVFkpXnq5Kx_+5?ASi#CDK$6+AZ)5tiTz5OLq$68j z3pM-?b(c&J>*CQ>+y>Jf?*?S|i5gRnxY#^8bAHao9bn#f*pPabzmC+CbQ>%9F&ps+ zOS+HctH}5tv*Gu#@%Phx;{9yo(`>{u%=00edNUjL2+Mol(z)|lHf|$JdSpAxJj7DB zOTDqfAF$*PS<-4Y-gPBIHyH1_fl3x>MjHt^s79`bdR4GV)!jj%(sUPw# zk}3qA#Ra~WWrO8@Q2d0kH>pu1*HSj(0p@~=(7+=E1#Ma4Cq;sAH1m}GO_Wh9IpdTC zY-A}LT8c5Pl%=6tf+uQ1W&VSpQJ;g$qZSu*iae6Co_Rtnbpz8oZRzi`WLF_eyNV^< zPxj-U!LpXK@t=sEz5?z)@IPV6)D)oHqDjKuE=Luu*wFOeH9yS+pvPA ze8Q&P$MAa|GOuYAe9T<7)D_H$38$2$K0x-0u|}Bog$tTEgSn5giAUK8ZuDU9E@2~% zvMk%i1?NkaYD-xm8IRaag9Zdh=VS?5Jtt4eh*`a$-sl`J3fyfpA2Bf> zF~=1&wnLBt^tDt!0!|(q5P1o2r!V1R7#Mv=+W+@sF+KIC@!McyF`vh*iHncQeD+d@ z^?WRTmPVm$HEg0@7&50AU)OUPL$B38w52Uz>^aQ4b6g)VcAIORE9$x*(M;Du=EQ(q z;sWM}t`GRXD4XlLpE1z68f+Ob5o3G~^Q>pyMwYyhF{3JrWndJ^c^fT#7fZ*OZ4_oD zjDe{zch_xYVn`depCun>X{*ukBGgyX%AS2zj7R^>@_x^9-)AXTu&n(o=O&hCjL&6P zQj68IMeEoCI3DX*&dtWy9M|`l#~7OnX(nW{j4pPGF(Zc!{gh3+o(;XtHHJ;QffWw0 zq5IejWPHlT-M~s*x3T`DrK&XUlvPUFFU8}Fh}#0FxS3+AhzD5 z9VA9W8h2+dARxiHpOpYXtOSiYV+b3A zYU_`%Gzvaqc~vZ}lzDFCzOje$I;EFOxXL%2t&wx9z zATe=A5$;Zw_pb@GA)cOT^7edXWERim%}51lpF3K}5zZLk4?j|i4itIj=blXRAY*$A%F@7b^o7zZ$s zyJoP-Gg#(PHW@w--1|b7bCvDZ6>QumEZvs8f(<*$*p=`vZR8EPvRU#5Hhc!g*L;?a zzm)4)c8Iy*nb@K$*d?E^%SnldQSb?dau4EfvMFzJC%T>`9b(Q6v<^X;xiMu9@v+gL zuuND26{s(=c^0stpYvI3BO5Y<u|h+WIb~> z(R`h0ON-DnIE>GVnI$A$))lPMcFX&0c#vHtaJ}nrEQyJso>$+9a0kqG6{|$1tr#+7 zahD%saMCt59OE4%n8AjXuuFVwj$mOb3>rXp!Fn#$Re~SlOv&O?(r1WH&LYP%k9^$^ z(GPDHZpD3kbTQy(Z)d}y;J45&g=`A%VpEPX?*cXiquEs~yM%dnNmz}-E-I9VCYy{e30UPlq8wP)}kcoO{k_$ZP6Oz}lf-#3JrJn2}9S-hY z%EcKC7w4PGz+KY7>A8eK4IGDB)+(+RCe2si4mvHzgDtqx0#4sffNxRq0o-iNj&-*> z;j@j=8G8)t;%o;0eb_>Vc27sku4hT8HF9Bp$i?WAxsavY#d6^}t!J6=BweqtjCz*2 z3$_xbRaw?;%zhm_|5J?J#Zrw4Ihc*In0GzP!7_Fo%U!{;8g{Yl`&sHfS0~H6fuY_Q zbi62I2*=37@*HEEQ9FzcxrU`eB?>1`Fp5L7B^k9k8!`=uk%u~%RGoNJ^pv_-pIX;$5n*yFfvQlUv za~Vs;TKp)f!&$q_)Z@YZD9eNEU%-Z9-ver1fyFRr>|ZnNXnp<#j(TlfFhZXup%0qy*Z$MDFto<- zy2>zpvVf=XHG-N}g;Wx1i)i9w5JXdsCv59O&2<&gwH1+8e9!>j3t1VB6t%9y*JE0* z!KX9At@M=;^J4{)R(!^%B3et|EYR@d5&EJI7ostYuOjdpy)cG<(4@2tY{UGs2J~eN ztu7qJ=QFgXI{9gYWsNoKwC3Q(NEv;R1s^ymZmtV%;%hkgP=v;7 zCB9n0%az|?LETY4KA3}Vkl59pA1QAp)JWkhRSD>~ zBwVYl7hg3Ykv1$5-{K*~i7ydp&Cw>%wBfTlR9fYx7GfH$jhNLpn^b;jNHwa|2^WXA zJ(m`r)~L0VzQk%H$+aF|VuCF+Dm#e5pe9$}{;_l%BT-;+IE*j6C^gsOTQO44q;V=4 zb|D#R;TC)nhrV2)-6B4}!li=Qgj+UAwV~11YqC~WfwGZ>7->N`~ud>p&szQE;gsMc+Quh!gz>3!4%NVu%J5I57hmvcx8W1k-CMoz@J`U)3&L(wxKoL9FDe4 zk2Y^WUz#4FufxPPBPoPFjkPM;%-g7`24CfAi?pJ(XOM_7H4X&u!Hz&geGUYWNNc!p zabvjl=8_VrfBW;x5AK~LeeQPkNHJ}9QZxJ+HNw6NQfEH{Hb4I*)`kqjr9-X&saBik7@b*(hgNGW605~CEf z)6MuOQGnzJI#t)~JEhP!l~cZIS>h zYSssZ=I~{k78HpwKnqZ-NDa)?0!=h})j~6oV5~AD;YdxRY!n*gMDNy`fz9iUW)T9A zmIkSxw&CV=KrF?;Lv;f>6-!Nv=(6GxUwoAUtE$S%FtR}&u8lUWrFJcE)wr4m7MHAC za+PnXPyoKt6sV&qB(RKDUm7!acNwlC_c?| za}ZNQTZB^4=FlzCU^#xz&5eA{Y%=rM)(D^nqkE%Wgjn3jxVchQc@vP1&X>g>Y;1vU zRYvn>=5?0I9gwiDpr*(E-EQ1TjE?4M&03-Q zP1n>khU(;`g~1EoR1*~?yOD*o2Jw-oW_+3oHD0o^v>b!7FR-$l>c{8UKxxHt09LK4 zDzB9JBm~Kikp<)P%6e5meQjeH;}j}@I??>r4Ce$@!d-X=p*A5L)H8D#zQ~2IQ}MAC zWvLRD`YM*JDlV^Fxk{->FsKYK4K{|FV6PZHqm7YJOJfMpXbY+m^fjZBG$>NbkaTbq zRO|5RCb2&C;TCu(=0rpKkD#|Kp(zpO%C$irkdjK!Q=LUDrm1OwCF7`Vs*@T;SFdUG z%aK^L!!r8noTvzug@UQ&_;>xpTq2@j8l}jgD_a?BO>L$rVWxtUg*0*DJDW^r9PQ!BCT2#D7P?6RxTGk$3k6S(-;jFH?QK~A45Gu zEtRb>6tbh18u%w%Te0pPcvOlZRq%ys@r|v@FdqRSDSCj0X@#mu!d+ceR8|>Sa@~>= zUqzyD%a$ywP~zbM*-R27F8AnN{Y)cQ3)S` zSeRXugrIsuXs$7unuIn@B~`4dT&Co}_t-=^LbX1yFRmyrDY{Nji`tj2EGwoCV>W>@ z+l0ua9FZO@cS9&@PXX zeB3-%R$(k%7FbnOw%jKq7d|f7Q8UnN7-|c{TMg8=)z&oE(?=RxYsnC4Wd*OS6<+|Q z(W<7F21J@&NiG`D%tc{cs2+4d6p!(Yk1B0EkY06LB-~Pj)mw8pVBCR_g^2M(x=hsB z@ny-HMmd0sQsKaoVZ?w5Up~l+N|0mECnQyzRRb<1x(>vJ zdmOBTt749xG}b9mz$l1M*Gfrg*d#qDq0~?s!rUfmj}>)ogU}B!)ntNFKw1pnp2H6T_MzCnh1ah~n!eNLp19gg$80<*~}*QXhJ0<*E{HY86^zO$!G! zgx28$fGvuQ+X^S+u_(AKrN#t0&!8G}f7|S?BZ z!qOoGL|8@}F(oMpdp(VnV%CNMw!!D(C}0vuNTUt48Y_K7;^);P~TW ztSVYsTpcK1SzK0097!TL=X^R6@sc7X6t5>`Qq%IVsX}t8C@+H3L`)SN5TQ?sT<=@8 zQr2uG)&`-brS#p?*8Eznpds88EU2vu-deDvV)op^>F|MX!ahM;0k8^ZY6a1@)&hJK zwlPZHKks_smbUx`zVN6+ClskTt_}EnCs|5WB-BW#ZR)$e6pz$}!f|zy8>g>pjuyVoxCx?Ss^DRLWGuQs-Cqm8mNt{By=5Wics5;PGfX-z6|soV)P^`iwIyzRGgxQJjg`O zmtVBIY1cj;NW{V~i13(_UE7QwbI|4GcRbvNa4>v&MUFu)48e~NVlOWelwX*TKTGDT z_oyqHVnlRpm{#2(a!5Y9s_>`d{;><>pSVE&M;FNd9Qjn=)g6f7QuU<=Ep7<)F9XwxQS>d-Oe&Wx#9=ZVjixNNa*M+ak{KOX(zmI&c zRh$*WQ3T1E_}VIZ!!+e5zAfu#=x<)U&eGpuv7p#6iJ$m8{%JBl@y!s6cz!$&N?m_} ze0m=X$)nCUekMsHGC%PR$9Ks5#2?zyTTzKm;!82Uk9-g6rTVp!>`{)dQdao9psYAX8@VMt z`0DxJA4mo5midWq4E&zVKQ&$mGEvI&W0{}$I+tf2=uqDqezY9A^c5ehKw2U8Mz^N%7((0s835rSWURKmfjeE$wBuMsThWYBo`4&4%X9W4yu7H3P+!r2(rc zD@&J9Lsrr$8OdPnTbrw3+LAo~G!Tn|^Y-u(HaASUF4M3D-exALM&{yC9397u;<(tnI@p z#{uMlLM4FOVCUC-$0Uy8{DYGCT^+O1OJX)i#1b}c0}puCJ}CMYG$Bkuv-WFDUUEyw zOvi4v2LkJw!p+i*0$S|K9&FpffrgsqIv52%?!h{^nRW{55;x{!_f5pGc zucMlyn)RV|+}vaL4+4R;ZEdnb{ABjL9d32j03JkbZg#3oZHz22Pf+j!fjE&8&sWcX zBIEp~l4n|pk2wSa=sv2)Q@>IJWMZ$f4h051Hjvh&j_3n{+Kn}2nmFXSHGUxAgCQ-* z(KXDCR?=qd*7+buL|T5^rY39#B8;?(utCN6PGF0c-yDtv^Rb7K4{>mU7ugh(wKf`R ztecM0LV;DZxEKfP>oktuP}A0+<=1U$MiC;!RuqRokhV~`IW7?ZtTotJLj*F`f<63v z8s)WoMDy2$5sBciQ_H7W0!U%r-}8eFa$abt0~3`Jq+)^)6e^AqYMMf|C_Wq^&Jd2q zjeJ;`mXD#L2{RA!f@`DeKtd-I$QQ{_bA4FFYu2u94X#%y+ALRbXi!Bd8)n<8X3~Es z91d!7xv(7I7yoJwVk#UV^HreySCt-zh!cN`elGk)x>V@pDeLC4qC7@^Y%G1Xq*vki z1bnz#aTo2c#L}z%9Tj@xuxYO({-Rf>{1M+=Q}XYV<*QJYkJsk#D^dO$iYod%Lc$foACai?$q%GUh3|-@c~8{;Er8HBbVVWXXy0%WSO&5z?umZ;aiQ;eitI}`9+cM&=#P;6{Xe_-~(y4G?9JS>RE4TRj3G}@Zph6|DVx!V3Jdi-I z)>$f?L%+$3xm39-i}v|q<##O-5EatCXY7?&|3d&0y=p(T?o^>m2`ZT+B>Ag*V(Ha> zmkM_iFy=}u|5t#;((k)YAgi#^Y*>+>SpErQOXX;a#cJ22zi8}=zHmrb6mY)5l$9?c~|r* z{BJ;F>D6~G`y~AulTt(!oeCWwj-^-oBmNeFujEv06rD<^f|&A@{M8)-QZ4DdB5B?e z+n+y}3}~T=AtH)?bV5GKN|y?UA)?{}BJLYh`3b;;q$c)_V<|=a9vWD2Ij4wF-4p3A zMMh#C;okQhL2)BZ4l!3E?ve}8|Mh!<==OwjfJAzF#TVrz>hG&h3Hs|UK(F{*e*yY; zjtcsR6{1L*bye9Enq!B=pnextPtr != NULL) + // check to see if the pointer is NOT null + if(nodePtr != NULL) { // if not null, move to the next pointer (recurse) nodePtr->nextPtr = destroyProcessListHelper(nodePtr->nextPtr); @@ -83,13 +99,31 @@ ProcessControlBlock *fillProcessList(OpCodeType *metadataPtr) { // initialize function/variables // need a working pointer for the metadata + OpCodeType *wkgMetaPtr; // need a pointer to save the location of first metadata opcode + OpCodeType metaAddress; // need a variable to count how many IO cycles are in the process + int ioCycleCount; // need a variable to count how many CPU cycles are in the process + int cpuCycleCount; // need a variable to calculate the time left in ms for a process + int timeLeftCount; // temp variables? + char *tempStrOne; + char *tempStrTwo; + + // set the working pointer to the first part of the metadata pointer + wkgMetaPtr = metadataPtr; + // + // loop through the process list, until you hit a sys end. + while(wkgMetaPtr->nextNode != NULL) + { + tempStrOne = wkgMetaPtr->command; + tempStrTwo = wkgMetaPtr->inOutArg; // if app start, + if(compareString(tempStrOne, "app") && compareString(tempStrTwo, "start")) + { // set the unique ID // set the process state to PROCESS_STATE_NEW // set the nextOpCode as a pointer to the first place metadataPtr started @@ -101,6 +135,8 @@ ProcessControlBlock *fillProcessList(OpCodeType *metadataPtr) // set totalCycles from adding both IO/CPU // set the time left from (ioCycles * ioCycleRate) + (cpuCycles * procCyclesRate) // this gets the number of ms in the process. + } + } // return null (temp) return (ProcessControlBlock *)NULL; } @@ -120,10 +156,29 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) { // initialize function/variables // need a FILE * for file operations + FILE *fileWritePtr; // need two working pointers, one for master loop, one for internal loop - // currentTime variable that stores the time. - // create the process list with createProcessList - // function holds master loop, loops until sys end opcode found OR PCB List != NULL + OpCodeType *wkgPtrMaster; + // currentTime variable that stores the time. [now unsure if needed] + // need a variable for headPointer to point + ProcessControlBlockLL *pcbList; + // string variable for nextCode + char *nextCode; + // create the process list with createProcessList, store the pointed to address + pcbList = createProcessList(); + // create temp strings + char *command; + char *argument; + + // get the first data out of the metadata + command = metaDataMstrPtr->command; + argument = metaDataMstrPtr->strArg1; + + // set the master working pointer to the first metadata block + wkgPtrMaster = metaDataMstrPtr; + // function holds master loop, loops until sys end opcode found OR wkgPtrMaster nextNode != NULL + while( wkgPtrMaster->nextNode != NULL || (compareString(argument, "end") && compareString(command, "sys"))) + { // will have a loop that goes from app start to app end for a PCB // (checks to see if the next instruction is NOT app end), using getNextProcess? // this will getNextOpCode @@ -131,9 +186,19 @@ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) // checkForIO will need the FILE * passed, will need timer access, and ??? // this will checkForCPU and run the CPU operations, outputting to FILE * and/or monitor // checkForCPU will need the FILE * passed, will need timer access, and ??? + // TEMP + printf("%s is command, %s is argument\n", command, argument); + // TEMP END + // move the wkgPtrMaster to the next metadata block + wkgPtrMaster = wkgPtrMaster->nextNode; + // set the command and argument to the current cmd and arg + command = wkgPtrMaster->command; + argument = wkgPtrMaster->strArg1; + } // // deallocate the process list with destroyProcessList - printf("runSim called here"); + destroyProcessList(pcbList); + //printf("runSim called here"); // void function, no return. }