]> git.sur5r.net Git - cc65/commitdiff
Fixed newline bug in cvline
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Dec 2000 14:59:14 +0000 (14:59 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Dec 2000 14:59:14 +0000 (14:59 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@523 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/c128/cputc.s
libsrc/c64/cputc.s
libsrc/cbm610/cputc.s
libsrc/pet/cputc.s
libsrc/plus4/cputc.s

index ca303d979de45ab4a7a099db9b67d350885ed987..7f35ded29b24b63037c68fcbabc7f6b01f3831c2 100644 (file)
@@ -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
index 49058bcf1e0959a287fd4500aa648b0a1dd237df..1efeaa7018970d2b245bd1a0e0cae6ecc4936e06 100644 (file)
@@ -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
index 0bbf15974c160656b35ff7e3bedd6d87436dfd3c..9454b138a8bc8dd487f488c549d477a48398a8ef 100644 (file)
@@ -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
index fc599ba4acfe474000b94d2eeec664202d1c75a5..7dca231437f72e93a510c70a5e89eed4dad4f8b5 100644 (file)
@@ -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
index 28a6ce91264422c7fe66f705f0774478037c6446..eab31f0cd8df2d2bf65af0335813e3fc3c4e000c 100644 (file)
@@ -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