]> git.sur5r.net Git - cc65/commitdiff
Added chline and cvline implementation from CBM implementation.
authorStephan Mühlstrasser <stephan.muehlstrasser@web.de>
Sat, 29 Nov 2014 21:13:07 +0000 (22:13 +0100)
committerStephan Mühlstrasser <stephan.muehlstrasser@web.de>
Sat, 29 Nov 2014 21:13:07 +0000 (22:13 +0100)
libsrc/c1p/chline.s [new file with mode: 0644]
libsrc/c1p/cvline.s [new file with mode: 0644]

diff --git a/libsrc/c1p/chline.s b/libsrc/c1p/chline.s
new file mode 100644 (file)
index 0000000..da07e83
--- /dev/null
@@ -0,0 +1,29 @@
+;
+; based on CBM implementation
+;
+; originally by:
+; 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
+
+_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     #$94             ; Horizontal line, screen code
+        jsr     cputdirect      ; Direct output
+        dec     tmp1
+        bne     L1
+L9:     rts
diff --git a/libsrc/c1p/cvline.s b/libsrc/c1p/cvline.s
new file mode 100644 (file)
index 0000000..607a4c6
--- /dev/null
@@ -0,0 +1,32 @@
+;
+; based on CBM version
+; originally by:
+; Ullrich von Bassewitz, 08.08.1998
+;
+; void cvlinexy (unsigned char x, unsigned char y, unsigned char length);
+; void cvline (unsigned char length);
+;
+
+        .export         _cvlinexy, _cvline
+        .import         popa, _gotoxy, putchar, newline
+        .importzp       tmp1
+
+_cvlinexy:
+        pha                     ; Save the length
+        jsr     popa            ; Get y
+        jsr     _gotoxy         ; Call this one, will pop params
+        pla                     ; Restore the length and run into _cvline
+
+_cvline:
+        cmp     #0              ; Is the length zero?
+        beq     L9              ; Jump if done
+        sta     tmp1
+L1:     lda     #$95             ; Vertical bar
+        jsr     putchar         ; Write, no cursor advance
+        jsr     newline         ; Advance cursor to next line
+        dec     tmp1
+        bne     L1
+L9:     rts
+
+
+