aboutsummaryrefslogtreecommitdiff
path: root/conio/chline.s
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-02-17 23:47:59 -0500
committerB. Watson <yalhcru@gmail.com>2016-02-17 23:47:59 -0500
commit3abf7993ce2d2deb1c0596f3404b2bfa27324564 (patch)
tree67b4cb01fb3b303a14edf41f6ffa56243d33af3a /conio/chline.s
parentb2f7604ac51db075201ea0aa40d002d3d5e7e071 (diff)
downloadtaipan-3abf7993ce2d2deb1c0596f3404b2bfa27324564.tar.gz
make the cursor behave *much* better, via custom conio function
Diffstat (limited to 'conio/chline.s')
-rw-r--r--conio/chline.s32
1 files changed, 32 insertions, 0 deletions
diff --git a/conio/chline.s b/conio/chline.s
new file mode 100644
index 0000000..2ad7fed
--- /dev/null
+++ b/conio/chline.s
@@ -0,0 +1,32 @@
+;
+; Ullrich von Bassewitz, 08.08.1998
+;
+; void chlinexy (unsigned char x, unsigned char y, unsigned char length);
+; void chline (unsigned char length);
+;
+
+ .export _chlinexy, _chline
+ .import popa, _gotoxy, cputdirect
+ .importzp tmp1
+
+.ifdef __ATARI5200__
+CHRCODE = 14
+.else
+CHRCODE = $12+64
+.endif
+
+_chlinexy:
+ pha ; Save the length
+ jsr popa ; Get y
+ jsr _gotoxy ; Call this one, will pop params
+ pla ; Restore the length
+
+_chline:
+ cmp #0 ; Is the length zero?
+ beq L9 ; Jump if done
+ sta tmp1
+L1: lda #CHRCODE ; Horizontal line, screen code
+ jsr cputdirect ; Direct output
+ dec tmp1
+ bne L1
+L9: rts