1;
2; Maciej 'YTM/Elysium' Witkowiak
3;
4; 06.03.2002
5
6; void cclearxy (unsigned char x, unsigned char y, unsigned char length);
7; void cclear (unsigned char length);
8
9            .export _cclearxy, _cclear
10            .import gotoxy, fixcursor
11            .importzp cursor_x, cursor_y, cursor_c
12
13            .include "jumptab.inc"
14            .include "geossym.inc"
15
16_cclearxy:
17        pha                     ; Save the length
18        jsr gotoxy              ; Call this one, will pop params
19        pla                     ; Restore the length
20
21_cclear:
22        cmp #0                  ; Is the length zero?
23        beq L9                  ; Jump if done
24        tax
25        lda cursor_x            ; left start
26        sta r3L
27        lda cursor_x+1
28        sta r3L+1
29        lda cursor_y            ; level
30        sta r2L
31        clc
32        adc #7
33        sta r2H
34        txa                     ; right end
35        clc
36        adc cursor_c
37        sta cursor_c
38        sta r4L
39        ldx #r4
40        ldy #3
41        jsr DShiftLeft
42        clc                     ; one pixel less
43        lda r4L
44        sbc #0
45        sta r4L
46        lda r4L+1
47        sbc #0
48        sta r4L+1
49        lda curPattern          ; store current pattern
50        pha
51        lda #0                  ; set pattern to clear
52        jsr SetPattern
53        jsr Rectangle
54        pla
55        jsr SetPattern          ; restore pattern
56        jsr fixcursor
57L9:     rts
58