From 98752c0036985be0a06391cfc566dfe5d6a5af6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Henrik=20Sk=C3=A5rstedt?= Date: Sun, 29 Nov 2015 22:24:42 -0800 Subject: [PATCH] Disassembler label file additions - adding ranges to labels file - bug fixes --- bin/x65_win32.zip | Bin 96544 -> 96946 bytes bin/x65_x64.zip | Bin 120271 -> 120842 bytes disassembler/README.MD | 9 ++++- disassembler/x65dsasm.cpp | 67 +++++++++++++++++++++++++++++--------- 4 files changed, 60 insertions(+), 16 deletions(-) diff --git a/bin/x65_win32.zip b/bin/x65_win32.zip index 811b4621fb90c3e0356fbfed8a072e1a23593010..8092688c3ce7ae8904378648dffb78b81a19b3ae 100644 GIT binary patch delta 17948 zcmXuI18}BI(*_!Dw86%% zRM%9^zdPu_~74oPLzF5Mr!4i-gq=H)#5R{z!Qt6R+8dlM|DFpAj6;C`SY6E;!KjlB;Oo@Co-5pQD%WPA315p<8`~7 zWITE)@X%xzzI&Z zG}D{s81T%Q@o-oPea>Nhr!pw&9>19G{sq#i2W^c%AmlK=MKaDarGK(XJf)tzoA=J@ z>+YbXqZRojD}XQj{=QH*k^WV`8d&p>g?qgj9ns0lSp>=JB%od>xc(-$_J=Rzi$MJn zw^+6a8uusb-M5LaiTKaQU;~0B^&$CEs`h?AbKswL7+p+@@pA0&trp`@@z8LN<^|e9 zC*xD`*pSf;#o@174V}IHK?*41kVpcGMG;RSzzFI}1a0-BWHpdaMvn}>&Nj5r(F;ni zUtj_?Vq_FwDCr3niluIQRAyjC$umizKInc=yJ{rwQ}IH|6FP(NC)Ko(C#euy-~C=w z3Sj6q^aeLq;3Leeop?>Xa3|JKfmfCzF#p9Q$+*OF8sT_n(FhEOJFUp$3IlJEAq`P9|>~3jcH&Y;va9wRv zgD@#A7RCC+mhPH!XT z?SA^;!F-M>p83ocIqi(j!1ZuGkMX2+6nt%k_!OmmnDm4XTg;EwC5c>|95h8^zdUrE zT6qkN<9@4vnx-+I4{SE8aCZXy0lY%=jqqbv0D(YFY_Ir9J0}gL!?ujIsH!KSUK`W- zh%VeJQSCFbu@4PK#BcND1}%lRzqOJlU%gPqJFiTD<1Hp_j-Z_-^ZhXss=l(%0uOKM zlVXkBa$2C#nX>WGf1XJSBYH!hqVU4QGgy6fc&K(d?83+4zjDyOvryOrgk^E(nXFc` zA_@n7>C$K7sCJlesa({$f7E=jw&2O_HwSL;6UG@YErWDxA8zo&Oa;^jl>42f(pf$n ze?Ks=Fck)~Z}!o?Z*G zU`RYu(WB~L2U)mtHKI=@<7q9X;7!fwy)oQS*X8$KEEmeb*xL@)Az543#dGG3dH6!Q zJoU!kFjfkA>ZniM5dN25+rb{0i#FzCNK#(VAuLm9z0K$oqkV0A_nfz` z6oIQ*7Uyp6gJKFB&WySr5k(g>R!!&i0Z0QZLehv^*`+JTQ=)7?!`;reh1;EY&y6{F z(?7i}UuuTLdK7K|u^WE%baE(X-Asl0(PGcT#49_Uj1Jt-W|+=q>iVONN;SJ>E4QGv zUP>fR{TdcLo(##JZ}^%B9<9i?{<^d_vk}h_Cb-NAfm@>yu2Y*H9Z0du4qIq)-VR@- z-#}styb>@t%uAf^?!O9-Yk^PRTG=ZeWC~VhTaeq9`glakgN6n%P=VBBlT~o;0B90d( z-#RBl{VOVk&nbP;1r>h%koc0`6N>mwA7VxbI~~5BZYf8A2ombo3wGbP+}u`tbX-4l z$oJh~UK{3n56o)q&890XE;eDJdi-paL&H=R z(yWA9d}VI?20s1{?!73g9yrNv*gb00c|t)s0g6bmHvjVCrf#*Y64lvRSSoO34E780 z8nU_jKFyOv&2&9lHI^1f8)O^V&k#V;$*s7Q9YHE+EgyDEB2UissUw7TL$QNMML z0d^5U^8I2zX~QENqQGuD%-ccw4ZCvP*guHtplN$K@0;1z4Nc(2H|gZsm@jEtYth=q zV%InnJa|&VY*W{Q>^&7dGvHb=Vdnj30o<%OdS=-Cb?dT@BYkb=L+4+1Pj`M&FwvpR zU$#e}2wk9Qm+UOmF6=DP2C=T3mb;fqwHOAV-P_NCm6Wr+aMedW{q?XZ-Ncse1VQFY z8Iv_KU!~SHde=#64cC>7eo-rv%Qb_4*+jxDEh5>b^WZnSIdfru7}(4_d;Y|0`xQgR zukDy|B#6C6#ebg{oK*8Cg!+=U!DC9gJ?KQoO$Wg|ws9V1DDDr&HHDHNUbI}@C+7mt zCErKyL_SKh@%_5m*MJ`?6-Z2OWM!et#GDyxO4Qn7-)wjhZ9VPHXchP4gC4PLa8qiz z@-sP*k>Vs7w0zBRHp21#2H1(KqF8^``Od*ug6`&L&zA(_Wvi~L2dS}Q!-f5)1I4t6^_a|O^P za;4iy)Xx69=KmN-h2;oVEdF7&>IUhZbQJVJYH+Ik7i3taO}w@kwpb%jk%!Uj6}et8 znIm#CYG`yAw3Zel1+x_LSU5wyb!9q8#e&x%Sr8342#N2t{1%K=V8{L!`N|7yymJWQ zBS*?lZVzdneIVJ;yZW^s3DPYJ7>k0j9x=|0Gk^)og)>vgm2b4~=2=H7D9Zflw5MBM z&~kIWRL|Z_A-S|l{TSv@&2m~QGUh*md*Yqg=V&_Ac4VJukD! zjcPPu%@(HLE;RF>TQSXG55YjKE3`M;fo1QOfTvT<^Uv2JL;H9iwHmuylygB8TfAb#~)iIhij6r56Lgv#0mG*9OkQ^9nXNiMNu*(apT(#F9xM#qN( z!?dPV=CSV9wrnE})Yn&AEj@9a=&XK*clWb@!`}~hl`$bjze!q!#aC}@GUXF3f8d4N zv>!1wT(pd!iA?*jR~BGcV9Wmfg_hneo^!^TI#APnsEm-;R293);FX^sqr)c)pW5hw z7v&$A<>)TXwASH%PvfEq8j-Uo?_p200;D%l(G=!YdF50poq0Jbi)g;f8js-qp3qe) z-w2R)rAmC+5T7nv?+d$%kz`uwaF%P6v|~RV%MU+t%=65&Cd+9FXS25?f%e(Q-bp4 z7o;#BoSL>J();BDz6~-PP?^7hpd5<}Y$uTNPOMEHOfg^nXf;ADO@povR84=t88~>$ zF5M7i8GB6~J3S_1gC=`e*;N8TS&VC6eXM!}6z$X;pxpaGMe=Em)kncFXy2Bfvd1X_ zlatt+jt23Y2zH+H881mRFD^Pvgf-ErLiv(#k57g!#v@j?QLsp;;hPttlGIrz^`aki zA&&u_uJ$So=VrS|5|Jd|5Nc<%^?1i@I%*30yM{BAQI<95VTbh)R2iWVuB) z>V0_u2(a)?U-1(wm=32=_#mTFY@)YGDxKaFDjGwjP`TCb!Iob{tS(UUwoo%Upd}pE zc+pl`IsYVwA9aAyT&ZEm?18vODE^Fyt>AcTO6K_;JgB9;igfMhS@bZGrT+8s5~E;J zU}46svu%xWB>c=O^q+13qFz0ojnKT|x4Me}K&z_81k(*L>E(V9?w)*dm)cdqWL?vj zpB8^OsGXn^sl+@*sQGG{5)`3ih1@8vGE;Gk^&wEEsrm^D&LqVLrP7qHd@Wp&@`zvR zQ&Mrh4r>{cc0o6xo_^umf#k#s@x%w{b;-Qu71wMq)5`@ zr>JmkD)Xq#S7JKAByHGsrk<3YudPJ~XayA3@PyGGc>X#yHt85%l7C9MtZb$EXxUt+ zFbJ^O47%}ZSD%eO5w{g7oL(;+Sm3##fR2Ge-ai@J$_-?TtBNW?Jlzp4I#kZN&J^_) zHk}y)yC?nb3GwwiitXweb}0(&EP_cYm($Nwhu$2<+vhIIa612PIFMi5Nu8>OZ@M6ILtmvtvTXPYZvE2a+3&!v?aDtRa3qt%K8-+#nszeZS^7q@nOZ+0u# zUhDR6lqIg^`>~WQzofr7sUBtpN$b0%PVr5X_2sbga-e9S^77+f<1rAoNoDDr88%U;c%}C<&3A>Tv#2Z)YNc}5 zPk5?hH$(YHMvJUuI^A3U8xc7RwK40()`yq$gWeWuoV-UNWUCgXKz6@L0;Ja*2YTWK z7`C$ejS(_m-VxR>zPw!_cQMmYVKO(2fOWWzODq3v3K5Obkx(6no_`wfJKorYMv}jz z8=l9PSqpY${u}H3p(EaB0sr0x>=M{q1QBtDia%bXC%FEBw*R2*NMv`7K!JaTE+=kO zfuq%YZkc$5D`LiH0*3Hp2Z-1t)!VS1e3@m7 zP9qjS^@;1(!NkkHCLdj!e6bh!H!6}q8+E$+Ve#tQ&gv)LmUQ0mb#VoE#n|tgp{TH; z99ZR=Sy;mRe%prNOjsip)G{S)(nUk+3|l&yi9`wO2H!Zo0@h|kuZ=YH1Dfew8{rnZ zOF5GxbiL&6Qf4cI;R>^nE|v8gtT^)iP(o@lTYTHwzeE8)V|xj$$!CwofD%QL)%`nx zer#v-S0Rj!3&wyfH~5VzbtX(GE>`vCHjf$&=Fc|@b86?F8D0i+Kc0h z*<8)m8V~Cy6mWHV)jydF6V5Gg%v;=yjG$&O_JMcV@^j6XV_+S36TN5!^ZnAJalMQ? zLnKNpI@)fJrP`1Wfp*yqBrR4(z%S7=1Q&jkk7GV}q$rS^tAMZ>xu#4X(g^jF)w!>a zeC_66Bg`7&G;?3u{H&l(V-_-4$dXF>GIlqncI3BeJz&iT>|ezU##*R2><2R(pX4T{ zM{|>FYw4YK1M&^m;sm`i!ypTNF$aB9I>JOiOU9Jq4H$ze0=0>pZ!?do8SS*24YL`U zff+ez=GJzFd)@w;I>cC^+1*S;H+E@c%?qzUkc8{yH{Pc>#JkHg+yRx{5P#YJZ)_ylpw?kl0kJ5Mu01c=8|jw}x!{+0j3WMx^Xrl(uA<6*RO zkn~Los(?rs98n)j0Dc zO>vrd3_PV<=@>liz<##R)b=q@Z7ma$y6Mr=cr-PL!D@q+-<3?;QbPaFT!Z`PB=Y>g zT3~a2YcIVp&oxhIC$;Z*NTg|K^8Q&iCEzdD*qm^LK<)lOWm1sclA%BuCBNoM)aPaW z5bLIsfpcxaG!yh9B=AbhneD9ydAO`MGGrK?Cd*cDZmUshbXWGefmekixwZ4cyai_V zHygyKW~^?q<8e6py|Kew?Nh#d&C+a)GaB-*H`*}%g5C@4WGo7Y*BXse2a>UN4KQw? zxEH)2*?_biG3Ve6b0@^&8G%W3pZDyH%S+++Z|+{1J6;GwO#tap3+eDo_Zzho0dnH@1j~Ym(T9%3_BS&c_FO}q5(`5C;RPKK zzx#{&5p$Lgwq)AY)@vrgN_G6^_uGc7gBe$iiOmMJLdh*Nc`y9UYFaJ^ru!d7#zC(5 zC>N^;=xgXUEj{=0u}WK(xB!9*tRo}b-vZxBpJuk0n_ca#iv^GF%=LkNc#;%x9BSnK z0GMemN7V}DTpvgyv}G3|96e|vd5Td-NoQmwRWW)oaIjw|@dKdiqN?s}gyaho$#-|+*u>X%0}qIN1lA1xcnS&e@1s01w= zNhfxLqi|@|B~5yasv7e@a`g2Y&CR9VL4>`@o9)2h=n6U~u5DBGgGZAIVOf z+kdybzP>PTsEsolmAh%rcIb6B{0W9UYH+7IXksO3J#$O40H{SVsC{i+Lir5sr zCap3wGQk-id}5G7Nr=$mNa_2d|Bx!d^QPz4gtEOIg8 z-A@b`30gCHZ^oqEv+96x-6W<(~q^XrR|du_hj$?Y-t zm${-w;a^^M=zOqV+7RSwl#(X#9Stjmsn>2iS{v6{3Xs6IM{5- z-L1xp-{5Y;G2w=iMX(j_z?UWPnCQvJeQjU6OyKm}mbq5@6KOxJ#lV&no437I-rBfb zTkP^@OKc{?|HtCC9b-9m5*Qo=i)?Uh*>G|CyOa>XiF1dIx2JD@jJ7j#?PgtZ;FVd@ zFit&50SH&Ygldo%1EF5DIhV;puqBcOECN(x>Pa}%yo&ORDen>v6WDz$Gcwp~0{B@cqNX$o$~GU0+hu4;{lhjmo%xrUs$vw&r5U2GXlAze; z`#rkl{E9b7ZWcl!1Rb09T>@h$e$|7zI)X2X(sv8*_C+Xt@K=Ns$+CCB;Iu;^Y9Cz; zB{o+g(_eF_2%lMOy81S%3{%a>!Lsu!S zwcY76iagFK>X#Vsjbqadn`dEkHzD!!wzqrYptKpqs_jj`4YwYfR92g#n`$xiJ)wHL zy89FbN@ibpHS68zFN0S74KBqnm5qew4}hvuzz8=Rh!!M?Kad+}reK-15)W^i1Sl!L zPd*oFg&w`Xd>+my?elN(?>b=R8S*2VYM$GTv8bKa4Dw&lfNR#@LYrG!q7K7KJViGO zBeZxmMQpCYjH~IC2hY8*RJ;}5-s)NGtoEu9YcbpqHYF0y7!VS5`&bAb+RBzQ96EF$ zH9+bS-*q6zM624dRY{N)!VP-p1Iy0^*xJ2l)|^{4-ugrx6qUf_1=leD$5*@8nZ7~+ zk6@yX%J{U)5`w(`=#AJ-Ru_$+^Vx$GO$53EZ#vJ zRBm+1gbH4qMTu~98~RojzXf@IQ>r5JSDTW!8$Ud|TIPS2g>s!>~SHfZ{)dj0it z%DDnA?D>s3!M{1&0ONuc_*o|3Yuj_A?*RL+T?)8G^rPU%fgi7R`I7dxcKyrjb!oWG zEqg3*uh}(}^y%o-U;kNikGLYOi?=NpsM&THM(8u1V7aQAboyuZj+g7l?Ui3p#`mD` z3q-!D<#x+p7vme1_;X1XvL~TrMYBGA?lGh4BI~+*?of`l#mM^^6U z&$kyUo}OW_zlo(Am017s?3sJ)e~bUM{BE~Pwtdsb#n~--)rCxT_O+_UYQrc^@^e#o z`S+K;y`6Z;hfH#(!4UkP)8=yg4(PH+JciMO5SO*cMYY1mXWxMn*+bt92l4$`?!Z3} zUstAEof(-LV@zW%mcYw7JrwLH!CG-aO+T(x)~bc_?v!^ZJ#d zCO`D?0PUQ~{_J$R{2jAv=r}?(Zm=)L8iE*2h(G7^TVv@%3pSwUwVz|D)z+H1`9^$D z%o0)CP?k|{A$ZO?Jl*ck#{u;y>dxlyhqy-==IR;w)fdq_q{+lYMW4rehwA6Y&1sDK zFysgyl*@B(fB~?PNy_<7EdFgyCs=8G9;!92#EY~8`|CXmJYw;dHjsW9rLiHt4WK$q)yIOI_O)%wH0lwqo?pG{ za#Q2ff1VAj-*Hk*7S0csiX&*{KY3bl0d%aHIkkn(DZth|9Tx7b|MOm%_vY~=7p&+u zo`*{POl1_qY%$^h{WtgnYCI1jMxMdwIcx;Z!;k0&y5pbm0j`4^lx_K9f@EnYL1~OU zXoxouXl*^>T%#(JzCiqtHG<@b;6m5EPuQLM6mCO>0=Cs^!e?ruO@Mui*5tI=rOqYY za^*XdHK3b_zZ<(jboxxAVg3lCba<381bHRezr9nwnUb8tx^r% z07CFP-8(M##KpPy?Q{D2!c1d=wk-B=XefBo1i1+I61C|m=aQjBa2u5PNKi~l(eDwb z(3)R%#%Y@5-(d)^WCFO|$u{9I(yt%b$=vJ*ka_hfI|6j?NE_%2mTQl+jmE}BSKQ39 zkMRdgP|HzTqhjNuP=kz}qY)T~s<+8G0e9k|XMOUb?&YJkzuSbE8SJ{*nU-Hxw*A3= z`BVOVzh=L?D!^gsU)yS#xh0It1v*Q@T z2;TIDSl^4`ay_Iib%7s*Quus-N|bv#IljpMDEnCgNffQ?zj3}8gH%~l&GK)505Fkx zW^h3=(^2pmQVe~qC#WCsmgs_eC;P<}Q0*%MT03^G^JJ`?32wH1m^zMfGA2n$kli&f z+o7tT#l;j*qx#&xb&Kq1iY@sFCoX zNvemvl%b^fyc}isDrb{J+1`h*14KU5Z!|cBk1s{Y?B(lmnJ{rv8ia#wco&<9vyRuV z-{HSx6^q)ota|@?jiiFW(G;zatnOg}+pu}LJpIGe`mgMc-(CP&138T42Ul2THthN~ z#is|mVO!BY%pYEQgm9K1w4{QfAjTf;hhdV;FIyOevB-I{u(d8zK5`9&H-L@YvBEiY zaOFmU$D(s+EA5|t1GV*|i8Q(YhtkL0^-vjS+`NGTO9-q?ZA4k(!h4zW!i&mU&)lFfA|(EkUy9xUL=6Th%~m(2P{x6U~Pvszpd85yY&w;9sXNUjD`6^#-?_^makQOro?hR z?t^Ndg@G9i@`6IM>V?3a@-(0%FiWz|`1G}ix~>_ZWC78HEYsrE3GtBnl8og=Uyy7< zr4i1?_F)!~b&|xNi@_(PNP3dCkCNjdLVq()oci$#+8Tf5Y?O*p6yR0;ov??Q7ICC) zJOgVfh$SH(t)*#i;#QANRB8^yIrig)E3VDME)WyltOU@RG4WROEf#3-dwe@y5sDlhoow za6c?x3e4$6*B1si4nW&CQ7BDUMCuWY7OB=>L%i{Pc%*<>&5;T-fr~ePdDyh*=~K!o z07$@}7P@VYr`zQHUe%C3u}Bv*v(zz&WetWY7Wjc-#hoJQo(|-+`E@R}E>XgNIR(}{ zUuaB?B9gEd9ZIiIVjZHgg&}1yDLZujOr5Bvt-Zr(zYlNXI?P{hs-uSq**dpz0R4LJG!B}t)IQ`Mnc89q%VXMc}9Elz~}F0?=P z*h(44|K+$T@<8|CEya^1R;DA^OLHbjNib{dYpgw=8 ziu?pQS6MFN6@d6*V2BjXG5EWFPi3NyIsT^%gjZKqh-g>&F^*V`vg=8*1=3OnnZF`O z+2_g^QYVaJbQ|xFbWc=UhXShsLWnE^|DS%Wv}*ZcB!SjyC3B0E=nmpz%cg6@^B7*) zyO?l`OVHK8!QmB?k#cc%;q|TFgYP5FTbEk#^(xhEC*X4LahzHzh2iPw3S<9^yEhVV z&BJj#gSzW&6^d6V&A_AeT2?iJ3Bd#D{gR2dgx@7l|0gAS-gF>HKW{2koR5Rbr9Ye8 z-C2als)lFn0w0Mr@}4Lfc2XE7yApCbs`_19NrWpqpTGli^0@5qfW}^!|7fYJq6ZH2$ldR~bHx43O$_QI&?SnRU z-qYqQ#|doHM2DD&)sr2-ix#WnDM5*Ls9LchDe>P*_J7(PS@6N1JpOPShv4~(8lnV+ z2DviCh{7mPK3&lNQa3EUYJU5aaCBv8PU9-^2Jq(O%BRS#dx-c}($si~;(kW{I4d13 z%zom@uW}PgT^xOb>hh6ktP5VcSJ8xDP(ACb9&&8Hw(5gh?$Dz3{nH6_rvwe8yK!9! z^E%Y0gOGMELgr)no@NLpfW4*RgV2=S&A{%#%>9p|>Md5<@)Grg})`3<_A?WP+C0lc6M$iFCXBkZv5Oa}7stuai-sxjfKK+#ZT>n0P;9jz zO?%;)S%Sd@`(~FhSxl{Qb?IrdbhjTj?fLewg_?$LE>d?KFJwx6yvmZcS-WN!Vhy5) z)ammKD!QLyi ztBj`-YR}(&jh_b)t11z%*kg^^TVUSFRbqIq6a_tnrch9eGIPljoP%8GC1RSPn7Ma- zU3-NPiVJ6AHJ%F-s9|H5Q-h+c9Lr{rqilNWc;2y0DhN_SIUAX=-J0Jk2--%AV``ev zGf`o;Yos=n|52*=ylUG5gzYyOM`me#cKJ_)n3B(}+ysl*9es)6=$l&Xp75gB{g;6X z<_2E&e)%rvRVW@u+H_RjM5B7^XY%oIwrj9#0WtD}k0#$WD-O*;(6c;B;h^`ck^gywQUHWrDKnh)GL zuE{io}gATM@Qrr&LO2(jC-o1`HAB+CRT&r>S+WMBuDEL z;78=l`a^%pwI7$iFZ9cri8R3o8k1pC&i3vb^c!V&NKW5_0R8|2FwhyuUc5{z7d98{ z-Jf=cQxV1o!VjXzi9`ZyKA<#W=cX6h1VOQd9>Ed61k4VC&0n=gn0nbIVnf6<70wa7 z4*nl=$FIctW@{(b16(2S7)bMg@*dkAj2SQ==(PYBLzEhLS8o6F5@#4gF@4xO0wE)6 zQ<@vF*K?9$05aNQSvTo4*2A9o#|vY=oxezv{!`DdaI;YeseJMYf2aybT7Oz%um-Sv z@7_)@zfkjgBW}ejgMbY-r}gwmid(;Ua;JOp+JV-=*2)P>MpaJql#z^Po?I?F>w}lK z4+v*J7X8qaYJ!RrpNa;1vXqYug{zW0G;H(^rJdft}#eEpdiu3o-OS_sh zFO)34B` zNOzt{4K|^cSIurR1n+6Dho;R=zEjeOps5VGTc9?#kH2^bZnMobvcp!YqtIltglPfcj8?qvl;(S2S~2m+s()zOA|x@G54hwv;#aJ2 zSfG{g(LnizTc^W*+B`mBWl=01xuQ5B^2DNKNTr&j3G;2Y6a| z_v{;})DHxQ{LZw?LK`N@^*nns^u!>W;_POkHa&tpl=R@+>or3itdDY*d(=Y5v)aV5!>c}jAd`<7x( zBidwk4JU`mpP+)vx48NqvYvHnVa!6mwPd{ zCQX6E4VB9ap-X_(>8rqpd8%S@)whU-JN(y$;J(T4DY~>G?|b%R9?c*_KWmh1NB-BU zNi6yXmZ(0L8iAv#`@fe|3WQO5+p8oRD4xY7uGVG5Rwi<=1J2UN%Wmx5PM3X|uuoI3 zk)wSF$MLC+S{D!ZbZe2-E!5VIkia=>%v6ZL&e_BCxZCvvi^}<7!gJo;RV^X%x47+S zr{jOo)2f!O{qyx2kL}0Px)4A3_na^6o?k5TKj3N-`9lb3G3id6B`

HY_}`0I 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 y0S?@vKmj%@mU#gh1}=F40000mLg7jP delta 17564 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 diff --git a/bin/x65_x64.zip b/bin/x65_x64.zip index 68397af4586ffbf0b16d196f999d4e2c50df9041..b5098b1a70da31f33cf2688843cd6b57ee84cb07 100644 GIT binary patch delta 19527 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 M6%-Cl$d$ss0dx6x00000 diff --git a/disassembler/README.MD b/disassembler/README.MD index e357950..56d378d 100644 --- a/disassembler/README.MD +++ b/disassembler/README.MD @@ -30,13 +30,20 @@ Labels is a text file with one label declaration per line followed by the addres type of block to represent (code or data or pointers) followed by an optional comment. The labels file makes the most sense together with the *src* command line argument. +Addresses can define a range using a '-' after the address followed by an ending address. +No automatic labels will be inserted within this range. + +A special data format is pointers indicating a function pointer table, the label should be +defined with a range to limit the size. Each pointer within the pointer table will be +assigned a code label. + Example labels file: ``` Init = $1000 code Entry point into code SinTable = $1400 data 256 byte sinus table Interrupt = $10f3 code Interrupt code -Callbacks = $1123 pointers Array of function pointers +Callbacks = $1123-$112b pointers Array of function pointers VIC_Sprite0_x = $d000 set sprite 0 x position VIC_Sprite0_y = $d001 set sprite 0 y position VIC_Sprite1_x = $d002 set sprite 1 x position diff --git a/disassembler/x65dsasm.cpp b/disassembler/x65dsasm.cpp index c44cd2f..0ac87e0 100644 --- a/disassembler/x65dsasm.cpp +++ b/disassembler/x65dsasm.cpp @@ -961,14 +961,15 @@ struct RefLink { }; struct RefAddr { - int address:29; // address + int address; // address int data:3; // 1 if data, 0 if code, 2 if pointers + int size:29; // user specified size strref label; // user defined label strref comment; std::vector *pRefs; // what is referencing this address - RefAddr() : address(-1), data(0), pRefs(nullptr) {} - RefAddr(int addr) : address(addr), data(0), pRefs(nullptr) {} + RefAddr() : address(-1), data(0), size(0), pRefs(nullptr) {} + RefAddr(int addr) : address(addr), data(0), size(0), pRefs(nullptr) {} }; std::vector refs; @@ -996,21 +997,29 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i int start_addr = addr; int end_addr = addr + (int)bytes; - strref lab_parse = labels; while (strref lab_line = labels.line()) { strref name = lab_line.split_token_trim('='); if (lab_line.get_first()=='$') ++lab_line; unsigned int address = lab_line.ahextoui_skip(); + int size = 0; lab_line.skip_whitespace(); - if (lab_line.get_first()==',') { + if (lab_line.get_first()=='-') { ++lab_line; - lab_line.skip_whitespace(); + if (lab_line.get_first()=='$') + ++lab_line; + size = lab_line.ahextoui_skip() - address; + if (size<0) + size = 0; } + if (lab_line.get_first()==',') + ++lab_line; + lab_line.skip_whitespace(); refs.push_back(RefAddr(address)); RefAddr &r = refs[refs.size()-1]; r.pRefs = new std::vector(); + r.size = size; if (kw_data.is_prefix_word(lab_line)) { r.data = 1; lab_line += kw_data.get_len(); @@ -1038,6 +1047,29 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i if (refs.size()) qsort(&refs[0], refs.size(), sizeof(RefAddr), _sortRefs); + int last_user = (int)refs.size(); + for (int i = 0; i(); + refs[nr].data = 0; + refs[nr].pRefs->push_back(ref); + } else { + refs[n].pRefs->push_back(ref); + } + p += 2; + } + } + } + unsigned char *mem_orig = mem; size_t bytes_orig = bytes; int addr_orig = addr; @@ -1097,7 +1129,7 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i if (reference >= start_addr && reference <= end_addr && type != RT_NONE) { bool found = false; for (std::vector::iterator i = refs.begin(); i != refs.end(); ++i) { - if (i->address == reference) { + if (i->address == reference || (reference>i->address && (reference-i->size)address)) { struct RefLink ref = { curr, type }; i->pRefs->push_back(ref); found = true; @@ -1170,15 +1202,17 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i bytes -= arg_size; mem += arg_size; } - if (separator && curr_label>0 && curr!=refs[curr_label].address && !cutoff) { + if (separator && curr_label>0 && refs[curr_label-1].data!=2 && curr!=refs[curr_label].address && !cutoff) { int end_addr = curr_label<(int)refs.size() ? refs[curr_label].address : (int)(addr_orig + bytes_orig); for (std::vector::iterator k = refs.begin(); k!= refs.end(); ++k) { std::vector &l = *k->pRefs; std::vector::iterator r = l.begin(); while (r!=l.end()) { - if (r->instr_addr>=curr && r->instr_addrinstr_addr>=curr && r->instr_addraddress>0x43c5 && k->address<0x4600) + printf("erasing for address $%04x\n", k->address); r = l.erase(r); - else + } else ++r; } } @@ -1192,7 +1226,7 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i std::vector &pRefs = *refs[curr_label].pRefs; if (curr_label < (int)refs.size()) { if (refs[curr_label].label) { - was_data = !!refs[curr_label].data; + was_data = refs[curr_label].data==1; } else { bool prev_data = was_data; was_data = separator && !(!was_data && ((op==0x4c || op==0x6c) && (prev_op==0x4c || prev_op==0x6c))); @@ -1228,9 +1262,9 @@ void GetReferences(unsigned char *mem, size_t bytes, bool acc_16, bool ind_16, i std::vector &pRefs = *refs[k].pRefs; std::vector::iterator r = pRefs.begin(); while (r != pRefs.end()) { - if (r->instr_addr>=start && r->instr_addrinstr_addr>=start && r->instr_addr &pRefs = *refs[k].pRefs; std::vector::iterator r = pRefs.begin(); while (r != pRefs.end()) { - if (r->instr_addr>=start_addr && r->instr_addrinstr_addr>=start_addr && r->instr_addr=2 && bytes>=2) { + int blk = refs[curr_label_index-1].size ? refs[curr_label_index-1].size : left; + while (left>=2 && bytes>=2 && blk) { out.clear(); out.copy(" dc.w "); int a = mem[0] + (((unsigned short)mem[1])<<8); @@ -1414,6 +1450,7 @@ void Disassemble(strref filename, unsigned char *mem, size_t bytes, bool acc_16, addr += 2; bytes -= 2; left -= 2; + blk -= 2; } } for (int i = 0; i