From aa74cf133ba12967865b9348745a1f164ab31111 Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 28 May 2022 13:42:42 -0400 Subject: [PATCH] draw jmp(indirect) ellimination --- ai.asm | 4 ++-- grafproc.asm | 61 +++++++++++++++++++++++--------------------------- scorch.xex | Bin 37847 -> 37845 bytes variables.asm | 3 ++- weapons.asm | 6 ++--- 5 files changed, 35 insertions(+), 39 deletions(-) diff --git a/ai.asm b/ai.asm index 838f4b0..4486f9d 100644 --- a/ai.asm +++ b/ai.asm @@ -123,11 +123,11 @@ tankIsOnTheRight forceNow mwa #100 RandBoundaryLow mwa #800 RandBoundaryHigh - ldx TankNr + ldx TankNr ;this is possibly not necessary jsr RandomizeForce endo - ;ldx TankNr ;this is possibly not necessary + ldx TankNr ;this is possibly not necessary lda NewAngle sta PreviousAngle,x lda EnergyTableL,x diff --git a/grafproc.asm b/grafproc.asm index ded2450..50f841d 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -214,37 +214,20 @@ LineGoesLeft ; line goes left - we are reversing X sbw xtempDRAW temp xdraw ; XI PutPixelinDraw - jsr DrawJumpPad -; end of the special PLOT for DRAW - - ; XI=XI+1 - ; UNTIL XI=XK - inw XI - cpw XI XK - jne DrawLoop - -EndOfDraw - mwa xtempDRAW xdraw - mva ytempDRAW ydraw - rts -.endp - -;-------------JumpPad------------- -DrawJumpPad - jmp (DrawJumpAddr) -Drawplot - jmp plot -DrawLen - inw LineLength - rts -;-------------JumpPad------------- -DrawCheck .proc - lda tracerflag - ora SmokeTracerFlag + ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V) + bit drawFunction + bpl @+ + inw LineLength + bne ContinueDraw ; ==jmp +@ + bvc @+ +DrawCheck + lda tracerflag + ora SmokeTracerFlag yestrace - beq notrace - jsr plot + beq notrace + jsr plot notrace ;aftertrace lda HitFlag @@ -267,14 +250,26 @@ CheckCollisionDraw cmp (temp),y bcc StopHitChecking - mva #1 HitFlag mwa xdraw XHit mwa ydraw YHit - - + mva #1 HitFlag StopHitChecking + jmp ContinueDraw +@ + jsr plot + +ContinueDraw + ; XI=XI+1 + ; UNTIL XI=XK + inw XI + cpw XI XK + jne DrawLoop + +EndOfDraw + mwa xtempDRAW xdraw + mva ytempDRAW ydraw rts -.endp +.endp ;-------------------------------------------------- circle .proc ;fxxxing good circle drawing :) diff --git a/scorch.xex b/scorch.xex index e27f4974d0eca214ca9f6c5b934d34f5cb975940..da88c9205993eadd28ed48bf9e56380534448276 100644 GIT binary patch delta 12282 zcmbVS3w#ts(%(nkK(Z*pBCiDmj9^$1WI-N5kmnc>P!SJUHBllY_(I}&Ve%S`BolTs z-H}~cjgbi%%y1jTyUXV-pQjgOqsfgY-W?(wsEI^PTs=8J9{K(~y9os4{C>w{XS%zp zy1J^mx~h8qzRUFSE|dSsiAM7qPfctx4jr&sy_smIY`Y$|CC{t;zG|-WcB#QsW;BV3 zhitD&t8W`V^v}fR+n^XkJa^w|JN@XM38XO)MM5JQEoZ7Kq`%xbfN#`VxdnIF7R_g4 zLpd^IF0lquNiIixsU$F!mSWiL>-3yFK2keV6|LN9@L?v*0a8ne^003; z@nsO-I-;EPZ6%7?=OW5#-)5p1eMQ8!dY-QWv>QP%S6`BlZEMfA?UQmQkK$)Mt}j+7 zbygbmg=UbD@nECn^xG!CHPWF)VdYLWmsoS3AigJvQyov5%*15@#qmVB9xU2MJjxZ! zsV)uNN`#W#fz?DabGA8(QKU2=maDIm&^@626&1gxww?2LmY^}gYx{Rb?Q2AfsV>>>^AWj3*aiB! zvgBO?1Nk#izosFxZP(-apg}0HeYU){L@sHXK(rqi&?QO{RDMHMG`NNI#GRxvPBB;? z%ic*`W@~0bvGxOdhb&e6ZiNK@rq2O+wU)}IjAoQ#5K5K)Sidf*btDuWfc*M5TK>h| zI=gEHiqZDgeC~tU&`;S#4XAYan+(O zgJYc$G3>eMu?A{MW|WW@*h?}ELcSyL2htWL6o8>Z@jW6QBw^_(sbT}nKs>-^NFEmK z=RaLjpIroo!j|>7*`?_uu!2~#(wQ{{mVz2g3LvGh#IXf4fLxHA(roU&eq@RHVUENARbpZ&HPCV}r3XM}+?T7IlDY=!xsJRYN+!9>`i zAu;V0Or1ii43&PxU^Bd2X{ws1#MplIg>(M)`8)U3m*mvGBHerYO?^{{Ju#uC$^fXO zml=-azP;bt3B>tfGVqsDKe{XT`bRWKzgxZTOXHH^d3zjXrnXw&Vk`C_kpM^kH zwz!>vtweAKT#ya=1&N8*ED&|5w}EKU>JV>(6-4_?u?xkvV;i`@ykix_@{y9#)pWAu->NVFbd@0hSFnkk z{Dy5UX8l{rs|;JDz$S7uhlGZ^hJm*n1|hqBIfS_dcS2wy0X{k=N_(e`845q#U(GQk zCk2y2F*WrCMOv&{WYRuVdRJM?Ql!(be5a_Ey>@A0d~_hng=t4t6nTxmGCQ)9#|#996%e z;vxzwga6xoFY{VUl_W-b)+(JL5W6agt5L8heJ-Pbr8%)Ir%p~yrQ+jMokd0d398Pf z;*(UJL&c{kTljThtY6~4$9k|55Z*x1`80+7h#Y&pi@h#P9_BJF=w!2p2UQ=Z zVk%XipyDjbt4~sKHdUXZ;+*dFLlaB{eRN*Kx_K+Dc>~p61&OCATZa-6Jhm)E_Ewrh z&TAVfKQIdR&+5k2M?AzF%twU#Xpyq& zr$gq*&`(EV!y|H@_!lDQiyDyDyFDE^h~`H0AQzK_xEJBn^!3%Y&n(i5rI@`tc9 zO$iBMZUDD6*{Jn%1U`nR2SVT|X)^$aTgX|_ml^4UTRy7$ljrTWF2VK$1d+6h~aLKWP+kw6ocNhlr+TrJ3#9W}r<8(PngnR%91)v}lZk=y?i(9+9 z(ehdIA)+24b~87G3(J|gpBQWAZCPiDP%P&MjZjBkaH{_VH}GlY8YacKpOfNGN4kV~ zjR+0*M2Zeek*TqFL`Cy;h4t^z>e}7mvFVYqTknQ*2s?=`fU%dlx}eZCh%tLnJWY5g z{tV&XzFT*eHSENFHZfNy3Lm)wJ95t^ZWgxS%zYl97m43d zSrEUc@)q%5RDNFkf#Pt2@lIO@BudqGD&(mhRLEDqr9y!kqC%ni9TkdH{(CA2>c6P4 zMg4(diY_d6#9bZhDoFo%s-H#T*TL9-ekxnmQ(*peVmtXOw&$ZO(`{4kbOPK=+4-BF z)nTUirku?X@6h!OX_GhQfsC$At9j#Tx`{T7q&p(#_TiVx7 z-6F7%%eW5nrZL`zQtGrlzeGs{9p;lZ3Q%t5i$X=Ep^l2pQuCcwY5JT&e2;#iAe7P6 zOhP8tYKPcN+KfU$>FdlgQkiAUVwN$RS;ib1mYp`)R`sOXM1sZ;=Fs2?59G;t$N_2= z%lY~vbX_a@Tl2d&Rcd%NPmE$Dqj^R%27X$|6Y`b!gaSq|iWyZjGpZOE6?3lapkv2L zr9lD13YKA&X+|E_RFRP{RMausn@TNl>U}icDBgzv3E>ndHxs!c_#$>Q4Q>qemnm4R zI6&(t7O5Hh2#umy*tJo5;LgGKy&1B#0-zPt!oz*BGD|Ehw+S(cPLXxQD@JS9eJosK z(H^DT^t+X7!^)x*q6)7ovMi(cBP2bL|50~p#!!6eIRf*mJx9V~Db~I`Pyo;08M>k4 zM}mLqk3>92(#{bFq|knj=z?fNjNJSs&Y~+M8MEcHWLg5 zJGDN?iiic77uEwP;6wl%7;e)M8DRj~kFY@_CI)r|K>!Qv*hqXD+!MXB9}XWDfz6_s28=rp0pj>!Vb~nn#=sDR>el2`c;>Qznn1-~ zRP0TaNo+ypj@}gP)xy>>1-H9t$Jf!PGF2Ne99j5t8rQpidnd zR9&J>6pHm@A`W3n_v&njJ6K7ex+E>0y5hr&_5FdcR$olSlT4$pmgrOY_J+G1KyQom zA{N^F|C>hbMIn^)%fmbc&Du>mi@(4aPoR}AR)x>1N`r1U!Csp2VCijoaKAtg?iW%h zUYx5({qrcY`Eg9IH?yDRRJ@0Z_fj0g%<~HcLSZ6DQ|_XB7SXbAsO37x);2kuEAD27 z#+*8{a6AGDzZUtWRE23Srs`c(T*3_PZdw(Wy_C8JTh+xh3*?tmbqUSFB==DDZkmOu z?xiV(TGM%b3*mDNuExp4sXWlS+ zr3&E;v#K*`mV+YUfz-36=n2m(nl+W>JY41q2Zr0bhTFS_+x20FAFC=vyEzn%M`*NF zolLW;2@{ZmX6+(OMpM|oW%mf*(^Yug8&i1(dEX10kPYNo~BxyN?CEtxEc|gHbLd*Q2msdO<6_& z0+w4C(L6>ppAju!L{Pp|Pozu<$U3nh#sA(TR;I)1pQc>>y;V`rov#nmtM3}Nn|%BL3eo!pGxhj} zGu`+`GtKzM!m50B+GuIEVkk3R91&66n6To+aj+@}ZA%wNvH_^*MmB)w&2ZDeI4Ir_ z!AOo^q=YdJilZVJH&K<>QO2`9eMOa{sNi-O(@7PIn&m^i%`R@!J8V}f^ zd9LtRVIvRpp}E5;4`~Fhp}C`(Kmr43?pW#@K)D4EI52);I1?6zFLVuG(1(9&<$=M> z$|1(UaAxI@WMDL`8?p?HWzVscdkrK9Gb0Z}!N?gDKN=zngW)-rc{_Uo><-pw=GOfR z93hsv#x>@$xOV50+`g4yDwxVj&)wm!-VJnZBF31t3}E{eMyBT{kQ_7ksa6akgm+^U zF?@L?Z@^?9y8R>2j{|W)539HBd=hw&*}j$d*JCd9R~i^Gfn@}YoWPQT@;bLrP*i9e zyZ``KBA|X~r&Uo*4bdp2+ZkQ{s+$J{F#i>S>g83bpDBE!<_%MSouEdC6Rl|$MW|Ry zno_Ah)tVVsqn~oD*Ze^$b={1^u!)~dU8CBfnr2h~P#qOpL%cw+HN=Yqq7gd@WGWh{ zQ?K#ucK*~*^&$@<+pI6C_&$;Ivrba+1EPL_WCr2u`y@Eim7vVT5a@qE9CBVe0D}N* z2O!@_)J8q3LDKXA8+(s5y^rV@v{4YmM5uE! zH-doei&f%lsBC_>>TN?P+R89SzNW)YR69Xz+={xqop3W(2NShE&30n>7#0=oh|&7)v6Exx zq`*1Jvj5^ai9y9`*P;^*bYk1?!Z7RZts#|Ljknr!(!qnJ6G-iOsmf4anS(2z`pI$* zu6=a*cGO;w>UZaeGO4{N)&Dj}tRc0XQvJRh(L`zuq`p2!yoJ;nN&WsD(JVc&Y(~sE zDIp>Eob=|h5k|Z8k7bYYxM7L0o!G=Rud)4OP1m)@mriAr*k__LSxlS=dFXdBNW?y6 z`{O9BkxP&^?+&~#dGcnRJot8;_Cq8l#zmEQg5m~C{ERA8@GG-~I@|pj$|#{onJfs% z=nvDfPiWZ@8raWcjpHBWcb3%S!fOVv#nj`vYcua>y<6Os{gpU(QKe0Z$L~NT$z60% ziNfnJ#o{gsq~ukiVU>$A2MB&y$TSFbAc(1Lbs5!e)<3Abe>3Y3%;3QiSdrcHp>Fi7 z6?C|CV;7)~ial6fX^wG^E-$v6waV_ywHPkX%oFM=W9s~1;_d$0>2E%zT0iwD)#BB| zR6IhtUJt6Du$QgJ?fzc1hpFdP+Hn}ewVzN=kam0`y?W2kB!^QyLYt0Jzgav+)x%Qr zJyVRI;CHZe!@WcJ6A!_l^mOX}hoF9#Rbr?gO59WROiOqOmSX0FhqS+8-cXLOVh)n*jX`^16<2?*UpAsD>mp9ijes2gtM~ zfypq91xBb`>vPEbTvdpHkEfa9QSdbFtFu`)r9= zk6meiDNPfEJx8R{`^FoONPoOA?1^>O8GW$_bB6DC46RZ`_lM_XTe zeA6*$z>3MdZpOB+9>!g6h+UUUT z>Tw#3*U$Om6ik9xv)&0)h{H0%T>wI149#G?E1pNo(H4LCprefqTH-Nc&Ac>HU4jl@ z6sa_9WgA_cn3~LolIq#R_r4TfwKI^|-S|Pj&2(191>R-q{2&LLDE^z{RO?mej?Z(u zi!G<^@paPs_g~AOpedixn}P|h=(dE86UYbJcL%=8@O(~-E&o(Mr%hjFXd~298RF+u z{X%c`W34Z!+M>5&SgVCrn(IHOZa;3joRvnVpTrYAh=#g}eik9BBYsY!DvkA@OAoH> zmxz?lU5|vee9r|>;ILGSg&WeEw^47VUDhKzCn*Is%eDIsv^7hq#3dn+?r+{liM zE#*SF>=sXZM4osfV>sEX%wcr9SEAnN#ZuH{ zZ}(dCIWJ$3+D4m9gbz)G^H)Y=gA;v&D?=Dt1nayyjZktJit&DRD9kv8T#{dBmt=Zi zK>iSP59Um4C5a6BKhysu(pOSO1ss%Fk-TiIS9u@hTS=(k_l)(jd)1O|YPeiB`x5YF z1S^Ht(d3yY(K>iMPWu;*<|o*B4uRu1zcwN=9Ou`I*W!B-aR5O~U?nJ-|DpuDXXAka zXl8vqwba2sXJtnTiBOSlw;#YUnqRv0%@(Iow8&7yhd5jz*OY!PbY!j|U+h1<(+ zj#%fGmI8D>-%=vTaI1m&DnP1)YK9dBELo1Oj;@JT5T!gV?Q|~Yi`HA^+KfFyt*mDJR!{+#9Hm_= zzXVb5fbV=+kmOec!tGg)E(u)(U2b%hGf1OmvC2{ge4$J-yh0)O*YytB(;}hm#l2!7 zgE27}cgBnG59Jx#g?#ScfO!$_IZxi+QqBwc>Q==w>`np;=|`TuW{c;K>#hCzyMGP!}X*fU3h2% z%Ce|?qE6aq`2kk;G8JE8UZax2`>;FS*qRUUnacO|sNS~Y(A7>_)t6~*>~8?+sl|s= z9j{RJ73$ebI)GA1+2XkyF18 ztR)S3+CXHk4f)zNxETKfK{0&?V`e)QJ*dwdb>iy^d~{NR!fR_ub&38d3chJz8DR#| zSgdEzxap6xE!`))k=ZWhKHY##TvNXs`x%hk1!E+|kdJYov@U&Q%))1J2f0`x>0_-M zu~T0Z>R=@lnSY%>crX+Vz;C6$rw>nx46=SETq!nVDBr-!WCu_tvm%#eCWr>B5a`X{ z3AC3}C6oygAsB^P1cd33grI)B9 z41}49+(%xfj^#|kpXRMh{*yBq~gL2Vm1ptt}5`t`fFI=P_I;P$IN8XDnHy|f)>05UJpb`J$nyaet3 zF;#}U%6yc&>q#p>vbsRBxW3M^&!)4&=kh=G+Px4xh!5E0GJL>R6;*pb{pNle8VWWJuc2ChaB_I1g=&f5=5Qvf{iIV*y7bwj zH}Mtt0%5N3*usT1k%{$bBa_C}73niN>x%Tr;M{sF;3}wqKK z><*KQdpbght0yU=|K?F=@F$rt?h5! z2#fIKB5(Mv=ls&QYx^%{!s_BVv@UHU&CaE1&(Q46G;I^j=4o0E&Ca7~&(iFCn)Yj& zT|m>GquGTt?Kd>Lh&r+bnl0k7g=UxG@jT7mCOID)BCW}c#aFyk{WCsGRXVF;eFF7~ za4Pt+4MN#SrwbG{0=(wZ=^|c>yO-1|oJ2_ViBp~64Y51z310OUFYdlfc(=3ng~AIE z%vP)XLgu3GMH{NjbuWywdo58n;ZJ-L=1askh$6lr^s)8(a;3P(218vvjYcj&Vz*nj zm~J6VzM2qzZn0Q%G0k=%Jqt!wHg1B~V!mv7;dXe9(rb@hixVJ{Pt7fV#LfQ8ZqI&F zY-x2S>~3rfq(3u1@bEM9olibf{>-hLF8#%A-|Bhd4x%g(hp@aTClXY+|07-2@`UD923& zy9ccFCx%aw%xEBR-#rs)z0Rgh|LL?~Y5hE;z&i*&p2lT^FWQTc&)3)6Rjfc@U@NY3 zht9Dtik-G8&nTS&FIAV+P9Vj9E(y)9$Je|w0{h9~{lq`SQNN#D*iZ0XsqsI&TDV)x*JSd0~0eg`gt27KHb?>|*L+-rUI!%d9eag1MlW#U!- z$i!rVm~?)52r5!b>B-*S|9PkJub+JOmBnhi(e6l{uWRGmP4fdCo8~(&Y~pe?T7p=!gj;f8XEQ)+O##yDgNAAhByucaKt95!(rtKtad_4}pY ztsge1bJGE;bvTtc0Tm#&5F-{c%zw((xk(DGe<0@6q>XQ$n)JrqS=V33e;V6s;OLu| zY|JlzS+3pxmzIvC!DH`PwL#pW)c@n;_c6&cm!#)czV*@RYsTNXa#McYJBNOZA9?%T z8=vKiiD$>FyWagObozWBEG_N9wHsbgejohm?4Xfj#*Ux3;<3$D|NFPLA7e(|l(zBZ mKYnB$wRr6_)bqwWhl}7ryZ^lLRe>wooIu9Dkz2g7*Z%=G4f=)v delta 12177 zcmbVS4_s7L_MboePhl*z(NdnKC1!|;Hkl@*iP>Z+_RrL2RWwShbjxvDdjs-}ghw;H zdlja}CiEeXc>adm-|n*QZ2o?`7{dzt+OqxiE2%6NQx23FOyx$C znEW26N-L(18Qw&=-A^h85zo3iIpbsdrjnLmoJ6Om@pv1354k;uScBPQ%RR)GO@g

iF>#WFXtYP5}nIsMD`tbCI@P#+ncj{j#G?h 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