diff --git a/src/libsrc/apple/hgrlib.pla b/src/libsrc/apple/hgrlib.pla index 5ff84f7..d5411e5 100644 --- a/src/libsrc/apple/hgrlib.pla +++ b/src/libsrc/apple/hgrlib.pla @@ -112,17 +112,15 @@ byte = $88, $8F, $FF, $F8, $88 export asm divmod7(x)#2 !SOURCE "vmsrc/plvmzp.inc" + LDA ESTKL+0,X ; X COORDL LDY ESTKH+0,X ; X COORDH BPL + - LDA #$00 - SEC - SBC ESTKL+0,X - STA ESTKL+0,X - LDA #$00 - SBC ESTKH+0,X + TYA ; DEAL WITH NEG X COORD + EOR #$FF TAY -+ LDA ESTKL+0,X ; X COORDL - CPY #$01 + LDA ESTKL+0,X + EOR #$FF ++ CPY #$01 BEQ ++ ; MUST BE >= 140 BCC + LDY #40 ; > 512 SO CLIP AT MAX @@ -159,20 +157,21 @@ export asm divmod7(x)#2 ASL ESTKH+1,X ; CHECK SIGN OF XCOORD BCS + STA ESTKL+0,X ; REMAINDERL - LDA #$00 - STA ESTKH+0,X STY ESTKL+1,X ; QUOTIENTL - STA ESTKH+1,X + LDY #$00 + STY ESTKH+0,X + STY ESTKH+1,X RTS + EOR #$07 + SBC #$01 STA ESTKL+0,X ; REMAINDERL - LDA #$00 - STA ESTKH+0,X TYA EOR #$FF STA ESTKL+1,X ; QUOTIENTL - LDA #$FF - STA ESTKH+1,X + LDY #$00 + STY ESTKH+0,X + DEY + STY ESTKH+1,X RTS end asm clipsrc(ofst, y, w, h, srcptr)#0 diff --git a/src/samplesrc/hgrtest.pla b/src/samplesrc/hgrtest.pla index 9646a73..a2b802e 100644 --- a/src/samplesrc/hgrtest.pla +++ b/src/samplesrc/hgrtest.pla @@ -51,11 +51,11 @@ def testblt(sprtnum)#0 while ^$C000 < 128 for k = 0 to sprtnum i[k] = i[k] + ii[k] - if i[k] < 0 or i[k] > 279 + if i[k] < -5 or i[k] > 284 ii[k] = -ii[k] fin j[k] = j[k] + jj[k] - if j[k] < 0 or j[k] > 191 + if j[k] < -5 or j[k] > 196 jj[k] = -jj[k] fin spritePosIndex(i[k], j[k], k) diff --git a/src/toolsrc/ed.pla b/src/toolsrc/ed.pla index d4348a8..a0ae85a 100755 --- a/src/toolsrc/ed.pla +++ b/src/toolsrc/ed.pla @@ -1149,6 +1149,9 @@ def cutsel#0 next memcpy(@txtlinbuf=>[firstsel], @txtlinbuf=>[lastsel + 1], (numlines - lastsel + 1) * 2) numlines = numlines - numcliplines + for lastsel = numlines to numlines + numcliplines + txtlinbuf=>[lastsel] = @nullstr + next cursrow = firstsel if cursrow >= numlines cursrow = numlines - 1