From: cuz Date: Sat, 2 Dec 2000 14:59:14 +0000 (+0000) Subject: Fixed newline bug in cvline X-Git-Tag: V2.12.0~3017 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e906d07cc1c0d4ed97157828eeab61d24fc95235;p=cc65 Fixed newline bug in cvline git-svn-id: svn://svn.cc65.org/cc65/trunk@523 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/libsrc/c128/cputc.s b/libsrc/c128/cputc.s index ca303d979..7f35ded29 100644 --- a/libsrc/c128/cputc.s +++ b/libsrc/c128/cputc.s @@ -28,48 +28,48 @@ _cputc: cmp #$0A ; CR? beq plot ; Recalculate pointers L1: cmp #$0D ; LF? - bne L2 - ldy CURS_Y - iny - bne newline ; Recalculate pointers + beq newline ; Recalculate pointers ; Printable char of some sort -L2: cmp #' ' + cmp #' ' bcc cputdirect ; Other control char tay bmi L10 cmp #$60 - bcc L3 + bcc L2 and #$DF bne cputdirect ; Branch always -L3: and #$3F +L2: and #$3F cputdirect: - jsr putchar ; Write the character to the screen + jsr putchar ; Write the character to the screen ; Advance cursor position advance: - iny - cpy xsize - bne L9 + iny + cpy xsize + bne L3 + jsr newline ; new line + ldy #0 ; + cr +L3: sty CURS_X + rts + newline: - ldy #0 ; new line clc lda xsize adc SCREEN_PTR sta SCREEN_PTR bcc L4 inc SCREEN_PTR+1 - clc + clc L4: lda xsize adc CRAM_PTR sta CRAM_PTR bcc L5 inc CRAM_PTR+1 L5: inc CURS_Y -L9: sty CURS_X rts ; Handle character if high bit set diff --git a/libsrc/c64/cputc.s b/libsrc/c64/cputc.s index 49058bcf1..1efeaa701 100644 --- a/libsrc/c64/cputc.s +++ b/libsrc/c64/cputc.s @@ -28,48 +28,48 @@ _cputc: cmp #$0A ; CR? beq plot ; Recalculate pointers L1: cmp #$0D ; LF? - bne L2 - ldy CURS_Y - iny - bne newline ; Recalculate pointers + beq newline ; Recalculate pointers ; Printable char of some sort -L2: cmp #' ' + cmp #' ' bcc cputdirect ; Other control char tay bmi L10 cmp #$60 - bcc L3 + bcc L2 and #$DF bne cputdirect ; Branch always -L3: and #$3F +L2: and #$3F cputdirect: - jsr putchar ; Write the character to the screen + jsr putchar ; Write the character to the screen ; Advance cursor position advance: iny cpy xsize - bne L9 + bne L3 + jsr newline ; new line + ldy #0 ; + cr +L3: sty CURS_X + rts + newline: - ldy #0 ; new line clc lda xsize adc SCREEN_PTR sta SCREEN_PTR bcc L4 inc SCREEN_PTR+1 - clc + clc L4: lda xsize adc CRAM_PTR sta CRAM_PTR bcc L5 inc CRAM_PTR+1 L5: inc CURS_Y -L9: sty CURS_X rts ; Handle character if high bit set diff --git a/libsrc/cbm610/cputc.s b/libsrc/cbm610/cputc.s index 0bbf15974..9454b138a 100644 --- a/libsrc/cbm610/cputc.s +++ b/libsrc/cbm610/cputc.s @@ -31,34 +31,35 @@ _cputc: cmp #$0A ; CR? beq plot ; Recalculate pointers L1: cmp #$0D ; LF? - bne L2 - ldy CURS_Y - iny - bne newline ; Recalculate pointers + beq newline ; Recalculate pointers ; Printable char of some sort -L2: cmp #' ' + cmp #' ' bcc cputdirect ; Other control char tay bmi L10 cmp #$60 - bcc L3 + bcc L2 and #$DF bne cputdirect ; Branch always -L3: and #$3F +L2: and #$3F cputdirect: - jsr putchar ; Write the character to the screen + jsr putchar ; Write the character to the screen ; Advance cursor position advance: - iny - cpy xsize - bne L9 + iny + cpy xsize + bne L3 + jsr newline ; new line + ldy #0 ; + cr +L3: sty CURS_X + rts + newline: - ldy #0 ; new line clc lda xsize adc CharPtr @@ -66,12 +67,11 @@ newline: bcc L4 inc CharPtr+1 L4: inc CURS_Y -L9: sty CURS_X rts ; Handle character if high bit set -L10: and #$7F +L10: and #$7F cmp #$7E ; PI? bne L11 lda #$5E ; Load screen code for PI diff --git a/libsrc/pet/cputc.s b/libsrc/pet/cputc.s index fc599ba4a..7dca23143 100644 --- a/libsrc/pet/cputc.s +++ b/libsrc/pet/cputc.s @@ -28,34 +28,35 @@ _cputc: cmp #$0A ; CR? beq plot ; Recalculate pointers L1: cmp #$0D ; LF? - bne L2 - ldy CURS_Y - iny - bne newline ; Recalculate pointers + beq newline ; Recalculate pointers ; Printable char of some sort -L2: cmp #' ' + cmp #' ' bcc cputdirect ; Other control char tay bmi L10 cmp #$60 - bcc L3 + bcc L2 and #$DF bne cputdirect ; Branch always -L3: and #$3F +L2: and #$3F cputdirect: - jsr putchar ; Write the character to the screen + jsr putchar ; Write the character to the screen ; Advance cursor position advance: - iny - cpy xsize - bne L9 + iny + cpy xsize + bne L3 + jsr newline ; new line + ldy #0 ; + cr +L3: sty CURS_X + rts + newline: - ldy #0 ; new line clc lda xsize adc SCREEN_PTR @@ -63,7 +64,6 @@ newline: bcc L4 inc SCREEN_PTR+1 L4: inc CURS_Y -L9: sty CURS_X rts ; Handle character if high bit set diff --git a/libsrc/plus4/cputc.s b/libsrc/plus4/cputc.s index 28a6ce912..eab31f0cd 100644 --- a/libsrc/plus4/cputc.s +++ b/libsrc/plus4/cputc.s @@ -28,34 +28,35 @@ _cputc: cmp #$0A ; CR? beq plot ; Recalculate pointers L1: cmp #$0D ; LF? - bne L2 - ldy CURS_Y - iny - bne newline ; Recalculate pointers + beq newline ; Recalculate pointers ; Printable char of some sort -L2: cmp #' ' + cmp #' ' bcc cputdirect ; Other control char tay bmi L10 cmp #$60 - bcc L3 + bcc L2 and #$DF bne cputdirect ; Branch always -L3: and #$3F +L2: and #$3F cputdirect: - jsr putchar ; Write the character to the screen + jsr putchar ; Write the character to the screen ; Advance cursor position advance: - iny - cpy xsize - bne L9 + iny + cpy xsize + bne L3 + jsr newline ; new line + ldy #0 ; + cr +L3: sty CURS_X + rts + newline: - ldy #0 ; new line clc lda xsize adc SCREEN_PTR @@ -69,7 +70,6 @@ L4: lda xsize bcc L5 inc CRAM_PTR+1 L5: inc CURS_Y -L9: sty CURS_X rts ; Handle character if high bit set