From 9b9622d09a081aabe0dfd5a8414a7f3bfa799def Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stephan=20M=C3=BChlstrasser?= Date: Sat, 29 Nov 2014 22:13:07 +0100 Subject: [PATCH] Added chline and cvline implementation from CBM implementation. --- libsrc/c1p/chline.s | 29 +++++++++++++++++++++++++++++ libsrc/c1p/cvline.s | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 libsrc/c1p/chline.s create mode 100644 libsrc/c1p/cvline.s diff --git a/libsrc/c1p/chline.s b/libsrc/c1p/chline.s new file mode 100644 index 000000000..da07e83be --- /dev/null +++ b/libsrc/c1p/chline.s @@ -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 index 000000000..607a4c691 --- /dev/null +++ b/libsrc/c1p/cvline.s @@ -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 + + + -- 2.39.5