mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 02:30:44 +00:00
Oliver Schmidt fixed errors in the LINE and SETPIXELCLIP routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3812 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
fbbab1655f
commit
263b7863a3
@ -141,6 +141,7 @@ NY: .res 2
|
|||||||
Y3:
|
Y3:
|
||||||
DX: .res 1
|
DX: .res 1
|
||||||
DY: .res 1
|
DY: .res 1
|
||||||
|
AX: .res 1
|
||||||
AY: .res 1
|
AY: .res 1
|
||||||
|
|
||||||
; Text output stuff
|
; Text output stuff
|
||||||
@ -508,25 +509,25 @@ SETPIXELCLIP:
|
|||||||
bmi @finito ; y<0
|
bmi @finito ; y<0
|
||||||
lda X1+1
|
lda X1+1
|
||||||
bmi @finito ; x<0
|
bmi @finito ; x<0
|
||||||
lda xres
|
|
||||||
ldx xres+1
|
|
||||||
sta ADDR
|
|
||||||
stx ADDR+1
|
|
||||||
ldx #ADDR
|
|
||||||
lda X1
|
lda X1
|
||||||
ldy X1+1
|
ldx X1+1
|
||||||
jsr icmp ; if (xres<x1)
|
|
||||||
bcs @cont ; !(xres<x1)
|
|
||||||
@finito:rts
|
|
||||||
@cont: lda yres
|
|
||||||
ldx yres+1
|
|
||||||
sta ADDR
|
sta ADDR
|
||||||
stx ADDR+1
|
stx ADDR+1
|
||||||
ldx #ADDR
|
ldx #ADDR
|
||||||
|
lda xres
|
||||||
|
ldy xres+1
|
||||||
|
jsr icmp ; ( x < xres ) ...
|
||||||
|
bcs @finito
|
||||||
lda Y1
|
lda Y1
|
||||||
ldy Y1+1
|
ldx Y1+1
|
||||||
jsr icmp ; if (yres<y1)
|
sta ADDR
|
||||||
bcc @finito
|
stx ADDR+1
|
||||||
|
ldx #ADDR
|
||||||
|
lda yres
|
||||||
|
ldy yres+1
|
||||||
|
jsr icmp ; ... && ( y < yres )
|
||||||
|
bcc SETPIXEL
|
||||||
|
@finito:rts
|
||||||
|
|
||||||
SETPIXEL:
|
SETPIXEL:
|
||||||
jsr CALC ; Calculate coordinates
|
jsr CALC ; Calculate coordinates
|
||||||
@ -634,10 +635,11 @@ LINE:
|
|||||||
; dy = -1;
|
; dy = -1;
|
||||||
@L024A: lda #$ff
|
@L024A: lda #$ff
|
||||||
@L024B: sta DY
|
@L024B: sta DY
|
||||||
; err = ay = 0;
|
; err = ax = ay = 0;
|
||||||
lda #0
|
lda #0
|
||||||
sta ERR
|
sta ERR
|
||||||
sta ERR+1
|
sta ERR+1
|
||||||
|
sta AX
|
||||||
sta AY
|
sta AY
|
||||||
|
|
||||||
; if (nx<ny) {
|
; if (nx<ny) {
|
||||||
@ -655,8 +657,11 @@ LINE:
|
|||||||
ldx NY+1
|
ldx NY+1
|
||||||
sta NY+1
|
sta NY+1
|
||||||
stx NX+1
|
stx NX+1
|
||||||
; ay = dx
|
; ax = dx
|
||||||
lda DX
|
lda DX
|
||||||
|
sta AX
|
||||||
|
; ay = dy
|
||||||
|
lda DY
|
||||||
sta AY
|
sta AY
|
||||||
; dx = dy = 0;
|
; dx = dy = 0;
|
||||||
lda #0
|
lda #0
|
||||||
@ -734,10 +739,10 @@ LINE:
|
|||||||
lda PB
|
lda PB
|
||||||
ldx PB+1
|
ldx PB+1
|
||||||
jmp @L0312
|
jmp @L0312
|
||||||
; } else { x1 = x1 + ay
|
; } else { x1 = x1 + ax
|
||||||
@L027F:
|
@L027F:
|
||||||
ldx #0
|
ldx #0
|
||||||
lda AY
|
lda AX
|
||||||
bpl @L0288
|
bpl @L0288
|
||||||
dex
|
dex
|
||||||
@L0288: clc
|
@L0288: clc
|
||||||
|
@ -140,6 +140,7 @@ NY: .res 2
|
|||||||
Y3:
|
Y3:
|
||||||
DX: .res 1
|
DX: .res 1
|
||||||
DY: .res 1
|
DY: .res 1
|
||||||
|
AX: .res 1
|
||||||
AY: .res 1
|
AY: .res 1
|
||||||
|
|
||||||
; Text output stuff
|
; Text output stuff
|
||||||
@ -506,25 +507,25 @@ SETPIXELCLIP:
|
|||||||
bmi @finito ; y<0
|
bmi @finito ; y<0
|
||||||
lda X1+1
|
lda X1+1
|
||||||
bmi @finito ; x<0
|
bmi @finito ; x<0
|
||||||
lda xres
|
|
||||||
ldx xres+1
|
|
||||||
sta ADDR
|
|
||||||
stx ADDR+1
|
|
||||||
ldx #ADDR
|
|
||||||
lda X1
|
lda X1
|
||||||
ldy X1+1
|
ldx X1+1
|
||||||
jsr icmp ; if (xres<x1)
|
|
||||||
bcs @cont ; !(xres<x1)
|
|
||||||
@finito:rts
|
|
||||||
@cont: lda yres
|
|
||||||
ldx yres+1
|
|
||||||
sta ADDR
|
sta ADDR
|
||||||
stx ADDR+1
|
stx ADDR+1
|
||||||
ldx #ADDR
|
ldx #ADDR
|
||||||
|
lda xres
|
||||||
|
ldy xres+1
|
||||||
|
jsr icmp ; ( x < xres ) ...
|
||||||
|
bcs @finito
|
||||||
lda Y1
|
lda Y1
|
||||||
ldy Y1+1
|
ldx Y1+1
|
||||||
jsr icmp ; if (yres<y1)
|
sta ADDR
|
||||||
bcc @finito
|
stx ADDR+1
|
||||||
|
ldx #ADDR
|
||||||
|
lda yres
|
||||||
|
ldy yres+1
|
||||||
|
jsr icmp ; ... && ( y < yres )
|
||||||
|
bcc SETPIXEL
|
||||||
|
@finito:rts
|
||||||
|
|
||||||
SETPIXEL:
|
SETPIXEL:
|
||||||
jsr CALC ; Calculate coordinates
|
jsr CALC ; Calculate coordinates
|
||||||
@ -632,10 +633,11 @@ LINE:
|
|||||||
; dy = -1;
|
; dy = -1;
|
||||||
@L024A: lda #$ff
|
@L024A: lda #$ff
|
||||||
@L024B: sta DY
|
@L024B: sta DY
|
||||||
; err = ay = 0;
|
; err = ax = ay = 0;
|
||||||
lda #0
|
lda #0
|
||||||
sta ERR
|
sta ERR
|
||||||
sta ERR+1
|
sta ERR+1
|
||||||
|
sta AX
|
||||||
sta AY
|
sta AY
|
||||||
|
|
||||||
; if (nx<ny) {
|
; if (nx<ny) {
|
||||||
@ -653,8 +655,11 @@ LINE:
|
|||||||
ldx NY+1
|
ldx NY+1
|
||||||
sta NY+1
|
sta NY+1
|
||||||
stx NX+1
|
stx NX+1
|
||||||
; ay = dx
|
; ax = dx
|
||||||
lda DX
|
lda DX
|
||||||
|
sta AX
|
||||||
|
; ay = dy
|
||||||
|
lda DY
|
||||||
sta AY
|
sta AY
|
||||||
; dx = dy = 0;
|
; dx = dy = 0;
|
||||||
lda #0
|
lda #0
|
||||||
@ -732,10 +737,10 @@ LINE:
|
|||||||
lda PB
|
lda PB
|
||||||
ldx PB+1
|
ldx PB+1
|
||||||
jmp @L0312
|
jmp @L0312
|
||||||
; } else { x1 = x1 + ay
|
; } else { x1 = x1 + ax
|
||||||
@L027F:
|
@L027F:
|
||||||
ldx #0
|
ldx #0
|
||||||
lda AY
|
lda AX
|
||||||
bpl @L0288
|
bpl @L0288
|
||||||
dex
|
dex
|
||||||
@L0288: clc
|
@L0288: clc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user