From f79da6ac0fe79cf94fbd8b9ea168e91ce44bc281 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 8 May 2023 22:24:20 +0200 Subject: [PATCH] First attempt - done! --- C64/gr_basics.asm | 32 +++++++++++--------------------- scorchC64.asm | 2 +- scorchC64.prg | Bin 39710 -> 39693 bytes 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index e9bbfb0..09a6fa1 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -16,8 +16,7 @@ unPlotAfterX lda oldplotH,x sta oldplot+1 - lda oldply,x - tay + ldy #0 lda oldora,x sta (oldplot),y @@ -31,30 +30,24 @@ CheckX jcs EndOfUnPlot MakeUnPlot ; let's count coordinates taken from xdraw and ydraw - ;xbyte = xbyte/8 - lda xdraw+1 - lsr lda xdraw - ror ;just one bit over 256. Max screenwidth = 512!!! - lsr - lsr -;--- - tay - ldx WhichUnPlot - tya - sta oldply,x - + and #%11111000 + ;sta xbyte + ;--- ldx ydraw - lda linetableL,x - sta xbyte - sta oldplot + clc + adc linetableL,x + sta xbyte + sta oldplot lda linetableH,x + adc xdraw+1 sta xbyte+1 - sta oldplot+1 + sta oldplot+1 lda xdraw and #$7 tax + ldy #0 lda color bne ClearUnPlot @@ -91,9 +84,6 @@ LetsCheckOverlapping lda oldplotH,x cmp oldplotH,y bne NotTheSamePlot - lda oldply,x - cmp oldply,y - bne NotTheSamePlot ; the pixel is in the same byte so let's take correct contents lda oldora,x sta oldora,y diff --git a/scorchC64.asm b/scorchC64.asm index 6e83f19..12f0d09 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -35,7 +35,7 @@ icl 'definitions.asm' ;--------------------------------------------------- -FirstZpageVariable = $30 ; $57 +FirstZpageVariable = $58 ; $57 .zpvar DliColorBack .byte = FirstZpageVariable .zpvar GradientNr .byte .zpvar GradientColors .word diff --git a/scorchC64.prg b/scorchC64.prg index 4ec4ea022c23e14095a155a4f0cb6bca38dc1e5e..d4cd94166ae242b2d3a6dc24aa147cdac72a1bbf 100644 GIT binary patch delta 13487 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 UARbTC(KMnPT<&?&MUSrg{{mmsCIA2c