From 60117f47bd1a93ed87a7b2b7f2da240612d4b5f9 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 12 Jul 2017 15:26:19 -0700 Subject: [PATCH] write-combine without intermediate var --- src/libsrc/dgr.pla | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/libsrc/dgr.pla b/src/libsrc/dgr.pla index 198b58e..142be5a 100755 --- a/src/libsrc/dgr.pla +++ b/src/libsrc/dgr.pla @@ -206,9 +206,8 @@ export asm dgrBLT(buff, x, y, width, height, src) CLC ADC ESTKL+2,X ; WIDTH STA SRCL - LDA SRCH - ADC #$00 - STA SRCH + BCC +++ + INC SRCH BNE +++ + AND #$FE TAY @@ -268,12 +267,10 @@ asm _dgrSetPix end asm _dgrSetEvnEvn ; EVEN PIXEL - LDA $2000,X - AND #$0F - STA TMP JSR $0100 ; LDA AUX (DST),Y + EOR $2000,X AND #$F0 - ORA TMP + EOR $2000,X STA $C005 ; WRITE AUX MEM STA (GBASE),Y STA $C004 ; WRITE MAIN MEM @@ -281,12 +278,10 @@ asm _dgrSetEvnEvn end asm _dgrSetEvnOdd ; ODD PIXEL -+ LDA $1000,X - AND #$0F - STA TMP - LDA (GBASE),Y ++ LDA (GBASE),Y + EOR $1000,X AND #$F0 - ORA TMP + EOR $1000,X STA (GBASE),Y RTS ; ODD ROW @@ -296,12 +291,10 @@ asm _dgrSetEvnOdd end asm _dgrSetOddEvn ; EVEN PIXEL - LDA $2000,X - AND #$F0 - STA TMP JSR $0100 ; LDA AUX (DST),Y + EOR $2000,X AND #$0F - ORA TMP + EOR $2000,X STA $C005 ; WRITE AUX MEM STA (GBASE),Y STA $C004 ; WRITE MAIN MEM @@ -309,12 +302,10 @@ asm _dgrSetOddEvn end asm _dgrSetOddOdd ; ODD PIXEL -+++ LDA $1000,X - AND #$F0 - STA TMP - LDA (GBASE),Y ++++ LDA (GBASE),Y + EOR $1000,X AND #$0F - ORA TMP + EOR $1000,X STA (GBASE),Y RTS end @@ -358,9 +349,8 @@ export asm dgrTile(buff, x, y, src) LDA SRCL ; SKIP TO NEXT ROW ADC #$07 ; CARRY = 1 STA SRCL - LDA SRCH - ADC #$00 - STA SRCH + BCC +++ + INC SRCH BNE +++ + AND #$FE TAY