From: Stephan Mühlstrasser Date: Sat, 29 Nov 2014 21:13:07 +0000 (+0100) Subject: Added chline and cvline implementation from CBM implementation. X-Git-Tag: V2.15~22^2~36 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=9b9622d09a081aabe0dfd5a8414a7f3bfa799def;p=cc65 Added chline and cvline implementation from CBM implementation. --- 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 + + +