Fixed newline bug in cvline
git-svn-id: svn://svn.cc65.org/cc65/trunk@523 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -28,48 +28,48 @@ _cputc: cmp #$0A ; CR?
|
|||||||
beq plot ; Recalculate pointers
|
beq plot ; Recalculate pointers
|
||||||
|
|
||||||
L1: cmp #$0D ; LF?
|
L1: cmp #$0D ; LF?
|
||||||
bne L2
|
beq newline ; Recalculate pointers
|
||||||
ldy CURS_Y
|
|
||||||
iny
|
|
||||||
bne newline ; Recalculate pointers
|
|
||||||
|
|
||||||
; Printable char of some sort
|
; Printable char of some sort
|
||||||
|
|
||||||
L2: cmp #' '
|
cmp #' '
|
||||||
bcc cputdirect ; Other control char
|
bcc cputdirect ; Other control char
|
||||||
tay
|
tay
|
||||||
bmi L10
|
bmi L10
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcc L3
|
bcc L2
|
||||||
and #$DF
|
and #$DF
|
||||||
bne cputdirect ; Branch always
|
bne cputdirect ; Branch always
|
||||||
L3: and #$3F
|
L2: and #$3F
|
||||||
|
|
||||||
cputdirect:
|
cputdirect:
|
||||||
jsr putchar ; Write the character to the screen
|
jsr putchar ; Write the character to the screen
|
||||||
|
|
||||||
; Advance cursor position
|
; Advance cursor position
|
||||||
|
|
||||||
advance:
|
advance:
|
||||||
iny
|
iny
|
||||||
cpy xsize
|
cpy xsize
|
||||||
bne L9
|
bne L3
|
||||||
|
jsr newline ; new line
|
||||||
|
ldy #0 ; + cr
|
||||||
|
L3: sty CURS_X
|
||||||
|
rts
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
ldy #0 ; new line
|
|
||||||
clc
|
clc
|
||||||
lda xsize
|
lda xsize
|
||||||
adc SCREEN_PTR
|
adc SCREEN_PTR
|
||||||
sta SCREEN_PTR
|
sta SCREEN_PTR
|
||||||
bcc L4
|
bcc L4
|
||||||
inc SCREEN_PTR+1
|
inc SCREEN_PTR+1
|
||||||
clc
|
clc
|
||||||
L4: lda xsize
|
L4: lda xsize
|
||||||
adc CRAM_PTR
|
adc CRAM_PTR
|
||||||
sta CRAM_PTR
|
sta CRAM_PTR
|
||||||
bcc L5
|
bcc L5
|
||||||
inc CRAM_PTR+1
|
inc CRAM_PTR+1
|
||||||
L5: inc CURS_Y
|
L5: inc CURS_Y
|
||||||
L9: sty CURS_X
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Handle character if high bit set
|
; Handle character if high bit set
|
||||||
|
|||||||
@@ -28,48 +28,48 @@ _cputc: cmp #$0A ; CR?
|
|||||||
beq plot ; Recalculate pointers
|
beq plot ; Recalculate pointers
|
||||||
|
|
||||||
L1: cmp #$0D ; LF?
|
L1: cmp #$0D ; LF?
|
||||||
bne L2
|
beq newline ; Recalculate pointers
|
||||||
ldy CURS_Y
|
|
||||||
iny
|
|
||||||
bne newline ; Recalculate pointers
|
|
||||||
|
|
||||||
; Printable char of some sort
|
; Printable char of some sort
|
||||||
|
|
||||||
L2: cmp #' '
|
cmp #' '
|
||||||
bcc cputdirect ; Other control char
|
bcc cputdirect ; Other control char
|
||||||
tay
|
tay
|
||||||
bmi L10
|
bmi L10
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcc L3
|
bcc L2
|
||||||
and #$DF
|
and #$DF
|
||||||
bne cputdirect ; Branch always
|
bne cputdirect ; Branch always
|
||||||
L3: and #$3F
|
L2: and #$3F
|
||||||
|
|
||||||
cputdirect:
|
cputdirect:
|
||||||
jsr putchar ; Write the character to the screen
|
jsr putchar ; Write the character to the screen
|
||||||
|
|
||||||
; Advance cursor position
|
; Advance cursor position
|
||||||
|
|
||||||
advance:
|
advance:
|
||||||
iny
|
iny
|
||||||
cpy xsize
|
cpy xsize
|
||||||
bne L9
|
bne L3
|
||||||
|
jsr newline ; new line
|
||||||
|
ldy #0 ; + cr
|
||||||
|
L3: sty CURS_X
|
||||||
|
rts
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
ldy #0 ; new line
|
|
||||||
clc
|
clc
|
||||||
lda xsize
|
lda xsize
|
||||||
adc SCREEN_PTR
|
adc SCREEN_PTR
|
||||||
sta SCREEN_PTR
|
sta SCREEN_PTR
|
||||||
bcc L4
|
bcc L4
|
||||||
inc SCREEN_PTR+1
|
inc SCREEN_PTR+1
|
||||||
clc
|
clc
|
||||||
L4: lda xsize
|
L4: lda xsize
|
||||||
adc CRAM_PTR
|
adc CRAM_PTR
|
||||||
sta CRAM_PTR
|
sta CRAM_PTR
|
||||||
bcc L5
|
bcc L5
|
||||||
inc CRAM_PTR+1
|
inc CRAM_PTR+1
|
||||||
L5: inc CURS_Y
|
L5: inc CURS_Y
|
||||||
L9: sty CURS_X
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Handle character if high bit set
|
; Handle character if high bit set
|
||||||
|
|||||||
@@ -31,34 +31,35 @@ _cputc: cmp #$0A ; CR?
|
|||||||
beq plot ; Recalculate pointers
|
beq plot ; Recalculate pointers
|
||||||
|
|
||||||
L1: cmp #$0D ; LF?
|
L1: cmp #$0D ; LF?
|
||||||
bne L2
|
beq newline ; Recalculate pointers
|
||||||
ldy CURS_Y
|
|
||||||
iny
|
|
||||||
bne newline ; Recalculate pointers
|
|
||||||
|
|
||||||
; Printable char of some sort
|
; Printable char of some sort
|
||||||
|
|
||||||
L2: cmp #' '
|
cmp #' '
|
||||||
bcc cputdirect ; Other control char
|
bcc cputdirect ; Other control char
|
||||||
tay
|
tay
|
||||||
bmi L10
|
bmi L10
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcc L3
|
bcc L2
|
||||||
and #$DF
|
and #$DF
|
||||||
bne cputdirect ; Branch always
|
bne cputdirect ; Branch always
|
||||||
L3: and #$3F
|
L2: and #$3F
|
||||||
|
|
||||||
cputdirect:
|
cputdirect:
|
||||||
jsr putchar ; Write the character to the screen
|
jsr putchar ; Write the character to the screen
|
||||||
|
|
||||||
; Advance cursor position
|
; Advance cursor position
|
||||||
|
|
||||||
advance:
|
advance:
|
||||||
iny
|
iny
|
||||||
cpy xsize
|
cpy xsize
|
||||||
bne L9
|
bne L3
|
||||||
|
jsr newline ; new line
|
||||||
|
ldy #0 ; + cr
|
||||||
|
L3: sty CURS_X
|
||||||
|
rts
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
ldy #0 ; new line
|
|
||||||
clc
|
clc
|
||||||
lda xsize
|
lda xsize
|
||||||
adc CharPtr
|
adc CharPtr
|
||||||
@@ -66,12 +67,11 @@ newline:
|
|||||||
bcc L4
|
bcc L4
|
||||||
inc CharPtr+1
|
inc CharPtr+1
|
||||||
L4: inc CURS_Y
|
L4: inc CURS_Y
|
||||||
L9: sty CURS_X
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Handle character if high bit set
|
; Handle character if high bit set
|
||||||
|
|
||||||
L10: and #$7F
|
L10: and #$7F
|
||||||
cmp #$7E ; PI?
|
cmp #$7E ; PI?
|
||||||
bne L11
|
bne L11
|
||||||
lda #$5E ; Load screen code for PI
|
lda #$5E ; Load screen code for PI
|
||||||
|
|||||||
@@ -28,34 +28,35 @@ _cputc: cmp #$0A ; CR?
|
|||||||
beq plot ; Recalculate pointers
|
beq plot ; Recalculate pointers
|
||||||
|
|
||||||
L1: cmp #$0D ; LF?
|
L1: cmp #$0D ; LF?
|
||||||
bne L2
|
beq newline ; Recalculate pointers
|
||||||
ldy CURS_Y
|
|
||||||
iny
|
|
||||||
bne newline ; Recalculate pointers
|
|
||||||
|
|
||||||
; Printable char of some sort
|
; Printable char of some sort
|
||||||
|
|
||||||
L2: cmp #' '
|
cmp #' '
|
||||||
bcc cputdirect ; Other control char
|
bcc cputdirect ; Other control char
|
||||||
tay
|
tay
|
||||||
bmi L10
|
bmi L10
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcc L3
|
bcc L2
|
||||||
and #$DF
|
and #$DF
|
||||||
bne cputdirect ; Branch always
|
bne cputdirect ; Branch always
|
||||||
L3: and #$3F
|
L2: and #$3F
|
||||||
|
|
||||||
cputdirect:
|
cputdirect:
|
||||||
jsr putchar ; Write the character to the screen
|
jsr putchar ; Write the character to the screen
|
||||||
|
|
||||||
; Advance cursor position
|
; Advance cursor position
|
||||||
|
|
||||||
advance:
|
advance:
|
||||||
iny
|
iny
|
||||||
cpy xsize
|
cpy xsize
|
||||||
bne L9
|
bne L3
|
||||||
|
jsr newline ; new line
|
||||||
|
ldy #0 ; + cr
|
||||||
|
L3: sty CURS_X
|
||||||
|
rts
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
ldy #0 ; new line
|
|
||||||
clc
|
clc
|
||||||
lda xsize
|
lda xsize
|
||||||
adc SCREEN_PTR
|
adc SCREEN_PTR
|
||||||
@@ -63,7 +64,6 @@ newline:
|
|||||||
bcc L4
|
bcc L4
|
||||||
inc SCREEN_PTR+1
|
inc SCREEN_PTR+1
|
||||||
L4: inc CURS_Y
|
L4: inc CURS_Y
|
||||||
L9: sty CURS_X
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Handle character if high bit set
|
; Handle character if high bit set
|
||||||
|
|||||||
@@ -28,34 +28,35 @@ _cputc: cmp #$0A ; CR?
|
|||||||
beq plot ; Recalculate pointers
|
beq plot ; Recalculate pointers
|
||||||
|
|
||||||
L1: cmp #$0D ; LF?
|
L1: cmp #$0D ; LF?
|
||||||
bne L2
|
beq newline ; Recalculate pointers
|
||||||
ldy CURS_Y
|
|
||||||
iny
|
|
||||||
bne newline ; Recalculate pointers
|
|
||||||
|
|
||||||
; Printable char of some sort
|
; Printable char of some sort
|
||||||
|
|
||||||
L2: cmp #' '
|
cmp #' '
|
||||||
bcc cputdirect ; Other control char
|
bcc cputdirect ; Other control char
|
||||||
tay
|
tay
|
||||||
bmi L10
|
bmi L10
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcc L3
|
bcc L2
|
||||||
and #$DF
|
and #$DF
|
||||||
bne cputdirect ; Branch always
|
bne cputdirect ; Branch always
|
||||||
L3: and #$3F
|
L2: and #$3F
|
||||||
|
|
||||||
cputdirect:
|
cputdirect:
|
||||||
jsr putchar ; Write the character to the screen
|
jsr putchar ; Write the character to the screen
|
||||||
|
|
||||||
; Advance cursor position
|
; Advance cursor position
|
||||||
|
|
||||||
advance:
|
advance:
|
||||||
iny
|
iny
|
||||||
cpy xsize
|
cpy xsize
|
||||||
bne L9
|
bne L3
|
||||||
|
jsr newline ; new line
|
||||||
|
ldy #0 ; + cr
|
||||||
|
L3: sty CURS_X
|
||||||
|
rts
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
ldy #0 ; new line
|
|
||||||
clc
|
clc
|
||||||
lda xsize
|
lda xsize
|
||||||
adc SCREEN_PTR
|
adc SCREEN_PTR
|
||||||
@@ -69,7 +70,6 @@ L4: lda xsize
|
|||||||
bcc L5
|
bcc L5
|
||||||
inc CRAM_PTR+1
|
inc CRAM_PTR+1
|
||||||
L5: inc CURS_Y
|
L5: inc CURS_Y
|
||||||
L9: sty CURS_X
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Handle character if high bit set
|
; Handle character if high bit set
|
||||||
|
|||||||
Reference in New Issue
Block a user