From 8187ea4f575b3777bfde4c9a173f431eaea6a0ec Mon Sep 17 00:00:00 2001 From: Meruemon Date: Thu, 21 Apr 2022 11:44:14 +0200 Subject: [PATCH] Test --- bin/Control/MyControlView.class | Bin 7196 -> 7416 bytes .../InterruptServiceHandler.class | Bin 453 -> 0 bytes .../InterruptServiceHandlingTable.class | Bin 740 -> 0 bytes bin/Model/Microcontroller/PIC.class | Bin 13358 -> 13974 bytes bin/Model/Microcontroller/RUNTIMER.class | Bin 1800 -> 1811 bytes bin/Model/Microcontroller/STACK.class | Bin 1239 -> 1688 bytes bin/Model/MyModel.class | Bin 4088 -> 4163 bytes bin/View/GUIStackButtons.class | Bin 0 -> 282 bytes bin/View/GUITime.class | Bin 4308 -> 4399 bytes src/Control/MyControlView.java | 16 ++++- .../InterruptServiceHandler.java | 14 ---- .../InterruptServiceHandlingTable.java | 19 ----- src/Model/Microcontroller/PIC.java | 31 ++++++++ src/Model/Microcontroller/RUNTIMER.java | 2 +- src/Model/Microcontroller/STACK.java | 37 +++++++--- src/Model/MyModel.java | 67 ++++++++++-------- src/View/GUIStackButtons.java | 7 ++ src/View/GUITime.java | 10 +-- 18 files changed, 123 insertions(+), 80 deletions(-) delete mode 100644 bin/Model/InterruptHandling/InterruptServiceHandler.class delete mode 100644 bin/Model/InterruptHandling/InterruptServiceHandlingTable.class create mode 100644 bin/View/GUIStackButtons.class delete mode 100644 src/Model/InterruptHandling/InterruptServiceHandler.java delete mode 100644 src/Model/InterruptHandling/InterruptServiceHandlingTable.java create mode 100644 src/View/GUIStackButtons.java diff --git a/bin/Control/MyControlView.class b/bin/Control/MyControlView.class index 2907a22f3e8993b77e15b59e69e883187922f3cf..202c009aa7c90c47049a3a6598b43e0acf51445c 100644 GIT binary patch literal 7416 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 delta 3475 zcmZ8k33yc189o0@GLxCyEMz4M34}EnBtXIzNgxSZBrq`8C90~TTwxr>8?_dfqX-l2xUp*~)n7VG zp%^8CsAazPI?t@?kpkuELBnyXZP%nFjU)udaYD!AWW<*9Jb)^xQ( z4LsfZt7=M3ne+5Yt-@TrAz7b1cZ!EneQovL<-XQxZ@W)h+^R57Tcl_U?PJiy*lV>H z6k>tGLTwOZ9#QRE*3f1;SqHBjiv`iO4ZhX+v)1Y_g(avrE?D!jd{}13w*>L#>hw7k zJsTBnLxV9OVnR-%zP?3aMbM*)*`9LkQ5{+p+R$#SkCn!QWG&s(A+-}V>bafK&zbj)0Msw-+rN9vpRD?Axa zkJ9u3g@fVrXiYz*@N_s`py|U3N5bhsE&o}C=WvvXToVy<4+Y{3a3qtKUX*#PMaEkq3}vLO^ro(P2pS@ zU8gh8xRj02{CS06g`1Dn^sg1(2&cz6(TU$G{0`3x`uLi?OP2e}Z}ZhRE@@fgYb(=n z_`Sj(@JFN5o)cAwKPkM0KN}bAV;q0MU+uUg$YKj-`4!&AJ6-vyW(PGi`OE^I;>6$Z zo*jP|sGh)ixTx?C{FCOagP?iDuqnB4t5?!rj-sVR3Y{anK`DW98r0{Xr zBBNOc+hv7M@L%I}R9@B^RH0avL`bC3 z*j#@>02AD5Z~tuXFp##d*V_PZ-)-ca-QRWz7V{%O(cZ&MpqZX5)HXr)_1L3ZTPyA^sR)asYQ2EBYMsuT0Ad;LcuwTad$p zOAw7o6g(LNP)0fBe5*~tOiaam%53B-X&q)@D=M&??0Hn;0%o(x+_-`&vEpV)M70b= zjTCSKlw*#}!CcvdTVx03$zIHtBUm6Ou`pB4VUfIrI{AQahO6*eVo+}>#!^cKe8#DS zRR6cJf!?NA3UN1)1p_R(xQED!d`kv45=EexyEYL;Vy0Zjy+k%%@iFcrvZGNhVKY$_ z*2(L*pU8o&at2$7oY+k%TZy7^Uhc$q=p3ho)HCWE5Q8gzDt~}5R;)4|+lk^NQO4mx zqIel7L$QOXj}%BM9wJJRa?fg;FL5-{6!D`%!HCTi@(7PR)TusjRYgc~L>&k2-QpVjBvXQQA zqAT~(mHX(*X1a1eTX73paVwqNM#mn&T4w1k=KUUKd^2;sjahz(`F(`>+{e#e7xxEU z+@oD&`3l>(D3)K*yt16NtA|>0*MxYpt4}Wka4~>)d-XZZaP2}89yQ)g84<@I{cBdR zr$03Mr%s>tAG-9v-sbJf&R*W~IHSD}nVcCp{LPZb?=d)l@%*7O8Hd=qPqA$eqL#(z z#bM(}YHHONtRby$F8)uX$80685?L9T6nx2Ai{Sn|Tr*KIbEvsUa}H%9;yN#iv_ltN z*PoHpchDewWeOHcKx_et{-$%!(z)l11%0#qqj`^&G1=8+9~Y3sm$ALaTj^_g64QF0 zdZ*kZJ>_Vf(Y-GtAlU&K7*1xIWbQ$fbX)QCN^9{!BzD`m{Fx)TYokRnU8kS8{$cob zYe0qvB=?(P?qn+*M+SeA4Pll?;RLJZBcV_`;rxnSItks3W-CNSqBMKa7}FKRaVMyk;4 zL@9Y`vg94To-tWUxmrfP>(whVnIm5Bm}1`ao_Xt36TffbX(s;2R4`p; f7>6jpM*4xtve)uO)5C6^?5g$chCG9dNdW2 diff --git a/bin/Model/InterruptHandling/InterruptServiceHandler.class b/bin/Model/InterruptHandling/InterruptServiceHandler.class deleted file mode 100644 index 644bdc859f2c3070bb892ef45458c5330984edf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcma)2%SyvQ6g@YMjY(r$>tmw`?pg(dYag3Jv5=}z$$pX!I%Uk1G3|f35W$5X;75r! zX;IvWi+P-L&pmVIetf>Y1GvDB2Zs=i%tY#Fm>1I8`K-7S`9!Py{)ZV$yHJ^|3etLT z3GJy^h)4^T-K0~Q6$IDZ4*P_?czp8NMV zIczXCbDPP5D$V!5JAaSkq?`l}IarN{N^r__)r~m!Ix{|_0rL)@!O<(P;}>i^Gjh=4 fy;*hoa1pS!fi`oyOEospVZ?ovE3w-aBL~}Gzea4@ diff --git a/bin/Model/InterruptHandling/InterruptServiceHandlingTable.class b/bin/Model/InterruptHandling/InterruptServiceHandlingTable.class deleted file mode 100644 index 39a61e0bfcf52c41ebc2f83e301714fdc298dc60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmbV}OK;Oa6otz?E^3>-2xI zu#i~r1Nc#hGd7qFD`aVWzB^Ys_n!Ij^V@d-Z?J8nBCyw+p6h7GjZ>W@v(M>C5T8e3 z{NZn9pp&a`qW@g@!8p=3ECJ^txC(ZnfX)5!g`T7W%kID%`8{uU)E{=d<8J> z?!Z47oq4X`F&DN#{dE|J>035$wTA-M5w~liirW%5aI*n{yAn0jjarpx6zYM*e4*AP z77Dc?u~ewX63c~pB5}>wFLlFMpUyswb&|&+(CSVnK{O1K(8Tk*Xr&*+OM(6Fe`Wki zpgEY%l8HVJBQ3CAzR|y4WZOIj*0@%l1X^ZGlFeKym?Lx7lAC01T(Tr{?~)hE+`eRo z%nV9yk(orv*Qta_nCC4zrt}p2EAoVvkp5lwo{V+9hcoN|MeHt*Z)l7$Nto{|Kf@vPwaFC4Fbf&c&j diff --git a/bin/Model/Microcontroller/PIC.class b/bin/Model/Microcontroller/PIC.class index 9563a325e2354f8e689ba2119d1a83533e7eeeb6..881a5f2a6054d3eb5dbbee26b03213e3c8f8c1c8 100644 GIT binary patch literal 13974 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 literal 13358 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 tLOFpnLU#lTYi?0{n$^>+ZKD32a#ggs1=j delta 905 zcmZ`%&uHJ`+t#J*5I4sY6 ze-Hj}#*-R6kbO9f2?b{uf{#njOV*Q8tzs2lJhRJH4QFwV*ftwBL-dCDdt=io)HiB& z(XN+E)k!b141tyW?ZiUOF4yagr?!fVxTIi`A>7N*yD1u`FzvjOss`_2PJS)9EKqteu7d z9HKWOfS;lm9h!m@bVs&^dL*g{4$(A>1IcnXS;kSwlqw-X5sb(Hhe|TCSIm8ccQ8dJ z+Cp*%F*7t*XuqW&y>2113)PI^1R?Sc(a);rA3lZP-@_^6d&{Ql;)BH|W_NLm zhO{KmJfUTQrU~5?Xo65tAd}D?ffA-JY=6fFJJu`g->JTo?`L~o#CCV7+gQOp62j*j SfIsUKkD@4iudC#gu=WSxSATK< diff --git a/bin/Model/Microcontroller/STACK.class b/bin/Model/Microcontroller/STACK.class index 95d928c9dfd3365a6bec26ed106d3a5648f85260..1cfbefa962d8689928e3bf9f965e5c7637cdf204 100644 GIT binary patch literal 1688 zcmaJ>U2hXd6g{)M{)pow8yl09#A#^>#0$i%@z zN~Atks`?Z9RN9xmv{EaTBDDzK`(yeG`gLY@Z7)%TteLrUXYQPH@44$g|NZ?rfMs0F zK@*tS2-=QU-*8)D&ziAbuY8n)Az(hRAKG=#_V3pl%?C~^5-4^fyY*=& zaQ(;$1;m;_M!5vEJKT&nH|2%KLnr*i3qI$K+X54@^QPbKd$UWf??x*E`am+b^G}*tM60khHnDQ1jgI?HjR$Zw?K`~mC3E?<1*V%doG$|o1O$w-1%B)t3%vIKi zEx>u4yDxZKa9y#UV#3m&U{X$HIaMq(|E#dBYmIG#Bg2v9$Z_O3Ot~?+dxEK7)cdb- zKBlmz$)m*fDih-v=UILdRazjjLc&$6u0w*)F=gNcf#(T&l8@IoTR6?%Ih<7lj>aGf0m9*RQWkiFkt|-d zMEf}2Oi2Bdkh-odS(46gcdj(`qNQw8t2?%$(ejR=Ll9aj9=b z5_7eb80X360>!w93f?D^57>W~$aD$sV1@ICSjE*8@9PO~jecvun}0TcqatQW`ZUfY z)azVjtuqq-XBwKSk<1lXPl=Hkh;eq1cRIKtNvDIi4hh!eN0%Uf&D#cJ=8R>16|7H=Hwlclb{Iw??ehE3zt>j$gtlfI?&-) p^jYeK?4YFY9tvMR2p^?_hkBep9KL)I{t@B#Q!fnR-&4|E_#Yu42~Ge2 literal 1239 zcmaKsTTc@~7>3{3?U@!9lr!ZdA}mNRG#ce#2!W&#Y!pHQgy2#(uvm7R?bgVRSKjy& zyb_IxH(qEWlBm&pe~iDt(>t@ZVq(l@W@qM`Z{BC#Z`&_F-hToxjqx}%f$k-5$1dfT zoTBd)JvZ>ZQpxsn%PX^UH{*y182i?JD_64I-CSXN-!29M=}KS~@0C5r4QyXPe~y5l4b6i;ipGsvd0H{))9- zvISZey`oiGwR}g;Ym1R!Gx7ypAjDbQZ7R`%}LLDhF>cYM22DY(m$nJ^=H$&~R` za4U>*uEI-Jxu(-m_R6R87kuxab^n8{!J*2Ye^9i`f#bO;^dlqCXeqiCFVqr9?An3yUXqSVGn?efUw%g|-?t9w`#PH= zkXrVte$ifVq-!aaJt4(0KuVpp*7(qFHKN&k#~5KL*f(&t)0vU!5EsUM@!G!h?E zYr0lgi?Bu6Vr+4?1e+lz24}}G-l$Vs*ta0UzLkAD&+fz}bm0tF(&5=S%NRIrV?5M- zNIH#cAw?IuYb-BnEOXkFDJkBe=Ls4^0@b z+%0R}8=2N;UZO<;WGA$zi0adibdfa@&whUG`C~&^sSRdr^2fe~W>{3%L=SAGWQM2J mE7gk&{7U&}!X3S=s#NQsX))GFRxb(tJK{n#XxwBf__1G78p)sl diff --git a/bin/Model/MyModel.class b/bin/Model/MyModel.class index 0f2117213a9b823873c50b49b0b017efe18042d3..7263bc99e89da9adbac77f03cac6555329fac24a 100644 GIT binary patch delta 1331 zcmZWp>r<3f82_E!<$d3MJuJ)4h`{242n_CKrDc2woY?^!)b*09lA1L;@-9Rx;O+|M zg-sKvL{LvRP(tKaJ^5MbohWO&o?8Q3^}#U})xWB3GK9=V-+X3|g}h55_|~NGukE z_JZ8tMt|+I&Thokp zId*e&qD%PHQsqUCz1SxnR(#3Z=M)cnNpvd(rB)o`co~NovSJa#=wPr_u3EHN zM=xGc(Z}Es2UL%h<5lsul3#v=qaP&{6pI@jvZw)$L21yUM$Cw>Usq_z14dhOyrsT={f2dGRGblyXrHHM`BXj?7YaKg1D~57{?`iCKlNjD=7{Wm&G&oBIR?AtGFh* z?N#Mpa!km4lBK71hobSlE8F5mv@;aZ@fE&N@wKdx2p7NGb?YR)6;pP%?FPs9qDY@F z!ulYyi9ht){1hzo1?x+)gt#+j0oyJ(FRZJ-Pahfp8?6djPtaOH>o;0=DO|mTplgeX zZC+an6-nljdgx!>lEjE;<(@>Di5c{v*0v5kI$`Tj6boT`lpQcbYEsm#VCgw`U_l1e; z)4uOgkkTv|iNKO>QwBjlvT&6C&<5b9cmEKM5nsotVJBu0fLfPkkxtej=Lcwng;7W4 HMK}Ke)FV#0 delta 1353 zcmZvcU2IfU5XXO~-R|AJJ#`C#*4l3&2wPA=5gv-BVxgri#kNprQLJTcp|!NzEeJ@f z2!12r@e5Qy6jrf{MY6^A2d-DV|+3(H8C+HK4>)HoZb~;G&eW*oS8W@|M~yt zp7TY&7rLKcIyC~!7Nipv09VKIG17`(6rHR(w&mvS~?v%6gj5FpXIMBtI<4Y znw^}x6zeqIR4XQ~>54_7(Z23jS!+kvx(%I?)oqd0E~!K{y~Gr0y`7Orx577d(X?eQ z>v_mwgQCD>1`1|rHd3Srbw?#neXOOmqaoVT8gT{DX3fLa=j)9{x?OIkUo*fX=12ea z6Sis|v%Wwy(i@2_shl5RyZOyo?tez}EIUkHU}kV9yB&5Z@+|mC<>gE2Y6buE)JeIv zNUS>2)fQ{_%nmOo@@$|BmJe@0wqOdH(k_?{n0QbLaSmG{;P}du{MI35Q|Zy%fu+Te`TR zvZlOFbApp*mz(Q5r8#Ymy7@C))-s~`#B%Hi+*J!J%N1GoSN3h| zOo{W8-M3ube;cRAe5nftT0f&!ae+QPyR?5z@&RVZ#X|A=6^q1OC zt{^D*Z~k=K!ZzE&ai;9KbZSV(>H=T!wM=0uw@TB8nPx^a$_5U}e2s92c+13pC*O#w z-?4xnSjf**@C%E$$Q=G)F@JG4m#J5N8q|1}s);nJJXWY1Xi_)Ptmd*(m2!`&V3n%k zK2^^o)kHh9rCyQL6>+#tav@cGJkArS0XbaElV}0>lsK}0WEux}!}el!hbFfl zv?F*h!CS*jPA=ab{%3v$J>LfjK1}*P8pf`!%!!4PGNzUXWg}^9lG|!Cxx&VDwg{K~ zqSt`Q&&+N=LqH0r*xM<|Q`OiWLaBCEJf=Qw%pJUv_8Kb+TjkI;GDHO{l-E%x*-?tv O&th*S#iwKE&ixH4+C~Hb diff --git a/bin/View/GUIStackButtons.class b/bin/View/GUIStackButtons.class new file mode 100644 index 0000000000000000000000000000000000000000..bb083b76d46a4fb4795803f26627e9c38efb3f08 GIT binary patch literal 282 zcmZus!D_-l6r2~MscEdGh<9(=L-PT)9x7N`LMd2tU*n>yaRbRl{Vh*|2S1=6C4E~w zNiXx>%!8SEKj-5Kzzgm@ID}TLs1cfx((GXLDPb{#A=+cdJS>rMCzdi)I~zL!TLPZVfmqn%PsAg!@B;0S;bzNn z89vl&mkd>@yJZx@CZUO;aAh(O?{ABTx|5+;>sA{W?vXJOHY-*#IL4Qf;AgPh>aE!1 z>zA;a!CG5WlQZrm<2Kz;8O*g6O+08FL2nMOCsVM0$R(MU5&2EufY$yq;pjTOCGt*NAR3%2sw{iM)YPkuY9@Q{p$ z@rbt36k|KJ%cin|9VqAJo{;e*c58o|=CG%kmZ| z^DB6xM`a9S4%MKlEup@Igk#!X%U_l=GQPlBZI9Kp{+x`jaF(HfLKX*FH-+P!$ym@1 z561C7D&#y|#{eIP9Q68Yvsys-iq->VNTXml5OJlE(a#|n4 zzY{j3c%#KM641-YH98r`@IDSv^NfFRbe0l(0VWaEYpA;J&(qb*YnU{P-3 z^Hk--EN&-bZUzhWy=QQQJk83-1cu-q4Na-a{2RwMQY;s1M2gNzNOU&AjAoQ$1r}f> zmS7c@qXlhPjZUl;d&{-cHQEl)h2tn8k!i{{!&vT`MMef$>Zgd;HQduMMq~^aHJ=IY;s3|@z zTDiN7@F|?uVuhvCuZ<&m-Htv(QafB&m-?KvRnz|rlQ)Ae3Dj}JNXFN?!I^K!XwVs+ zBMd#Kc`PFgor&tqw*-X2ne+Vf5|^Yd2*{n^31s$~PvBw(KMi4sg1EFwu142csaNJY z1*7W}jIJ}E!*%9!xU@VY44+<(YZH_%R3r(Z!Yy09b%OPAX>$6a{n9s^T6jHoT5%&k_~4!6T#HSmY?l+^eDx9ydA|ygi{EA%AZu z5%mYtsdyqPV>yF#M^nX?_F)+-8QhHx4W_Z0j5(IEhQZZXv5W_;BiLlZ^#q$u_yEDV zCfrCB8^=wc`_ide}U1z~inn2abxY0ZX?8(LRv z?umrc^J~}fytoPtlN3T*RP-8mIZIX~R3x#DVM1Rd-9gRuhoTV%XHB4Xof|0zO_T}^ zr2UKITO*0Scru}2JJS5JeiB|2phyMP7*H{YA>*hsQJWzVcG}WZysI@7?FbDe`_l?` zp`73Un2N`-$C&S$&Gs2FS4Czo%01YNr&K(RGO8P;v_bB9R>gC+XNY@VP_Z8qX~YAO zcr=z4Q7@@5#`#3tD=H4~OevHI$C4>G4lxwkx&jI6xKF`B9Hw4M@fsDRW_UaNk~dVm ziMNdD(hTVx74PDRu~>@KkEkd`nT!t@l#Wn;_i!Yho>#%!|4_w8m`ydP>YB)4TE-{F zpVD8_IThz|!MN)7ZMvx9OI%=>NFlAE@Rn#Q*`MfA;KwLv%b~~T$YCqF+D5TmFTw$DaUOj+$U9EbCs%-B zqj*A9rUEsr9<{6&KDHBnmO%sCgGP1`P1s3ss;L|g;}Mb7iz(!pO5H4no2mep>FQm2 z9=mgRbQF6DJ<(C;$l^(UJX2Sg#q<1lvCgYy@p9cL4(hVE%Hf@v$E(>4UiXp2`nnw6 zu5&C4Uhb8ZS-N?}~01H*JyLZ)*WTv(2BtV9b|VG&lN6>G2&YZ1YEu|Bhj z?y)9-Zk#|FN&A$tU2v4&UP;DDd`4XqldFKbq}^ud6X1=20 z=F4C>jV!U0{h#FKo0B_lnVds@EO|eTG~=Ku3w^V)XrcR$9maHfI(&w+>;aBos?E^c z#xXZWHI-C@zGN4==ru=BMMJ1Ylzw!2#*Jv9J)(tBS79Ql;mT>f)un{b;B&jV0z&3w zT22rcKbft!Z0;Gl7vv<7CMDb=&ZDLjxE*L?cLdIf1<3*S{ -1) { - - int iL = oPIC.getRam().get_LastProgramcounter(); + int[] aiProgList = oPIC.getEeprom().getProgramLines(); + for (int i = 0; i < aiProgList.length; i++) { + oMyView.getGUITestFileTable().unmarkLine(aiProgList[i]); + } int iProgC = oPIC.getRam().get_Programcounter(); - oMyView.getGUITestFileTable().unmarkLine(oPIC.getEeprom().getIndex(iL)); oMyView.getGUITestFileTable().markLine(oPIC.getEeprom().getIndex(iProgC)); } else { @@ -195,6 +197,14 @@ public class MyControlView { } } } + + public void showStackPrompt() { + if (oPIC.getStack().getStackOverflow()) { + //TODO + } else if (oPIC.getStack().getStackUnderflow()) { + //TODO + } + } public void startProgramView() { diff --git a/src/Model/InterruptHandling/InterruptServiceHandler.java b/src/Model/InterruptHandling/InterruptServiceHandler.java deleted file mode 100644 index bca602c..0000000 --- a/src/Model/InterruptHandling/InterruptServiceHandler.java +++ /dev/null @@ -1,14 +0,0 @@ -package Model.InterruptHandling; - -import Model.Microcontroller.PIC; - -public class InterruptServiceHandler { - - private PIC oPIC; - - public InterruptServiceHandler(PIC oPIC) { - this.oPIC = oPIC; - } - - -} diff --git a/src/Model/InterruptHandling/InterruptServiceHandlingTable.java b/src/Model/InterruptHandling/InterruptServiceHandlingTable.java deleted file mode 100644 index d956fd0..0000000 --- a/src/Model/InterruptHandling/InterruptServiceHandlingTable.java +++ /dev/null @@ -1,19 +0,0 @@ -package Model.InterruptHandling; - -/** - * Class contains methods which calls a method to an overhanded value. - */ -public class InterruptServiceHandlingTable { - - private final int ISR_TMR0_OVERFLOW = 1; //tmr0 overflow interrupt - private final int INT_RB0 = 2; //External interrupt over int/rb0-pin - private final int RB4 = 3; //PortB change interrupts - private final int RB5 = 4; //PortB change interrupts - private final int RB6 = 5; //PortB change interrupts - private final int RB7 = 6; //PortB change interrupts - private final int EEPROM_DATA_WRITE = 7; - - public InterruptServiceHandlingTable() {} - - -} diff --git a/src/Model/Microcontroller/PIC.java b/src/Model/Microcontroller/PIC.java index 20ce398..773bdfe 100755 --- a/src/Model/Microcontroller/PIC.java +++ b/src/Model/Microcontroller/PIC.java @@ -85,6 +85,37 @@ public class PIC { return Runtimer; } + public boolean interruptAcknowledged() { + boolean bInterruptAcknowledged = false; + + if (this.getRam().get_GIE()) { + //Timer0 Interrupt + if (this.getRam().get_T0IE() && this.getRam().get_T0IF()) { + bInterruptAcknowledged = true; + } + //External RB0-pin INT Interrupt + else if (this.getRam().get_INTE() && this.getRam().get_INTF()) { + bInterruptAcknowledged = true; + } + //Port RB Interrupt + else if (this.getRam().get_RBIE() && this.getRam().get_RBIF()) { + bInterruptAcknowledged = true; + } + //EE Write complete interrupt enable + else if (this.getRam().get_EEIE() && this.getRam().get_EEIF()) { + bInterruptAcknowledged = true; + } + } + + return bInterruptAcknowledged; + } + + public void InterruptServiceRoutine() { + this.getRam().set_GIE(false); + Stack.pushReturnAdressOnStack(this.getRam().get_Programcounter()); + this.getRam().set_Programcounter(0x0004); + } + /** * Datasheet Page 57 * diff --git a/src/Model/Microcontroller/RUNTIMER.java b/src/Model/Microcontroller/RUNTIMER.java index cca638c..164d104 100644 --- a/src/Model/Microcontroller/RUNTIMER.java +++ b/src/Model/Microcontroller/RUNTIMER.java @@ -3,7 +3,7 @@ package Model.Microcontroller; public class RUNTIMER { private double dRuntime; private double dMaxWatchdog; - private double dRTIncrVal; + private double dRTIncrVal = 0.001 * (4 / 0.032); private boolean WDTE = false; diff --git a/src/Model/Microcontroller/STACK.java b/src/Model/Microcontroller/STACK.java index a794644..e8ab909 100755 --- a/src/Model/Microcontroller/STACK.java +++ b/src/Model/Microcontroller/STACK.java @@ -15,6 +15,9 @@ public class STACK private int stackpointer; private int[] stack; + private boolean bStackOverflow = false; + private boolean bStackUnderflow = false; + /** * Constructor of STACK. */ @@ -29,18 +32,15 @@ public class STACK * Pushs returnAddress on stack. If stack is full, throws StackOverflowError. * @param return_Adress */ - public void pushReturnAdressOnStack(int return_Adress) - { - if (stackpointer < 8) - { + public void pushReturnAdressOnStack(int return_Adress) { + if (stackpointer < 8) { stack[stackpointer] = return_Adress; stackpointer++; } - if (stackpointer == 8) - { - //throw new StackOverflowError(); + if (stackpointer == 8) { stackpointer = 0; + bStackOverflow = true; } } @@ -55,12 +55,15 @@ public class STACK throw new EmptyStackException(); } else { stackpointer--; + if (stackpointer == -1) { + stackpointer = 7; + bStackUnderflow = true; + } adressToReturn = stack[stackpointer]; stack[stackpointer] = -1; } - if (stackpointer == -1) - stackpointer = 7; + return adressToReturn; } @@ -100,4 +103,20 @@ public class STACK return noObjects; } + + public boolean getStackOverflow() { + return bStackOverflow; + } + + public void resetStackOverflow() { + bStackOverflow = false; + } + + public boolean getStackUnderflow() { + return bStackUnderflow; + } + + public void resetStackUnderflow() { + bStackUnderflow = false; + } } \ No newline at end of file diff --git a/src/Model/MyModel.java b/src/Model/MyModel.java index 4d1e13a..be1f142 100644 --- a/src/Model/MyModel.java +++ b/src/Model/MyModel.java @@ -51,46 +51,65 @@ public class MyModel extends Thread { bStopProgram = true; }break; case (1): { - //start program + //Start program while (iProgState == 1) { //Check if pause/stop was pressed if (!qReceivedCommands.isEmpty()) { iProgState = qReceivedCommands.poll(); } - //Check if breakpoint is set - if (abBreakpoints != null) { - if (!abBreakpoints[oPIC.getRam().get_Programcounter()] && !interruptAcknowledged()) { - if(iVisualInterval > 0) { - try { - Thread.sleep(iVisualInterval * 1000); - } catch (InterruptedException e) { - e.printStackTrace(); + //Check if interrupt was acknowledged + if (oPIC.interruptAcknowledged()) { + + } else { + //Check if breakpoints initialized + if (abBreakpoints != null) { + //Check if stack overflowed or underflowed + if (oPIC.getStack().getStackOverflow() || oPIC.getStack().getStackUnderflow()) { + qDataToView.add(oPIC); + //If stack did not over or underflow + } else { + //Check if breakpoint at [pc] is set + if (!abBreakpoints[oPIC.getRam().get_Programcounter()]) { + //Check if slow interval is active + if(iVisualInterval > 0) { + try { + Thread.sleep(iVisualInterval * 1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + //Execute step + step(); + //Update view + qDataToView.add(oPIC); + } else { + //Pause program if breakpoint at [pc] is set + iProgState = 2; } - } - step(); - qDataToView.add(oPIC); - } else { - //Pause program - iProgState = 2; - } - } + } + } + } } }break; + //Program paused case (2): { }break; + //Reset program case (3): { oPIC.resetPIC(); - qDataToView.add(oPIC); //TODO + qDataToView.add(oPIC); }break; + //Step program case (4): { + //Check if breakpoints are initialized if (abBreakpoints != null) { //Check if breakpoint is set int iProgC = oPIC.getRam().get_Programcounter(); iProgC &= abBreakpoints.length; if (!abBreakpoints[iProgC]) { step(); - qDataToView.add(oPIC); //TODO + qDataToView.add(oPIC); } } else { System.out.println("Please load file!"); @@ -125,14 +144,4 @@ public class MyModel extends Thread { iVisualInterval = oMyModelData.getVisualInterval(); qDataToView.add(oPIC); } - - private boolean interruptAcknowledged() { - boolean bInterruptAcknowledged = false; - - if (oPIC.getRam().get_GIE()) { - - } - - return bInterruptAcknowledged; - } } diff --git a/src/View/GUIStackButtons.java b/src/View/GUIStackButtons.java new file mode 100644 index 0000000..bbda50f --- /dev/null +++ b/src/View/GUIStackButtons.java @@ -0,0 +1,7 @@ +package View; + +import javax.swing.JPanel; + +public class GUIStackButtons extends JPanel { + +} \ No newline at end of file diff --git a/src/View/GUITime.java b/src/View/GUITime.java index 630237d..26ff964 100644 --- a/src/View/GUITime.java +++ b/src/View/GUITime.java @@ -35,7 +35,7 @@ public class GUITime extends JPanel { JCheckBox oEnableWDT = new JCheckBox("WDT"); double dRuntime = 0; - JLabel oLabelRuntime = new JLabel("Runtime: " + dRuntime); + JLabel oLabelRuntime = new JLabel("Runtime: " + dRuntime + "ms"); JLabel oLabelQuarz = new JLabel("Quarzfrequency"); String[] asIntervals = {"32 kHz", "100 kHz", "500 kHz", "1 MHz", "2 MHz", "4 MHz", "8 MHz", "12 MHz", "16 MHz", "20 MHz"}; @@ -77,11 +77,11 @@ public class GUITime extends JPanel { iLanguage = iLangNr; switch (iLangNr) { case 0: { - oLabelRuntime.setText("Laufzeit: " + dRuntime); + oLabelRuntime.setText("Laufzeit: " + dRuntime + "ms"); oLabelQuarz.setText("Quarzfrequenz"); }break; case 1: { - oLabelRuntime.setText("Runtime: " + dRuntime); + oLabelRuntime.setText("Runtime: " + dRuntime + "ms"); oLabelQuarz.setText("Quarzfrequency"); }break; } @@ -98,9 +98,9 @@ public class GUITime extends JPanel { public void setRuntime(double dRuntime) { this.dRuntime = dRuntime; if (iLanguage == 0) { - oLabelRuntime.setText("Laufzeit: " + dRuntime); + oLabelRuntime.setText("Laufzeit: " + dRuntime + "ms"); } else { - oLabelRuntime.setText("Runtime: " + dRuntime); + oLabelRuntime.setText("Runtime: " + dRuntime + "ms"); } }