diff --git a/src/libsrc/apple/dcgrlib.pla b/src/libsrc/apple/dcgrlib.pla
index d8c787f..16b5fcd 100644
--- a/src/libsrc/apple/dcgrlib.pla
+++ b/src/libsrc/apple/dcgrlib.pla
@@ -448,8 +448,6 @@ export asm dcgrHLinScr(x1, x2, y)#0
         INY
         STY     TMPH
         LDY     ESTKL-3,X   ; Y COORD
-        ;CPY     #192
-        ;BCS     +
 end
 asm     _dcgrHLinScrA
         LDA     $1000,Y     ; HGRSCANL
@@ -459,12 +457,12 @@ asm     _dcgrHLinScrA
         LDY     ESTKL-1,X   ; X1 COORD
 end
 asm     _dcgrHLinScrB
--       JSR     $1000       ; PLOT PIX W/ XCOORD IN Y REG
+XHS     JSR     $1000       ; PLOT PIX W/ XCOORD IN Y REG
         INC     ESTKL-1,X
         LDY     ESTKL-1,X   ; X1 COORD
         CPY     TMPH        ; X2 COORD
-        BNE     -
-+       RTS
+        BNE     XHS
+        RTS
 end
 export asm dcgrVLinScr(y1, y2, x)#0
         INX
@@ -477,7 +475,7 @@ export asm dcgrVLinScr(y1, y2, x)#0
         LDY     ESTKL-1,X   ; Y1 COORD
 end
 asm     _dcgrVLinScrA
--       LDA     $1000,Y     ; HGRSCANL
+YVS     LDA     $1000,Y     ; HGRSCANL
         STA     DSTL
         LDA     $2000,Y     ; HGRSCANH
         STA     DSTH
@@ -488,8 +486,8 @@ asm     _dcgrVLinScrB
         INC     ESTKL-1,X
         LDY     ESTKL-1,X   ; Y1 COORD
         CPY     TMPH        ; Y2 COORD
-        BNE     -
-+       RTS
+        BNE     YVS
+        RTS
 end
 export asm dcgrPixScr(x, y, w, h, pixptr)#0
         INX
@@ -515,7 +513,7 @@ YPIXS   LDY     ESTKL-2,X   ; Y COORD
         BEQ     RETPIXS
         INC     ESTKL-2,X   ; Y COORD++
         CPY     #192        ; OFF SCREEN?
-        BCS     -
+        BCS     YPIXS
 end
 asm     _dcgrPixScrA
         LDA     $1000,Y     ; HGRSCANL
@@ -739,17 +737,18 @@ export asm dcgrHLinMem(x1, x2, y, dstptr, dstspan)#0
         STA     DSTH
         DEY
         BNE     -
-+       INC     ESTKL-2,X   ; ADJUST BCS BELOW
-XHM     LDA     ESTKL-1,X   ; X1 COORD
-        CMP     ESTKL-2,X   ; X2 COORD
-        BNE     +
-        TAY
++       LDY     ESTKL-2,X   ; ADJUST BNE BELOW
+        INY
+        STY     TMPH
+        BNE     +           ; BRA
 end
 asm     _dcgrHLinMemB
-        JSR     $1000       ; PLOT PIX W/ XCOORD IN Y REG
+XHM     JSR     $1000       ; PLOT PIX W/ XCOORD IN Y REG
         INC     ESTKL-1,X   ; X1++
++       LDY     ESTKL-1,X   ; X1 COORD
+        CPY     TMPH        ; X2 COORD
         BNE     XHM          ; BRA
-+       RTS
+        RTS
 end
 export asm dcgrVLinMem(y1, y2, x, dstptr, dstspan)#0
         INX
@@ -773,15 +772,11 @@ export asm dcgrVLinMem(y1, y2, x, dstptr, dstspan)#0
         STA     DSTH
         DEY
         BNE     -
-+       INC     ESTKL-2,X   ; ADJUST BCS BELOW
-YVM     LDA     ESTKL-1,X   ; Y1 COORD
-        CMP     ESTKL-2,X   ; Y2 COORD
-        BEQ     +
-        LDY     ESTKL-3,X   ; X COORD
++       INC     ESTKL-2,X   ; ADJUST BNE BELOW
+YVM     LDY     ESTKL-3,X   ; X COORD
 end
 asm     _dcgrVLinMemB
         JSR     $1000       ; PLOT PIX W/ XCOORD IN Y REG
-        INC     ESTKL-1,X   ; Y1++
         CLC
         LDA     ESTKL-5,X   ; SPAN
         ADC     DSTL
@@ -789,7 +784,10 @@ asm     _dcgrVLinMemB
         LDA     ESTKH-5,X
         ADC     DSTH
         STA     DSTH
-        BNE     YVM         ; BRA
+        INC     ESTKL-1,X   ; Y1++
+        LDA     ESTKL-1,X   ; Y1 COORD
+        CMP     ESTKL-2,X   ; Y2 COORD
+        BNE     YVM
 +       RTS
 end
 export asm dcgrPixMem(x, y, w, h, pixptr, dstw, dsth, dstptr, dstspan)#0
@@ -825,11 +823,8 @@ export asm dcgrPixMem(x, y, w, h, pixptr, dstw, dsth, dstptr, dstspan)#0
         CLC
         ADC     ESTKL-4,X   ; HEIGHT
         STA     ESTKL-4,X   ; -> BOTTOM EDGE
-YPIXM   LDA     ESTKL-2,X   ; Y COORD
-        CMP     ESTKL-4,X   ; AT BOTTOM?
-        BEQ     RETPIXM
-        INC     ESTKL-2,X   ; Y COORD++
-        CMP     ESTKL-7,X   ; OUT OF DST BOUNDS?
+        LDA     ESTKL-2,X   ; Y COORD
+YPIXM   CMP     ESTKL-7,X   ; OUT OF DST BOUNDS?
         BCS     NXTPIXM
 end
 asm     _dcgrPixMemA
@@ -886,8 +881,11 @@ NXTPIXM CLC
         LDA     ESTKH-9,X
         ADC     DSTH
         STA     DSTH
-        BNE     YPIXM      ; NEXT ROW
-RETPIXM RTS
+        INC     ESTKL-2,X   ; Y COORD++
+        LDA     ESTKL-2,X   ; Y COORD
+        CMP     ESTKL-4,X   ; AT BOTTOM?
+        BNE     YPIXM       ; NEXT ROW
+        RTS
 end
 //
 // Screen -> Memory Block Transfer
diff --git a/src/samplesrc/dcgrtest.pla b/src/samplesrc/dcgrtest.pla
index a294841..c7a8e6b 100644
--- a/src/samplesrc/dcgrtest.pla
+++ b/src/samplesrc/dcgrtest.pla
@@ -53,7 +53,9 @@ def dcgrTest#0
     word i, j, k, ok7, om7, inci, incj, inck
     word backblk, backspan, backw7
     word restrblk, restrspan, restrw7, restrw
+    byte mode
 
+    mode = 1
     setlineplot(@dcgrPlotScr)
     setlinespans(@dcgrHLinScr, @dcgrVLinScr)
     for i = 0 to 191 step 2
@@ -80,14 +82,24 @@ def dcgrTest#0
     restrw = restrw7 * 7
     while ^$C000 < 128
         ok7, om7 = divmod(k, 7)
-        if om7 < 0; om7 = 6+om7; fin
         dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + ok7 * 4, backspan, restrw7, 16, restrblk, restrspan)
-        dcgrOpMem(OP_AND)
-        dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7mask[om7], sprite7span, restrw7, 16, restrblk, restrspan)
-        dcgrOpMem(OP_XOR)
-        dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7[om7], sprite7span, restrw7, 16, restrblk, restrspan)
-        dcgrOpMem(OP_SRC)
-        //dcgrPixMem(om7 + 2, 0, 16, 16, @sprite, restrw, 16, restrblk, restrspan)
+        if mode
+            if om7 < 0; om7 = 6+om7; fin
+            dcgrOpMem(OP_AND)
+            dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7mask[om7], sprite7span, restrw7, 16, restrblk, restrspan)
+            dcgrOpMem(OP_XOR)
+            dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7[om7], sprite7span, restrw7, 16, restrblk, restrspan)
+            dcgrOpMem(OP_SRC)
+            if k < 0
+                dcgrColor(DCLR_WHITE)
+                dcgrHLinMem(0, restrw - 1, 0, restrblk, restrspan)
+                dcgrHLinMem(0, restrw - 1, 15, restrblk, restrspan)
+                dcgrVLinMem(0, 15, 0, restrblk, restrspan)
+                dcgrVLinMem(0, 15, restrw - 1, restrblk, restrspan)
+            fin
+        else
+            dcgrPixMem(om7 + 2, 0, 16, 16, @sprite, restrw, 16, restrblk, restrspan)
+        fin
         dcgrMemBl7Scr(ok7, 170, restrw7, 16, restrblk, restrspan)
         if k < 0; getc; fin
         if k > 136 or k < -16; inck = -inck; fin
@@ -97,6 +109,7 @@ def dcgrTest#0
         i = i + inci
         if j > 145 or j < 32; incj = -incj; fin
         j = j + incj
+        mode = !mode
     loop
     ^$C010
     getc