From 84b5904f4446beedc5b931bb74adb0c153c0b09a Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 15 Nov 2023 19:14:18 +0100 Subject: [PATCH] A slightly faster SoilDown. --- Atari/gr_basics.asm | 3 +-- C64/gr_basics.asm | 3 +-- grafproc.asm | 6 +++--- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 32603 -> 32601 bytes scorchC64.prg | Bin 39793 -> 39761 bytes 6 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index 4aea4f4..c385235 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -202,7 +202,7 @@ ClearPlot ; checks state of the pixel (coordinates in xdraw and ydraw) ; xdraw (word) - X coordinate ; ydraw (word) - Y coordinate -; result is in A (zero or appropriate bit is set) +; result is in A (0 - point is set; appropriate bit is set - point is clear) INVERTED! ; let's calculate coordinates from xdraw and ydraw @@ -226,7 +226,6 @@ ClearPlot ldx xdraw ; optimization (256 bytes long bittable) lda (xbyte),y - eor #$ff and bittable1_long,x rts .endp diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 7ce418c..6f86e3c 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -159,7 +159,7 @@ ClearPlot ; checks state of the pixel (coordinates in xdraw and ydraw) ; xdraw (word) - X coordinate ; ydraw (word) - Y coordinate -; result is in A (zero or appropriate bit is set) +; result is in A (0 - point is set; appropriate bit is set - point is clear) INVERTED! ; let's calculate coordinates from xdraw and ydraw @@ -182,7 +182,6 @@ ClearPlot ldy #0 lda (xbyte),y - eor #$ff and bittable1_long,x rts .endp diff --git a/grafproc.asm b/grafproc.asm index 2c4f204..4a81f6c 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1074,7 +1074,7 @@ DoNotClearParachute sta temp ; Loop Counter ByteBelowTank jsr point_plot - beq EmptyPoint2 + bne EmptyPoint2 sec ror UnderTank2 sec @@ -1340,7 +1340,7 @@ NextColumn1 mwa #0 ydraw NextPoint1 jsr point_plot - bne FoundFirstPoint + beq FoundFirstPoint StillNothing inc ydraw lda ydraw @@ -1392,7 +1392,7 @@ FalloutOfLine ; and checking if there is a pixel there sta ydraw jsr point_plot - bne ThereIsPixelHere + beq ThereIsPixelHere ; if no pixel we plot it mva #1 color jsr plot.MakePlot diff --git a/scorch.bin b/scorch.bin index d8f9e5c85ed5fff3bec75fc4299e7d7417735356..2f77d21ed6af35c6a37826e414f22a43b1b35b8b 100644 GIT binary patch delta 2158 zcmZ8i4Ny~87Um}5$H0pL6+%_GXlg+bL8SzdBBFrdMdVMw08LkDMW-xnx7!_&B?8YP z7(fpp#3U80L7%%S_Ejx2rrQ0vkP=PeNyBcIVB!bMAM( zd+xpG-Sa)YUZmHHhT?)rq_8yj79r0-#4M5MnrH#UGe03E(8Z*Y-@sKSim>pASwtI} z*nOL60#K&c>)Zq0&o;m)Z_3Z<9!D|sBZ!wph9B$TUvlvX5}p0L=QX#OW*wm4fL3-r zbcgAbbSf^|HGAmkiQzUa9fj1{Eo4-1%z?ZTOapNYsdP$rF%Yr@N<1cD}E)f__H!ur)LA!mTRz8F4BRuB(d zO-}ZW(}+h%e?6WMCG1T3jyw`dRsR%0ep&=+65dIRBBTlSt&JzaAgo3a3vn|trYoB!PW_vU{zKW`>26D{{! zCR@^5BU-n%DfJPsWSuf^oZ~~?(|ja%oR@G$_uu#^_xF4#&D7IsJ$?VfZ0p;WQ)gw| zCwvHJRN1dg`g2!?M9!HyYU#>=?l^kFaW&l%YXFs@Td9`@1+aI904DhSF{W=-`X zE!Z39gONJUIZwE|ct7s0-Ru$5a+8jaLiqGvm3`afB5oU|*5XKE-&VVU+tw|5fFt;6 zrgFX)t3a#*u}XWT%g-&bSGc|&5@Y;yW&{}rXXauu1&=a!l5}a@=7iCAK@vka&E8Vc&!5 zti{9(ZCQ!L3By@&@^gFm5O)9{?iTUU-kId%aZSBX3eYX{Y zT1*;GSx0=5;haCRa^e3yvR%bhi&zJZdw4pE#m~w~v;aX`f z>hZj?6!J^Zl;uhv+o;G)*O_S(94U)kc(0Ee;o}Xv!+2t72;(mr_Jr{wLt_|SRKPxl zzm~<21rSiKCPh$Co-iM0YRs&q&znMH=KZj~-kRPxOdrGH@)h$WpZs5>(~6Pt@)b&q zO!s-`RR1`q)7meg9-G~QjbOK8f3OlEXA{aAtMX=|1q|ASuMEw4FygH9$k`~X%5K3#78F#g za|G{KRmJkasss2r=nXhjksLpI_}4DReqJtalV8_i>CR&5hD^D-6WlJfTFvbo_KQ5W zGqtwdQ^iVPy5gPHPptUe>hZVgk`4V(OXw4;v)=8|d4X97#P|R{V1}|_h60_H;n`lI z+~bI4r2iB1p*n=sGw@83vHy}$lzppFOyx(%gh!R(A;OE=Au*wF=G~qkInO<@|0^;S U^6DZ3mAvhUVmMXURc8$S51X2hSpWb4 delta 2243 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 delta 8934 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 iSS#z@