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:
cuz
2000-12-02 14:59:14 +00:00
parent d0e2ffcf57
commit e906d07cc1
5 changed files with 66 additions and 66 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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