diff options
author | B. Watson <yalhcru@gmail.com> | 2016-02-17 23:47:59 -0500 |
---|---|---|
committer | B. Watson <yalhcru@gmail.com> | 2016-02-17 23:47:59 -0500 |
commit | 3abf7993ce2d2deb1c0596f3404b2bfa27324564 (patch) | |
tree | 67b4cb01fb3b303a14edf41f6ffa56243d33af3a /conio/cputs.s | |
parent | b2f7604ac51db075201ea0aa40d002d3d5e7e071 (diff) | |
download | taipan-3abf7993ce2d2deb1c0596f3404b2bfa27324564.tar.gz |
make the cursor behave *much* better, via custom conio function
Diffstat (limited to 'conio/cputs.s')
-rw-r--r-- | conio/cputs.s | 36 |
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 + + |