]> git.sur5r.net Git - cc65/blobdiff - libsrc/pce/cputc.s
Added "popptr1" which is of common use to save some bytes.
[cc65] / libsrc / pce / cputc.s
index 918f39e296f8b8e33fe8c2bb3b94fb7d897b84d6..cfe6a1a279be6cc1b458d59964e7102d5278ad40 100644 (file)
@@ -3,97 +3,96 @@
 ; void cputc (char c);
 ;
 
-                .export _cputcxy, _cputc, cputdirect, putchar
-                .export newline, plot
-                .import popa, _gotoxy
-                .import PLOT
-                .import xsize
+        .export         _cputcxy, _cputc, cputdirect, putchar
+        .export         newline, plot
+        .import         gotoxy
+        .import         PLOT
+        .import         xsize
 
-                .importzp tmp3,tmp4
+        .importzp       tmp3,tmp4
+
+        .include        "pce.inc"
+        .include        "extzp.inc"
 
-                .include        "pce.inc"
 _cputcxy:
-                pha                     ; Save C
-                jsr        popa         ; Get Y
-                jsr        _gotoxy      ; Set cursor, drop x
-                pla                     ; Restore C
+        pha                     ; Save C
+        jsr     gotoxy          ; Set cursor, drop x and y
+        pla                     ; Restore C
 
 ; Plot a character - also used as internal function
 
-_cputc:         cmp     #$0d            ; CR?
-                bne     L1
-                lda     #0
-                sta     CURS_X
-                beq     plot            ; Recalculate pointers
+_cputc: cmp     #$0d            ; CR?
+        bne     L1
+        lda     #0
+        sta     CURS_X
+        beq     plot            ; Recalculate pointers
 
-L1:             cmp     #$0a            ; LF?
-                beq     newline         ; Recalculate pointers
+L1:     cmp     #$0a            ; LF?
+        beq     newline         ; Recalculate pointers
 
 ; Printable char of some sort
 
 cputdirect:
-                jsr     putchar         ; Write the character to the screen
+        jsr     putchar         ; Write the character to the screen
 
 ; Advance cursor position
 
 advance:
-                ldy     CURS_X
-                iny
-                cpy     xsize
-                bne     L3
-                jsr     newline         ; new line
-                ldy     #0              ; + cr
-L3:             sty     CURS_X
-                jmp     plot
+        ldy     CURS_X
+        iny
+        cpy     xsize
+        bne     L3
+        jsr     newline         ; new line
+        ldy     #0              ; + cr
+L3:     sty     CURS_X
+        jmp     plot
 
 newline:
-                inc     CURS_Y
+        inc     CURS_Y
 
 ; Set cursor position, calculate RAM pointers
 
-plot:           ldy     CURS_X
-                ldx     CURS_Y
-                clc
-                jmp     PLOT            ; Set the new cursor
-
-
+plot:   ldy     CURS_X
+        ldx     CURS_Y
+        clc
+        jmp     PLOT            ; Set the new cursor
 
 ; Write one character to the screen without doing anything else, return X
 ; position in Y
 
 putchar:
 
-                ora     RVS             ; Set revers bit
+        ora     RVS             ; Set revers bit
 
-                tax
+        tax
 
-                st0     #VDC_MAWR       ; Memory Adress Write
+        st0     #VDC_MAWR       ; Memory Adress Write
 
-                lda     SCREEN_PTR
-                sta     a:VDC_DATA_LO
+        lda     SCREEN_PTR
+        sta     a:VDC_DATA_LO
 
-                lda     SCREEN_PTR+1
-                sta     a:VDC_DATA_HI
+        lda     SCREEN_PTR + 1
+        sta     a:VDC_DATA_HI
 
-                st0     #VDC_VWR        ; VWR
+        st0     #VDC_VWR        ; VWR
 
-                txa
-                sta     a:VDC_DATA_LO   ; character
+        txa
+        sta     a:VDC_DATA_LO   ; character
 
-                lda     CHARCOLOR
+        lda     CHARCOLOR
 
-                asl     a
-                asl     a
-                asl     a
-                asl     a
+        asl     a
+        asl     a
+        asl     a
+        asl     a
 
-                ora     #$02
-                sta     a:VDC_DATA_HI
+        ora     #$02
+        sta     a:VDC_DATA_HI
 
-                rts
+        rts
 
 ;-------------------------------------------------------------------------------
 ; force the init constructor to be imported
 
-                .import initconio
-conio_init = initconio
+        .import initconio
+conio_init      = initconio