Blob Blame History Raw
From 3f360fe3ee04490dd1664e27066c1248f9e4de87 Mon Sep 17 00:00:00 2001
From: Stefan <stefan.haubenthal@gmail.com>
Date: Tue, 19 Nov 2019 19:21:52 +0100
Subject: [PATCH 120/125] Update cputc.s

---
 libsrc/c16/cputc.s | 105 +--------------------------------------------
 1 file changed, 1 insertion(+), 104 deletions(-)

diff --git a/libsrc/c16/cputc.s b/libsrc/c16/cputc.s
index 49b3a84d..86959675 100644
--- a/libsrc/c16/cputc.s
+++ b/libsrc/c16/cputc.s
@@ -1,104 +1 @@
-;
-; Ullrich von Bassewitz, 06.08.1998
-;
-; void cputcxy (unsigned char x, unsigned char y, char c);
-; void cputc (char c);
-;
-
-        .export         _cputcxy, _cputc, cputdirect, putchar
-        .export         newline, plot
-        .import         gotoxy
-        .import         PLOT
-
-        .include        "plus4.inc"
-
-
-_cputcxy:
-        pha                     ; Save C
-        jsr     gotoxy          ; Set cursor, drop x and y
-        pla                     ; Restore C
-
-; Plot a character - also used as internal function
-
-_cputc: cmp     #$0A            ; CR?
-        bne     L1
-        lda     #0
-        sta     CURS_X
-        beq     plot            ; Recalculate pointers
-
-L1:     cmp     #$0D            ; LF?
-        beq     newline         ; Recalculate pointers
-
-; Printable char of some sort
-
-        cmp     #' '
-        bcc     cputdirect      ; Other control char
-        tay
-        bmi     L10
-        cmp     #$60
-        bcc     L2
-        and     #$DF
-        bne     cputdirect      ; Branch always
-L2:     and     #$3F
-
-cputdirect:
-        jsr     putchar         ; Write the character to the screen
-
-; Advance cursor position
-
-advance:
-        iny
-        cpy     #XSIZE
-        bne     L3
-        jsr     newline         ; new line
-        ldy     #0              ; + cr
-L3:     sty     CURS_X
-        rts
-
-newline:
-        clc
-        lda     #XSIZE
-        adc     SCREEN_PTR
-        sta     SCREEN_PTR
-        bcc     L4
-        inc     SCREEN_PTR+1
-        clc
-L4:     lda     #XSIZE
-        adc     CRAM_PTR
-        sta     CRAM_PTR
-        bcc     L5
-        inc     CRAM_PTR+1
-L5:     inc     CURS_Y
-        rts
-
-; Handle character if high bit set
-
-L10:    and     #$7F
-        cmp     #$7E            ; PI?
-        bne     L11
-        lda     #$5E            ; Load screen code for PI
-        bne     cputdirect
-L11:    ora     #$40
-        bne     cputdirect
-
-
-
-; Set cursor position, calculate RAM pointers
-
-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
-        ldy     CURS_X
-        sta     (SCREEN_PTR),y  ; Set char
-        lda     CHARCOLOR
-        sta     (CRAM_PTR),y    ; Set color
-        rts
+.include "../plus4/cputc.s"
-- 
2.23.0