diff --git a/src/libsrc/dgr.pla b/src/libsrc/dgr.pla index 142be5a..13f9281 100755 --- a/src/libsrc/dgr.pla +++ b/src/libsrc/dgr.pla @@ -206,8 +206,9 @@ export asm dgrBLT(buff, x, y, width, height, src) CLC ADC ESTKL+2,X ; WIDTH STA SRCL - BCC +++ - INC SRCH + LDA SRCH + ADC #$00 + STA SRCH BNE +++ + AND #$FE TAY @@ -267,10 +268,12 @@ 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 - EOR $2000,X + ORA TMP STA $C005 ; WRITE AUX MEM STA (GBASE),Y STA $C004 ; WRITE MAIN MEM @@ -278,10 +281,12 @@ asm _dgrSetEvnEvn end asm _dgrSetEvnOdd ; ODD PIXEL -+ LDA (GBASE),Y - EOR $1000,X ++ LDA $1000,X + AND #$0F + STA TMP + LDA (GBASE),Y AND #$F0 - EOR $1000,X + ORA TMP STA (GBASE),Y RTS ; ODD ROW @@ -291,10 +296,12 @@ 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 - EOR $2000,X + ORA TMP STA $C005 ; WRITE AUX MEM STA (GBASE),Y STA $C004 ; WRITE MAIN MEM @@ -302,10 +309,12 @@ asm _dgrSetOddEvn end asm _dgrSetOddOdd ; ODD PIXEL -+++ LDA (GBASE),Y - EOR $1000,X ++++ LDA $1000,X + AND #$F0 + STA TMP + LDA (GBASE),Y AND #$0F - EOR $1000,X + ORA TMP STA (GBASE),Y RTS end @@ -349,8 +358,9 @@ export asm dgrTile(buff, x, y, src) LDA SRCL ; SKIP TO NEXT ROW ADC #$07 ; CARRY = 1 STA SRCL - BCC +++ - INC SRCH + LDA SRCH + ADC #$00 + STA SRCH BNE +++ + AND #$FE TAY @@ -655,16 +665,16 @@ fin // // Assembly fixups // -_dgrPlotPix:1 = @_dgrSetPix -_dgrHLinPix:1 = @_dgrSetPix -_dgrVLinPix:1 = @_dgrSetPix -_dgrBLTPix:1 = @_dgrSetPix -_dgrTileTile:1 = @dgrTile -_dgrFillTile:1 = @dgrTile -_dgrSetEvnEvn:1 = @evnclr -_dgrSetEvnOdd:1 = @oddclr -_dgrSetOddEvn:1 = @evnclr -_dgrSetOddOdd:1 = @oddclr +*(@_dgrPlotPix):1 = @_dgrSetPix +*(@_dgrHLinPix):1 = @_dgrSetPix +*(@_dgrVLinPix):1 = @_dgrSetPix +*(@_dgrBLTPix):1 = @_dgrSetPix +*(@_dgrTileTile):1 = @dgrTile +*(@_dgrFillTile):1 = @dgrTile +*(@_dgrSetEvnEvn):1 = @evnclr +*(@_dgrSetEvnOdd):1 = @oddclr +*(@_dgrSetOddEvn):1 = @evnclr +*(@_dgrSetOddOdd):1 = @oddclr // Put read AUX mem routine in scary location memcpy($0100, @auxRead, 9) done