aboutsummaryrefslogtreecommitdiff
path: root/conio/cputs.s
diff options
context:
space:
mode:
Diffstat (limited to 'conio/cputs.s')
-rw-r--r--conio/cputs.s36
1 files changed, 36 insertions, 0 deletions
diff --git a/conio/cputs.s b/conio/cputs.s
new file mode 100644
index 0000000..13cf847
--- /dev/null
+++ b/conio/cputs.s
@@ -0,0 +1,36 @@
+;
+; Ullrich von Bassewitz, 06.08.1998
+;
+; void cputsxy (unsigned char x, unsigned char y, char* s);
+; void cputs (char* s);
+;
+
+ .export _cputsxy, _cputs
+ .import popa, _gotoxy, _cputc
+ .importzp ptr1, tmp1
+
+_cputsxy:
+ sta ptr1 ; Save s for later
+ stx ptr1+1
+ jsr popa ; Get Y
+ jsr _gotoxy ; Set cursor, pop x
+ jmp L0 ; Same as cputs...
+
+_cputs: sta ptr1 ; Save s
+ stx ptr1+1
+L0: ldy #0
+L1: lda (ptr1),y
+ beq L9 ; Jump if done
+ iny
+ sty tmp1 ; Save offset
+ jsr _cputc ; Output char, advance cursor
+ ldy tmp1 ; Get offset
+ bne L1 ; Next char
+ inc ptr1+1 ; Bump high byte
+ bne L1
+
+; Done
+
+L9: rts
+
+