From e80c875d4470a0e15751ad383d99a4575aa5de57 Mon Sep 17 00:00:00 2001 From: Meruemon Date: Mon, 11 Apr 2022 14:01:58 +0200 Subject: [PATCH] Changed how breakpoints are handled, reworked programcounter, CALL and GOTO implemented --- bin/Control/MyControlModel.class | Bin 8114 -> 8287 bytes bin/Control/MyControlView.class | Bin 7129 -> 7196 bytes bin/Model/EepromLoader/ReadEepromFile.class | Bin 4573 -> 4748 bytes bin/Model/Microcontroller/Bitmask.class | Bin 4389 -> 4125 bytes bin/Model/Microcontroller/EEPROM.class | Bin 1280 -> 1624 bytes bin/Model/Microcontroller/PIC.class | Bin 13449 -> 13358 bytes bin/Model/Microcontroller/RAM.class | Bin 20034 -> 19902 bytes bin/Model/MyModel.class | Bin 3860 -> 3897 bytes bin/View/MyViewData.class | Bin 540 -> 0 bytes src/Control/MyControlModel.java | 17 +++-- src/Control/MyControlView.java | 10 ++- src/Model/EepromLoader/ReadEepromFile.java | 19 ++++-- src/Model/Microcontroller/Bitmask.java | 2 +- src/Model/Microcontroller/EEPROM.java | 70 ++++++++++++-------- src/Model/Microcontroller/PIC.java | 24 +++---- src/Model/Microcontroller/RAM.java | 47 ++++--------- src/Model/MyModel.java | 6 +- src/View/MyViewData.java | 16 ----- 18 files changed, 105 insertions(+), 106 deletions(-) delete mode 100644 bin/View/MyViewData.class delete mode 100644 src/View/MyViewData.java diff --git a/bin/Control/MyControlModel.class b/bin/Control/MyControlModel.class index 644cc8599d8f5ab4b97e9f15e9356a6d7e198d85..174dd8430e3ea008bc51207eeb95e1b35abc6d10 100644 GIT binary patch delta 3193 zcmZuz3viUx75>h?{$%rSUa%x20TM8fY!bpl9`dFHl1IEiBdTZ<=HQ!yzSg11%l zLB64UN5yY(T63kGD*mI25AlH@gLZR$Ev@dx3V+ZOSnX~Uh|i8c}2)bzpq}vb` z7xA&c(&Ag|5txgLE9}^hODaA^g&^7M30BukYOePf`~IrpGkmT+qUOurwDoGv^eeck z;_uihu=B7fe)rNwPrZVF2+~)$SG&s_-F|QR>|ns>_uBC#{;A?CY~~F-s~A;_9anH& z#lP@x?UFjyc2mVS_>WfT7;L+Z|0?)aTjVG(cOs&#cjV;Raa%+clM!qhqpI}yy}^bl zQ)*^aS82N(t0hUxNFC|Ieo0p)Lox+9U9nFL1l(&TH8(Z6{q+-Dhz6BK+RvrCV|4Mt zg%x(`EMR&K)7rT3fe|dAD$sP1H`w09o6 zlZWu&dG6q{hWci2zPCA;Phj(d&G~jI$4f*^hN&`KMi6md%WO}hXIaowALVTUE#v`J zM#*UH$OQSGA``W1Y1z(6*e6g{lABg@&McD|syvuTt=d+1AhT1*eAQe~!8Yr*vXwpy93$SiG7dRAzT zWHY_|p7x+3a|KQ#G1|*p+L#mNGpaoP){3B~$pGmg729GUEl_bTHe00PJZFUKVO1V6 zj<$H(eL*|Mi(8eYh9HRm&1vv7F+)Y_RlJW64E1tVyoP#83iXxD!&bM~qlizS&h>fP z%BR&;O!qXdv`YhAim)^s3Gu|G&8A<;MoprpMMxTs!B!2v*UX0!ba`;&c#D?oN&E{!TgQX@m73#O2=le zPOL*N`RI!$FbE+G$9ggqLNzv^4jb_ho+3}1P*1+rU^BJP;7RuGZ7lu0Waj{N9kh9i zk~7#I!pG2}fGmgIxM>`aBz!1lN|=y1FBU>$;?bwYN|~7foD>^n77RsR6gVpn-y(`6 z!O9ReOER@KEQBwrRp7<~u~U|W$9ReXe)I$hrSOQTV@ZkUN-2^eyq1l*qOhEeA9Ew~ z7Ob5}RoHyxTUg~bDowXYj>%|qF}|dYhui3Wx53a!JQpX*;4JS2Y%-P!k)+Ku54VI7 zT3(_{H%jZAr0DW~%r+0VhEZPTv<|TjbXxYHfXY+G(me3aZ0JrX<}fUlIUB6vw3Z#) z8#zO*QCs&G)CP+HN)DmO#M6=+Wvmdbk|(_gY!L!cCM+0-;ZY{6 z(ZUQ(MRF%f$Xsv2>SUGnk0H;;$dIuh6zM}T?h%^}F}1hQ%k&M%qU0xdFb`s4SXs?S zT?Drv4)6?C2=P^1y7WtkEP5y*D@@2(4so*q36U)!!il)Zy&w4prMN@N=XaCAhh-=M zcI$G#E+cgrqs#cXop(Qa#d-1SGFg`juDW`id8{kvH3W329AycMwWsB%)Ci7C-ArS< zb|`mIXkHi^Bc30|77h!;*hmMX%t!Eq(JakJWN{b)iiTQrSrUfVn3|*0MaD(LsN*mo zjF~L>6Jbo_sxXWRF4`;$W2B4QI1X}IqhnEgyC)nCd#EL(3+I^~(r{Q-gpu4Kj~HRwbbJ}U%(rD$8L%rx1@z1P^-}?>kyGA#3WCO zS)LM`Y-PG_6T9q`6nUOC{i3AFJ_%*W&!mUE!p?Jq@pL^sax{_kax|Xxd!%PH!%e)y zO<5&@csr>@PIhKy=79SmY-LuXsW7#nNG%Y7w@ac(T~ubX*)r{R{+PWOwA)l``D=wE8%Y#w!1sq+HkHJ!asbud#j&r0C3(4X# zDZ&ae8ITgJky3s*mqFwBybQhrF`G{8G0tPRZAUsA%hd6lu93BzZsp9tSfX8|8YvOB m9dq<~H;_$@u)ni)vvEflSVEz#?~{}LT{RoWI%cg&9{V4SJLwhx delta 2961 zcmZuzX>?Q95&lMc(vzQ`7X(6HWDtv4WE-29EtGw+V=!C5?3=(sm>3&uu{K4aIJBWT zoR~-2KuJ!>Dd?olQWE-rxJ_xol8~f@l(dj$X=p>6wIxkLfq?owNd|gOe(2q~bLY;T z`+YNW_5P^mMrx;SyzpW?j^WaLK)a?D_QT6Mj^RatvpE!*S~WHef)hHr!mptpUeWO? zP8kEzPdfjk;;nc7ew8$2SC*)Q4(Sd@9IZ5nLNA ztq(SYOQ%Pg>KeitKEdZY{)Gn^Y-shGV12W-|B{X`@E_w-eYo>09be|?Fz1` zxGL}&qceOC9pB)(u`MIdIGV9m?8e~CA)2I1hAO%s&zP2(=g=invW#~!ryA8+xq~|E z;*vBCA~`y~hayYL)A3+Z^6A)?l)C8n5sK2pFWpt?X0&E`>^-EX@nn`?dKss(eB=5E zI?W13mM*Vt4Ew{45kGI~k2Lxt!y#1` z3G|tDp>?H|HC1Q`y95CK(|2r}B$qn9+UiD(i;AYCdYq{}iXF|KvELsl65+&LL_ zxJ0z9&qQ2$e!6?7J---sC;(d9uw%|4?3`3ACLSJ9up65VTjvG+4x)eHAcmNDiGw8` zH*u1~Fl%a}W!3?1wqqT?V~}mMb{;r$1LmUz3-AyYVLkPMjvg!Wd=qaOPkDW54Gg0Zov_L{0Nt_w$T(Qe|OMpaIa3{E~N@wiM}F!7nOA*V;wT2{EseKj7H z3!Dc`{JX^^9+yYi8-J=r6_4uM8-J80MElEJhl&3NJj$Zq)h!|EEnW9;& z6p)ntSY#ih#4tT&=pkhmm&xg~mI(>ng)%CRdz9q2d>2%E42m*?^KUDV7Db{Sh15RX zVwVCM)i8j)@ol#XXAn_km`wH`!;PO1jz@^;E*8#ilKN9j#U3ofqgai{Nb_zo_6T-j zUxKFr$t$LKq8G^)77+b>U)%)P#)P>ynn2x-63j`Ut|aPgIMS{o-@>mG3$7dv3u3+$ z#Mh=uN9u69&Ti?%OPC$DD^@N@r*^3AWl5;zNPu{HQkYI)K@d|lU`EB;uCpLb=p?sY z#Y|7B^4nF;o2r78D!3p1=cH?!6wc`=y$?xW0vR+VU`jtz?l5Iw$}YSg7RDA4VN-^h zGLllSo88K8m2Q(MV}>d*apWpTq(X31CQi1t8;gDOqmyDV=yggA4|13m!~NVb)P5M7 ztZrvNEYo9XqN-dmWo8UvOSC7%`Ly@OP{ScVhRGZXVyNVh8^fpoZRW%a`!0TYvOh^?=UJ^43GlHai>yu=cJnW=OFkK-g)U%_wjs&vBZl7ly* zl8@8U6=$S7pP*iNOZwuR48(c4la)6N@5(qnv6c8hrr?6yjSpoeAND!;h)>qXvKXI9 zEk2hpF3COkLK^UuG~;Voi!1V7{zch@>#_wmWGj~t3DIPqM0NRv zbdYCoQVvVUM2aWg4>{7F;&LRF;*U#iBCl<{!(|D}@>Iu|hP)iN+ugfooORWn)KD2T zJ6HIoMwN*Pozv-bYZ|{!RaG_PaF+~cIv*aXG+ygc7#+iWa2F@j1Q)A|tgg+e#YEg{ z3=>YEmo+e@ZnKm+%Tn&S-79h=59yo@R(=g5IIc-Y%u~PGPKf#F!M=NhSxA+!Mi diff --git a/bin/Control/MyControlView.class b/bin/Control/MyControlView.class index ca9be9cff3ca72c6465e7e0d92e0181f406674ee..f978d42c2a844adac4e8793e9455cb43ec8b8510 100644 GIT binary patch delta 544 zcmY+AK}b|l6o&u*jp@v5Vw4(Z=Dnye5>hK2ozZkgr_?dcMH@j7ri~)Qlw!0HTtwhT zT)4O^rDYpeBFZBabr1>?TC`~4qD_m07DDZ$(#{+VkqhU3_rK@A|9fY@^-Y_-cf7HE za)LAmSM6mx;2$4***`HlHf?t8A-~Nlyc6VIvtoyXR(_Bu&p&xFIo`b%xp)xF#o?0$ zEY+=}%45jmq-c2!}>^?2Rm&GX__GaSvlYVde_RU&+- zmYT#RscTZ#;le{L-k}K_$YK*C*g_85$YTc+C}KwTS?ppF?-3DK3ob}qLKHFCYmwkR zyavTz$3`JboQ-TkL9~MO{3&S;o=I~h%6=pF7oiF~XXpqH$haxSYWUGi#lmb>{-oTZ z{8>4n{H4UcBwJ0VbA$WlsS^pb@xH{6?Iz{a@M}p6cj)JkDW+kuQ*teKnR(|Lzm@LY z3?GQ&q3A*JLO8>2eWgcpzH4T$@(<;#@}cJU@sXKxZ`J>lG5pejRLd^|<);G?Vn6)) J-hgI5{s;OucD4Wj delta 605 zcmZvYyGw#m7{;I1?poS~ynI55(a_B-D>W<4Zc9T;1TN7a(#3)Z8qK*W4mCBlG>Y|g zL23vJDr#tmprIissDB{3*y~AX`8b@*`~2R^!`b#dc=eY*$0yk=`e`hs-_@IpvFOUg z@=|PhCO$s97!?`)WV+YzQXZ*B0WV;yc@I@8nN+Gd$GQyQQOT;?L6{@f?fHy4JgJG%BzMJNDs+iYXi*fVUrQcUg7N#L_ZEtLOLlNF(hME5p SD9-;9zi1exa{h?)I{FJh`e=^; diff --git a/bin/Model/EepromLoader/ReadEepromFile.class b/bin/Model/EepromLoader/ReadEepromFile.class index 8a1fd98a4850564e6ad1d8b847087022d124eb45..2258db2689702c4198549a185f43980bc6eca162 100644 GIT binary patch delta 1513 zcmah}ZEO@(6g_umc4l^*(xqjzwUli^iO!a8u~?`eRFg)UP!_DvHm!w~uC>taQg(r2 z(XCKGkq_IU$cM#j5f}L|BD#oTF(i!y1pQ$&8jKK)F_Aw;Q8d!^&QyZ-k2861&b#l; zeRs|~XTF)RY}K#=5%at=k5-yjonvXW>5`@^QLNFR;%Re^ zbSDqiYIp|Enjy(3iK0`(b0{Y$(Qs9CMRTZ0#d>Uz(M8C#vp0u*^Ee*m*WeOca;+@!)F7uI za0;QsDU?VFT++ouu&>XDA5i!?1&CobgL-buxmlB4+;(w0%I%Ed6>@b^mvmomf;Fo@IAt~#&lgrgj7T+4Xeq6b{db47)?PZO+`J; z#5yX+dYXfURE-UAb1C(3SqF{L$l#HMT#(oSD*1VfMQ}jFLnwp~0-+KI7nnZb_4-l=*SakyJH-%`4Fh7ZoBw|UdGjq~6 z#r|(mwj$^*f3_m(D)+a}r-63`y7@eMFpXKCfnJoc)uM>A0Q>Pa_Tyc=j<1lwFMJxm z;Rt2nP0GOunuYh6zLQjsQ(4rB4`~kus1Il8G(M(5oTc+PXO_D2=Wk+e98AeYJkLn5 z(F=@38*OIfw9$)$xd6 zR{Q~GlmAPY&Wu`e)A^lYxp_FtL7SF|@Zb%bmPx$DA)6LUM`;jlAj{H`?+@mTaM-HM Hfg^td!jU{i delta 1390 zcmah}Yitx%6#mZ6?98xC>6YzCNn7luK+0_GQZW@%z=qiPNDGxlOl>W!vX<7qyREHN zi&BJQ3&`+>R;lQ!@l{$^qp{)-OvI=p=no~B{xSZP1miQXe!Ck3X-u5ibM80i-h0lu z=YD60mt4yCoV)hXbUcpLcw@rzjcN!&CLY0~&aY~%Q|<1kdmJq~ng!mbP){h>9BOR{ zR`+#9!Yw9R(I!yZx+4OsB01gI7Od)QY>iY$I>VusQXL(F1vhMraI#@-cVqLGaHoMT zCr>N2+tF>pgC065NO?&GNvK4v2m00i|$qq;jr_&UaTF(aUI8; zBE#=Lfl)zvS2$7;Zf%HcEibRyu)b2D7TlXi>?mGxDvf++pRsQ8XCv+!$cD}rVg+JY z=01yhSEaHhinvmuDkW~EM2q60rM`*8b0Mh#gX0Ry-IQ8N8znKfopPA+7UeTLpyXPr zrCIJ6HY-I5M|n=@l(-mzINDse|)+X1hBeJW+N zXuM&4!Z@gkrF!R_j4yU>Ny{3D7rw_lRismQB8U1uUTOuuD={DIU|~J7umRbqMim}F z2ph2lHR#4e=*7brLOq6Q9VPi*Mi>)#3{z;t=V-zgXu(CY?MHOrGJ0@@e*QwQ2>Qf8 zh4|1v053z{lPW$k7?O`zm;((0kIZGTO>n^!oz8<$xZ*d42r^}h4jYKvOz<+c5@}e@ z?Iw4od>BNP4b&QMtjZt z&JPd?jRuGHbQY{R4+!<3BTL-`b+$XQIw zmpJ2`_xkVO&f~jy?5{CMq$JS}A~lJgCvqpzP9hB}OX38tfy_FrHa!BwnF~`neUyMCCs7P+%^vU?l1RW_!E-qyr{ChY@GJXXg&hrj0 zz>n`xz%m7K38nnL3o}XntVw0?FMm*ualFF(e7yZrN&YOtQWSBY!u>wHN~BUuyhiO# XawHAPRrnJe$@!BeK{U}8F1-E^mo6+) diff --git a/bin/Model/Microcontroller/Bitmask.class b/bin/Model/Microcontroller/Bitmask.class index 0096de6ad391cf7cf7a208f606a8da04331004f7..291292413226264067c5d44cf7608abc59ef0638 100644 GIT binary patch delta 1908 zcmX|BX>3$g7(L&8otZM+7APHBDP^-|9m`TIi$eF7!J$)TTFNFAMTD{xNFfH3o?*5hDqNfPw@;MUB?)-dD{0c;}vbzVCi>&v|cu*Ik|6 zpZoQe#Iffz(^Was6T74Wl%&)0Lb8>tu~ z@tD0+#58g!Jt_`BQe#S5-QEHTTGLfZZl=s#YQtj zVy0onJeXv*M5XDHV~;;qqRL)}OhvWCd{dEAQV`13gM^=xSol8`($r#!C1!f|!*4Eg zsl+myDQae3kXUZ}knQ*Dq8BAr>ObgYW6JVMG*u(9+Gq*`B>_#mB(c`C;hVD?zbwO8 zZz#Sgn|eiJqiGb(FDdZl>$*)65hG&C7QHI5<$*eqQD@5d z3hlDjBz7ByFU)3MZzr+WbP5!g_yVTWK8gL2L(au+$2~-&6<{Sa40pv_;nvCZ;1%2e zUBe>A5`qN|ei__|=U)O6@en$p15(ftY3PDD5XpF7 z^u!0EH%^H(oEH6XMr7e5;Sb}SD8eUV6h0Fnd@jmyUR2 zM-};OG+0rlS5uEG%J4QKOHm(tCs$FbjS3Vc*~q7;jg9<@Ts8_Q{9~h_!d)AcD%>z# z$0%IpuHo?t7wxTy3g>M!S>ddWrYM}S(X$FiY*eA3ydH-hZI(h^Gn}JP+YIL^)HK5d z3QN2mXCoFVR2lHR!gR04#V0G2dmG1Ng~C`vtWqd8k~Ip22CP#U#xrhE7--hD3TeFF ztk9hwTNOGRdWS-S0lO4pd1H@)iyv<^jA}K8a<%K61QFGo1dX)Umf^I+Q3h#W9R{(R WoCK}Y7P^oUx!JnE>i`=mp#B54;dcoD delta 2217 zcmZuxdr;I>6#mZr?E~S0Kq4ASBtEbfd?Z+z8SEmitt{=Lpp{C22=WrqBCG9bmT3`| zy-c(6rdg)MYMN<|mg$(|Oih_%+2l0o=-AZQ*p$(^_lLdz`hEAi-#Pc(^PS&anep0y z*!{n6d%vp-WAR>F?3s)nNWvvxiU zzwNg)*ECcY%&)1dtZI%yUqXzxvA({dp)w;Dy^$v2L_b1GR^Z<;V}?$NMLIIvxQvkW z*RH>zrK-BBS>kdGAjGvaPN=#wY);`cku3kv|7OxB4U`y!!30-DQ&Uw#B_aF&j{Hw- zcjaSriY$qtxPouc(s=Q}URnPTPo zh?>YTp3t`~vA3(l?~TEP_Cq2qQizEXHzGiA=KFkQtZ-)e{kj>2D3%D?JH@=CnVTd+ z2ooIMK!~LdzQ0jUmY4#U&6jCmxx`c*>hK09naG_QE~-{yj)|HSoMKY*fHdeTolMx0CW*PaKC3ub zq7RxU(V|1FNGM=J7D(J-h)~F^TP5x?r-UaL*eULoxW{J7@=J^+B5|K#$}d*(fW(6) zOMzYf!xD?^b=X8KmUz@e6qJq+dvzg^B@&PSNrg4FOyUVsJ^K+b&1{o+%4UkYndK5s z+dkw60y=1g#IyQ>E;gpjSE{M!C0;O^qF`xI6DuWNGHJMTcH-4Cf|m`&owBJ{BwjU% zLWQN{{e?Pit%NcnrfktViS-vnlS9Q?v_axcO*zAX!a~#IjS_F0Fm9n8wppUXFx)Vk z>Fg~LHJO4XrT(DFv{mBW_Fc}qGF?fCK~KOMz8Q(z(R*rgpDnmFZ7cdmkr~C1D6Z`A zxq4ZV;r%y&Wrzjn6#E87eIb#?(dkG=CchWiNW}C5a$219D{il zJv>D@JO#tq!;x&kC~jXKcWgAb=o)Uy81BMYzQ8!_gcrN{&U-n_VfZ8X6ch0|r~48m zIL3d-NtEI=CgUv1@FS+-9Bv`PbaG$@xluu}sHDD_MT0P#Mxd5PVGfN(Jza}N8jHE) z$2A+%Bj7E(R#p;kobVcbuP@c=EsL$nNws11?Dv=WceYAm5wu$0!~Nm_@e zs1wWS13W`}u!26qbF?2X&_S%EBUnX8v6{ZZ8u|un=?A<{zhS+I!3GhFH$^-)ibQM@ zm!LyjhE8!gqGBMniXqr8@~}e`V5jh5mngz+F%f&j)CfKlRoEx0@v*4I0a1s8q7{e4 zgE%af;xn-VN5m=|6$)RAjrdk<#&@C<--{hMCHCU9*oQOX0M3d}@Uu9E^Wr#u5ohqL zIEOBAfh@~OPAi67Rvg7x2_&sFO0d!?(aND@#If0tXYDCr$K!d)^TOWc^3$hL9{VSd zW~H$6xjZB3Rx-Pp3kNc-cwEcKiEPVacXQ#w2+@V>7`bt^IL~h9@&t|*KjC^tJy0Z0 zvirF_T>)_dH!zArSRBhiK0}Fe@dXMP#bbsz%p;PE1o*g~d<^X38S3c2);{EiugzrVPimRz@iX*RE^VeQwF9pWEhAm{}Fet zU1%aPapBI5f0Gf5?yqUk z_^HFR7CpD_nT>hN5nCE`c`$b0ax8y_b@|a14aNg{ClEnr5^YGfLPJ*)akRt{lbfC- zqKIkelp0UA8&%;gn^jwA=$?0LroCc%mfVLQ4S&s|)4BQ6TAHG5z9ik_)_>s6y6_Lv z8u`&mNg|v}q7@1DbNEOg!j3eHcw0xyqxp)mXbVyZBS=tV))o!nFv6(itcv#<+C1TJ zd(Mh!Z?muVCEu)VESQ^NOD!xZ1qWkR_#$Zo@?c0RO`@cU5z4<`BU*P`MAiRFcXW!pk*KmT!Y>g&84>TZDnk*5YD`h$#2bM#E!#xdS=)OtwoM^t`% zf_LFm?=f5pGdwuS)X`BqRpLh{c^%_n@dvgnujgQ7hN1Nap>>3z<;up)(0*(gjsvI= z{Wa0wQ28w{+&kq^2vnNU4TjNC8ATPH&a)F7XJkLbei`EAnOKZtS=Pz2K^B_~4eGlm Wu-sHpN){Qayt~J<++u$^ZvO*72;z?b literal 1280 zcmaJij+l`q?lT8R9qFi<3WE8rVl#Y1eKk?FA zFEo*u7~>D{HyQCcr^jvV!Yn(d=k$F(-skPFKi_{|Tu_Z3Wl3XHY=sBhueQ8S6n4TO zjzZt(QMJ+7+}dbmNoREB$USqbz8iF_8|@?Bi5X=$KZ(K~BW>SdWG1I354!OoBZjLP z*V~N3ZshiwUcgU*c;*FOTxXOjm3JBG&!K8iie^kQXljxmV^WqT#M7KfY05B~71)>k zUYkcdZrkU0(+oSVzw1VxIIBxNKJ=h)qxrv1)4$Mnxi1ow$2vzk)*RMp#GJ=@9zOzsgwjVtVNO&PBQE(K~l57p%5#3Zobw!l1SI=p2*pDHxYY6DU z2v=snm7!&6l_Ac5rhH&Tum!DVeW09$ls=LHhdHZKD+-S(*Ag&+fpkT?C3BmYOq!K)9B$}R%N_R diff --git a/bin/Model/Microcontroller/PIC.class b/bin/Model/Microcontroller/PIC.class index 71b082cccded52ff66102b86898e754ca26aea37..88b19566ed112f89265289890c2490e14fa78992 100644 GIT binary patch delta 2506 zcmZuyc~q3w75}~E0_vcn1cYHz3=_Dd%rs?s#~UY zKGyz+_a8k%E*|XaZ1st#7U=Q3bJn<#^>tJ0C)7-;n_WB0Suf!2oZ+0~tQ~GDe1fMO zvfwc03v_e6Syo-+95H*=;29I9cE(5?wcwcRth*bfZmzSwpl)vMzfb>S!Ex8AxBIj- z)pg?&3r;+-m*(0#Wx=QBoKJ1w1q&{A91bZe?2K|;vfvvtzEg?5VZqJazwh*2*OaZ$ zkN`>&_Fy#sm9}EF9^Z<6uIJ##8}C^I7g~Mh@$UPk#FjZU4Bmja0IRr!IB^B3;wrMm zbrgx47%6UHGUEk2Muiho_&>(Sepn!|iJuijHa~u7<^w4u@46Ux zt#ZlNtvKjekGNLVia&eSk3H*2BZBkovG9>`u*zNtl<~}9N4!iznoLHHOhKMZN14n- zrOYxl!4cv!vnqI7k%QkafWI69n;eQLS%g?wj3hY{S+bPXm0_SP=erdsm19vQpTiV6 z4mENj8s%g(NvAujOprMdVK>`CLd9uwC}ex#Y{s1nKlvhh%J~S94G5QukRo3~hHOHA zxeSBlaumxI7%5kwLaxRnxdzkaTGYyQSR~)TGP&OD3C$Ouo3_v`g>N(77RKAgc-t9k z2WxFXf_w+bayK&NUi6XskSpKiH2=hy`x)~?#yr57htMF8V2M0xE`}A@&!F0q@@t;X zakx_a|D94`gBKvraLvwfqUX70Uves6G0TM~y2R1ZC652>l3q-8)|?ODR(O*Q+-3vc zvw=Ho;4T|zV*?MkKo60v1ag$bAf=G6yt&9-P^B!GqI^-KtY}m{(4_p#k%$8Eh4GDS zEslm&#lla;!=~(rP)UeU$*`*w^i~<@ud*4dFN#z@#>&AM)gNP(gYoh(Q{`i>8jSgB z7+zJ+pjj0gYgBW=UR@0HIYA{08VU(I_ z?nh;d^Cmrdv!ems)B@Jj0DskpAhigQYB6hC%J)_vRjovpdKrDxY7A8dC8`;fY8@u3 z^_ZnLu$GO+8j~;nYRY291Z@SW?dYm@AW;1V;i?5`YA4^_We&&0i@%v~W7Z~p0Il|; zr#j4@kMQ|XWUAxr`y>k0Dc1KX>-!wj)LGQ2FHB2pmiW?Kik%j8k$ruG5Oo=G>I#z7 zH4IcYFj(C*&bWpCKcbUr<2UYcst;IsJ2KQGlM)}6`1g*F^H={EFAn zt@ygXyNw=?n7+fbFMPBWR_%vC?T;uO0J{!Cjt)ki4tb(?@;$v{MFuW+Oc*clJh2OI zpDSinTv>pQMJF8xKivy9oq*oDH!^gROIiHYj)vaK$`mUbln~sCUwUNax@3iTWHss> zkRAYE?SQ||N4PFPoF0Ncx(EaHFt@CT#~2+gJqYXFvV1)PrF#Ur1;)7q{-Yxq<4Gpx zzY}puXvOjkFk@_q!`;(YkK%kPIG;*3RE0=AjtxyfKRxk@Y;rszeEv6^NEh`rv&B9@ zTsN2OO(k`V^$RxjJm)u&@Z7#FGI0j&V^fnQTkO()oU?R zH{%7p4omdwSgGH{CcP1F>rLjp1c$g~9wr2e+a@5<#Z#WxSiFOIev2U8f)KrndEQ~3 zR_5Uer1x=s|H$?I0K@eGjL;vUTpz?}eH7LDIO_GsXwaW9&nc|apE1vA6WQBgy9IJb z>I<)S{y7rjDKCF(5Zn9qap^B}>926N2+m`vqNH41e!2D7P>X{xY@#$q{*XR1kPrpeeqPHd)Xv``K9QZ4pV9ga{v z&e1GfpxN%Gcosg~-523B;i)++s4_KO+%>CGH)bt{m6oucr3j~GY=0$s)5}PwSCB<( z*m^VTS;w|t$9Q^^?QX;iw8=b|meu74?rn{5RN_bTR$8L?r#o}{9XioY_|Y!dXb*$6 zB7^q2GjB7c=`W`3=Kv1yI|t!Qhu}|#5lF`nLB|nGCy-1h(T7f9Af4vC&tNp2HSOtn z;+}D2{Mzv~-@VLYuOfu5A(F1cPB)n2HZtiB-@A(e^aC7p56{v=R8l*f^awM&Bo=yU REcGH|&#dsi&rwMH^e>#gHTnPm delta 2660 zcmZuxX;_rk89jF!1|7^G>j1KgFf4*VL#WVInOpt1`Zo*yZd5&7)#1s;iBlGQ_|#sCvG=hBr}Z9lb>P<)TyZZ+7uK1_23RlwKd`8_Aa$^lf;Z!~SbNg$loA%>1%U1%HCt)18(B9Jpg zaE^E`(2JXp$ITebJ@sB&EIX(#*{0O{Kyg2K@c{VqK!kG}dhihR;h`A7!(0jtHGspd z(9j^jdeG(}M7jC@WNcAkyumNqaM-;bGgi@t6Ylk-d;Q2&r^1W6**C3c5;_Ci4l|F3 zl_!wuL{gH3Sl$aMJQe+T8gh7VjNpARj`!7Z!Qt!^{ao-?M*+QG2tPgqLA(f&ycpg2 zFeLJkNatgyi?PV&Wpws=4ChlYo=-(NpN1-4fqGtv6?}$H4Jp=3!@6o6(v-h|&=$dm z*CT*8AcQYL7+;Q_d=*mpYGm>?DBx>R#MhyeYmDWMn94U`27e9JycrFA6JFvidRDhw zc1G{$_GbQ8!h4JG{y=!!2WR!pU`iF<|Ul%81-++YC%@#1sfiAq_82&cnouf4ieh0EcKC=y z1c@Ysi(ZHpsfZJ4NDvvw6q$t8AB7^Dum+$^I50sJ5Z*w{5`!>T48}rHg0*5O8pSZZ zDYEdHUFiOnPzl!Y5F6gt7 zEsiC4Ml2;wOW-G7giS0*gjhkEUZ!*FkStz7x>%14(TG8!2}8w3j1$e6B3e)^4IwE1DUmQFo zjav4;`!YaIqPx(zZ6`A=gEhuW~R8G5&Wyz#9S$TG5M z0=(r!1j|W?lv9x=o#-dapRy;@ZIAhX?TIv~ztzvh^=IGdRdFkZ&L+F(z)#Lapj<$f zFGP&2N3v|dvvLVFxEv0-5`}U#isTx)bk|~(d=(XP17^u4%$FOnOg7_X*@8`SGkz_% z=t*`*&`l^;yIwFoKn!E7tB0>OlBjR#J$8foM|*wIHlp56ll~(@z#{1Y_iJRLYa6m8Y;sen`}(u|a-H)Mxa;`2R!eYx1+&i1xNC z5LYM=S1AzJC=k~v5H~3hw~Ror@AX>=rzYR0AwPtd;_y}y!O8=%suOyu&giWy=&P*A zQ9dY8z9?3H7^?g+R@pF71))L(V}=SrtqQ|D6@j0tXsl4(v0laCmnsgwQ}NiY67>1R zboPVxNlIe>YRyR!tUd!u^@G21AXMdn226B?$WlX)r;0H|m7qio$7nSg#DN zOj0e>?PknZTeL_??|hfSE)j-txTkYd;@OYn_y~X13Qx5IK58d|)Gh+sja0SAW%*C~ zZpwm`1JwT^dgln)eiVM{7y{J^gsYS2u0BGN`WPANG_uthvilsysL%8TYYw}wyZFRw z@6<((%XIz<3BHC9^&KMAb;PL~#B&>I>JFW~i~i~!9I73|Obp{p98QzKOp^(VO=c`N QdFm6XV?El*4UPx@2F-L%FaQ7m diff --git a/bin/Model/Microcontroller/RAM.class b/bin/Model/Microcontroller/RAM.class index b484a8d78316a02c936beee7b2466d852d1cf470..cfd5351a4138065b21b69c4a1a3f86e3b7ad7b36 100644 GIT binary patch literal 19902 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 GJK}#V;-EwT literal 20034 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 diff --git a/bin/Model/MyModel.class b/bin/Model/MyModel.class index b0c22ccf761873f3a48ce1f3ae113b8880c33edf..73e63a6117f629f97ea354bf45c25049e4f22c40 100644 GIT binary patch delta 816 zcmYk3Nl#Qk6otQnwkIAml88nSP*9<9f{4Tf7X&eO1VNgBf<{|>K_db-?Lt&sIN&T= zpnx+f?Tifl5H&NMOtKW%=B6 z(5=x!uiW9>BJRp=XI1<|4F^s)Mf7Pr=82qkuD17Ugn1@&T*>wq8ZUVz{jPl58;t>Z z&9%rr$gqPU`O1~PY=nqvs6`L$I2H)D`kQtAfTdPtemSb~Zupn0OZcjZQU_5P7A0Qq z2)PEEK2c;)Yz4lanePg%G4S;YugOqQF-i@}B4nyK^98CtK~BZ2o&RkJe?q{Z)@zHf zBFvQZXrYZYVX74|!=O!F>nzw>9i~vhy3gcV8QtJeL6VsoZ!0jbBsrulPn;M;FwP`j zXd#;QO0AzP`9nJwNTWt%QY&)UE%MkS3fU_*vrm+eF8mxMPjS;!jcSh#ZguDq9%P803*OTUMt$(RfN&7F)7Xo@>0|rQB6El!zDDOJq4ThRM zfsikF((6}w$B>zbz#*F~j%1BtM&u7mrb*Wr9sX_U7TQLVjEC4B7A3ORx=bvUAFLTd zk>9Or(!LE*wa}|m=QKrG8D>hRYavrbm~z>nEwa0vBh-H+KNgIiqvO*#ET^4>9t#DB%-0Ty@>=z}h5FQRvXpGq7R@i{ssJ>$2B9{!I7Wvt> zM7ZQnTi%6Mooj=*CurX@%B?b29Nap`*XfKGw`+{JHl8=vgt5l9xo2z>F~sAZ9LAO5 z2#fKPO(UBKu#IEvpouDibEc?Hn6hS5zb*Ip6Oz2>m(_qvRyg$I*ZHcoy%y z(s`TcMWZ-l{G{2NWRPOyr%2{BshlB`W>#_5SpVFA?4kr4ig=G=pao;I8smQfOLDE- diff --git a/bin/View/MyViewData.class b/bin/View/MyViewData.class deleted file mode 100644 index 21eb421638cd27ecddd923de3b68ed6ef501f9d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmaJ-!AiqG5Ph4piH&JvqgFu_yrnIe4^Vrl2tulY()%_pbxX`bnkxR4f+BeE1N1Af#?7n$#=KJUKYdXa#c5N68USEo*u=lLf8PB zl+^V_mtimJsXLK`JsD>zR%xE8BoSFikH-wwiA-hQVK9ScpEzCm>%hdi3ma=B7Rgjx zP96p#yXAvKF!+&*dD7>Z)VOGt@_RXEs7FiQw8Bv2Gb8&!bA^=(7&cv$VG(6qP!56> z4DHvsQIjkd=TbZK7B@N4=fEM&Gy#f+9!!- 0) { + int [][] aiiOPCodeInformation = oRef.getOPCodeArrayCommandAsInt(oRef.getOPCode()); for (int i = 0; i < oBreakpoints.size(); i++) { if (e.getSource() == oBreakpoints.get(i)) { - for (int j = 0; j < iOPCode; j++) { - if (oRef.getOPCode().get(j).equals(oRef.getData().get(i))) { - abBreakpoints[j] = !abBreakpoints[j]; - oMyModelData.setBreakpoints(abBreakpoints); - qDataForModel.add(oMyModelData); + //i = index of breakpoint which got set / reset + for (int j = 0; j < aiiOPCodeInformation.length; j++) { + //aiiOPCodeInformation[j][0] index of eepromindex + //aiiOPCodeInformation[j][2] index of breakpoint + if (aiiOPCodeInformation[j][2] == i) { + abBreakpoints[aiiOPCodeInformation[j][0]] = !abBreakpoints[aiiOPCodeInformation[j][0]]; } } + oMyModelData.setBreakpoints(abBreakpoints); + qDataForModel.add(oMyModelData); } } } diff --git a/src/Control/MyControlView.java b/src/Control/MyControlView.java index e8371af..1e0ebe0 100644 --- a/src/Control/MyControlView.java +++ b/src/Control/MyControlView.java @@ -178,8 +178,14 @@ public class MyControlView { public void setTestFileTable() { if (oPIC.getEeprom().getProgramLines() != null) { if (oPIC.getRam().get_LastProgramcounter() > -1) { - oMyView.getGUITestFileTable().unmarkLine(oPIC.getEeprom().getProgramLine(oPIC.getRam().get_LastProgramcounter())); - oMyView.getGUITestFileTable().markLine(oPIC.getEeprom().getProgramLine(oPIC.getRam().get_Programcounter())); + + int iL = oPIC.getRam().get_LastProgramcounter(); + + int iProgC = oPIC.getRam().get_Programcounter(); + + oMyView.getGUITestFileTable().unmarkLine(oPIC.getEeprom().getIndex(iL)); + oMyView.getGUITestFileTable().markLine(oPIC.getEeprom().getIndex(iProgC)); + } else { int[] aiProgList = oPIC.getEeprom().getProgramLines(); for (int i = 0; i < aiProgList.length; i++) { diff --git a/src/Model/EepromLoader/ReadEepromFile.java b/src/Model/EepromLoader/ReadEepromFile.java index be24f67..43d21a4 100755 --- a/src/Model/EepromLoader/ReadEepromFile.java +++ b/src/Model/EepromLoader/ReadEepromFile.java @@ -67,11 +67,21 @@ public class ReadEepromFile { /** * Turns hex-values of an overhanded String-array into an int-array with decimal-values. + * [0] = memoryCountIndex + * [1] = commandAsInt + * [2] = dataLineRepresentationIndex * @param oPCode String-array * @return int-array */ public int[][] getOPCodeArrayCommandAsInt(ArrayList oPCode) { - int[][] aiReturnArray = new int[oPCode.size()][2]; + int[][] aiReturnArray = new int[oPCode.size()][3]; + + for (int i = 0; i < oPCode.size(); i++) { + for (int k = 0; k < dataLines.size(); k++) + if (oPCode.get(i).equals(dataLines.get(k))) { + aiReturnArray[i][2] = k; + } + } for (int indexRowOPCode = 0; indexRowOPCode < oPCode.size(); indexRowOPCode++) { int indexOPCode = 0; @@ -204,9 +214,6 @@ public class ReadEepromFile { //Get an twodimensional array with int-values. int[][] oPCodeAsInt = getOPCodeArrayCommandAsInt(oPCode); - //Set length of eeprom for programend. - oPIC.getEeprom().setLengthEEPROM(oPCodeAsInt.length); - //asCommands are written into EEPROM for (int i = 0; i < oPCodeAsInt.length; i++) { //The adress where the command will be written in the EEPROM @@ -217,8 +224,12 @@ public class ReadEepromFile { int command = oPCodeAsInt[i][1]; //System.out.println(command); + int iIndex = oPCodeAsInt[i][2]; + //asCommands are written into EEPROM oPIC.getEeprom().setElementXToValueY(memoryAdress, command); + + oPIC.getEeprom().setElementXToIndexY(memoryAdress, iIndex); } } } diff --git a/src/Model/Microcontroller/Bitmask.java b/src/Model/Microcontroller/Bitmask.java index 52dd5ab..2e735ab 100755 --- a/src/Model/Microcontroller/Bitmask.java +++ b/src/Model/Microcontroller/Bitmask.java @@ -7,7 +7,7 @@ public class Bitmask { * @param oPIC */ public int bitMaskDecoderAndExecuteCommand(int iCommandAsIntToMask, PIC oPIC) { - System.out.println("Command " + Integer.toHexString(iCommandAsIntToMask)); + //System.out.println("Command " + Integer.toHexString(iCommandAsIntToMask)); //Return-value will be -1 if command can't be read. int iDecodedCommand = -1; diff --git a/src/Model/Microcontroller/EEPROM.java b/src/Model/Microcontroller/EEPROM.java index 3f82989..2b64e8e 100755 --- a/src/Model/Microcontroller/EEPROM.java +++ b/src/Model/Microcontroller/EEPROM.java @@ -9,14 +9,18 @@ package Model.Microcontroller; */ public class EEPROM { - private int[] eeprom; - private int eepromLength = 0; + private int[][] eeprom; + private int eepromLength = 1024; private int[] aiProgramLines; public EEPROM() { - eeprom = new int[1024]; + eeprom = new int[eepromLength][2]; + } + + public EEPROM(int iLength) { + eeprom = new int[iLength][2]; } /** @@ -49,23 +53,31 @@ public class EEPROM * @param element index of array. * @return element at index. */ - public int getElement(int index) - { + public int getElement(int index) { int returnValue = -1; - - if (index >= 0 && index <= 1024) - { - returnValue = eeprom[index]; + if (index >= 0 && index < 1024) { + returnValue = eeprom[index][0]; } + return returnValue; + } + /** + * Returns index of line at data lines + * @param iIndex + * @return + */ + public int getIndex(int iIndex) { + int returnValue = -1; + if (iIndex >= 0 && iIndex < 1024) { + returnValue = eeprom[iIndex][1]; + } return returnValue; } /** * Returns length of EEPROM */ - public int getLengthEEPROM() - { + public int getLengthEEPROM() { return eepromLength; } @@ -75,25 +87,27 @@ public class EEPROM * @param value of what the element is set to. * @return true if set worked. */ - public boolean setElementXToValueY(int index, int value) - { - boolean setWorked = false; - - if ((index >= 0) && (index <= 1024)) - { - eeprom[index] = value; - setWorked = true; + public boolean setElementXToValueY(int index, int value) { + boolean bSetWorked = false; + if ((index >= 0) && (index < 1024)) { + eeprom[index][0] = value; + bSetWorked = true; } - - return setWorked; - } + return bSetWorked; + } /** - * Length of eeprom gets restricted. - * @param length is new length. + * + * @param iElement + * @param iIndex + * @return */ - public void setLengthEEPROM(int length) - { - eepromLength = length; - } + public boolean setElementXToIndexY(int iElement, int iIndex) { + boolean bSetWorked = false; + if ((iElement >= 0) && (iElement < 1024)) { + eeprom[iElement][1] = iIndex; + bSetWorked = true; + } + return bSetWorked; + } } diff --git a/src/Model/Microcontroller/PIC.java b/src/Model/Microcontroller/PIC.java index 4bdfc7e..483f8a6 100755 --- a/src/Model/Microcontroller/PIC.java +++ b/src/Model/Microcontroller/PIC.java @@ -479,21 +479,16 @@ public class PIC { public void CALL(int elevenK) { //Push next instruction on STACK. Stack.pushReturnAdressOnStack(Ram.get_Programcounter() + 1); - - //Get upper two bits of PCLATH and shift it by eight. - int shiftedPCLATH = (Ram.get_PCLATH() & 0b11000) << 8; - - //Create new address out of shifted PCLATH and elevenK. - int newPC = shiftedPCLATH | elevenK; //Set Programmcounter to new address. - Ram.set_Programcounter(newPC); - //Increment TMR0 if interbnal instruction cycle assigned to TMR0. + Ram.set_Programcounter(elevenK + ((Ram.get_PCLATH() & 0b11000) << 8)); + + //Increment TMR0 if internal instruction cycle assigned to TMR0. if (Ram.get_T0CS() == false) Ram.increment_TMR0(); //Each Instruction has to split Programmcounter to PC and PCLATH because Ram can't see RAM. - Ram.set_PCL(Ram.get_Programcounter() & 0b0000011111111); + Ram.set_PCL(Ram.get_Programcounter() & 0b11111111); Runtimer.incrementRuntime(); } @@ -727,10 +722,10 @@ public class PIC { * GOTO is a two cycle instruction. */ public void GOTO(int elevenK) { - //elevenK OR ((PCLATH AND 0b11000) << 8) - int result = elevenK | ((Ram.get_PCLATH() & 0b11000) << 8); - Ram.set_Programcounter(result); + //Set Programmcounter to new address. + Ram.set_Programcounter(elevenK + ((Ram.get_PCLATH() & 0b11000) << 8)); + //Increment TMR0 if internal instruction cycle assigned to TMR0. if (Ram.get_T0CS() == false) Ram.increment_TMR0(); @@ -1004,7 +999,7 @@ public class PIC { Ram.increment_TMR0(); //Each Instruction has to split Programmcounter to PC and PCLATH because Ram can't see RAM. - Ram.set_PCL(Ram.get_Programcounter() & 0b0000011111111); + Ram.set_PCL(Ram.get_Programcounter() & 0b11111111); Runtimer.incrementRuntime(); } @@ -1017,11 +1012,12 @@ public class PIC { public void NOP() { //Increment programcounter and TMR0 if assigned to TMR0. Ram.inkrement_Programcounter(1, 0); //Kind of call + if (Ram.get_T0CS() == false) Ram.increment_TMR0(); //Each Instruction has to split Programmcounter to PC and PCLATH because Ram can't see RAM. - Ram.set_PCL(Ram.get_Programcounter() & 0b0000011111111); + Ram.set_PCL(Ram.get_Programcounter() & 0b11111111); Runtimer.incrementRuntime(); } diff --git a/src/Model/Microcontroller/RAM.java b/src/Model/Microcontroller/RAM.java index b5dff93..6fc13e4 100755 --- a/src/Model/Microcontroller/RAM.java +++ b/src/Model/Microcontroller/RAM.java @@ -20,6 +20,8 @@ public class RAM { //Bank1 of the PIC-RAM private int[] bank1; + private int iProgramcounter = 0; + //Last programmcounter for function getLastLine in main. private int lastProgramcounter = -1; @@ -114,6 +116,7 @@ public class RAM { }break; case 2: { set_PCL(value); + set_Programcounter(value + (get_PCLATH() << 8)); }break; case 3: { set_STATUS(value); @@ -623,9 +626,8 @@ public class RAM { return (get_STATUS() & 0b10000000) == 128; } - //Bank0 PCL public synchronized int get_Programcounter() { - return (bank0[2]); + return iProgramcounter; } public synchronized int get_LastProgramcounter() { @@ -637,19 +639,10 @@ public class RAM { * @param value * @param kindOfCall 0 at normal instruction, 1 at Fetchzycle,... 2 at Jumpcommand, 3 at ... */ - public synchronized void inkrement_Programcounter(int value, int kindOfCall) { - if (bank0[2] >= 0 && bank0[2] <= 255) { - lastProgramcounter = bank0[2]; - bank0[2] += value; - } else { - if (kindOfCall == 0) { - //Nothing happens - } - - if (kindOfCall == 1) { - bank0[2] = 0; //Wrap-Around at fetchcycle - } - } + public synchronized void inkrement_Programcounter(int value, int kindOfCall) { + lastProgramcounter = get_Programcounter(); + iProgramcounter += value; + iProgramcounter &= 0x3FF; } /** @@ -657,12 +650,9 @@ public class RAM { * @param value to decrement PC by. */ public synchronized void dekrement_Programcounter(int value) { - if (bank0[2] > 0 && bank0[2] <= 255) { - lastProgramcounter = bank0[2]; - bank0[2] -= value; - } else { - throw new IndexOutOfBoundsException(); - } + lastProgramcounter = get_Programcounter(); + iProgramcounter -= value; + iProgramcounter &= 0x3FF; } /** @@ -670,18 +660,9 @@ public class RAM { * @param value to set PC to. * @returns true if set worked, else false if set didn't work. */ - public synchronized boolean set_Programcounter(int value) { - boolean setWorked = false; - - if (value >= 0 && value <= 255) { - lastProgramcounter = bank0[2]; - bank0[2] = value; - setWorked = true; - } else { - throw new IndexOutOfBoundsException(); - } - - return setWorked; + public synchronized void set_Programcounter(int value) { + lastProgramcounter = iProgramcounter; + iProgramcounter = value; } //Bank0 PORTA diff --git a/src/Model/MyModel.java b/src/Model/MyModel.java index 0ca3b1d..d155c80 100644 --- a/src/Model/MyModel.java +++ b/src/Model/MyModel.java @@ -39,7 +39,7 @@ public class MyModel extends Thread { } //Check if element at command-queue if (!qReceivedCommands.isEmpty()) { - /* -1 == ERROR, 0 == END, 1 == START, 2 == PAUSE, 3 == RESET*/ + /* -1 == ERROR, 0 == END, 1 == START, 2 == PAUSE, 3 == RESET 4 == STEP*/ iProgState = qReceivedCommands.poll(); switch (iProgState) { case (-1): { @@ -86,7 +86,9 @@ public class MyModel extends Thread { case (4): { if (abBreakpoints != null) { //Check if breakpoint is set - if (!abBreakpoints[oPIC.getRam().get_Programcounter()]) { + int iProgC = oPIC.getRam().get_Programcounter(); + iProgC &= abBreakpoints.length; + if (!abBreakpoints[iProgC]) { step(); qDataToView.add(oPIC); //TODO } diff --git a/src/View/MyViewData.java b/src/View/MyViewData.java deleted file mode 100644 index bbb0baa..0000000 --- a/src/View/MyViewData.java +++ /dev/null @@ -1,16 +0,0 @@ -package View; - -import Model.Microcontroller.PIC; - -public class MyViewData { - private PIC oPIC; - - public PIC getPIC() { - return oPIC; - } - - public void setPIC(PIC oPIC) { - this.oPIC = oPIC; - } - -}