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