]> git.sur5r.net Git - cc65/blob - libsrc/c64/soft80_cpeeks.s
remove TABs
[cc65] / libsrc / c64 / soft80_cpeeks.s
1 ;
2 ; 2017-12-27, groepaz
3 ;
4 ; void cpeeks (char* s, unsigned length);
5 ;
6         .export         soft80_cpeeks
7         .import         soft80_cpeekc, soft80_kplot, popax
8
9         .importzp       ptr1, ptr2
10
11         .include        "c64.inc"
12         .include        "soft80.inc"
13
14 soft80_cpeeks:
15         eor     #<$FFFF         ; counting a word upward is faster
16         sta     ptr2            ; so, we use -(length + 1)
17         txa
18         eor     #>$FFFF
19         sta     ptr2+1
20
21         jsr     popax
22         sta     ptr1
23         stx     ptr1+1
24
25         ; save current cursor position
26         lda     CURS_X
27         pha
28         lda     CURS_Y
29         pha
30
31         ; get the string
32 @lp:
33         jsr     soft80_cpeekc
34         ldy     #0
35         sta     (ptr1),y
36
37         ; advance cursor position
38         ldy     CURS_X
39         ldx     CURS_Y
40         iny
41         cpy     #charsperline
42         bne     @sk2
43         ldy     #0
44         inx
45 @sk2:
46         sty     CURS_X
47         stx     CURS_Y
48         clc
49         jsr     soft80_kplot
50
51         inc     ptr1
52         bne     @sk
53         inc     ptr1+1
54 @sk:
55         inc     ptr2
56         bne     @lp
57         inc     ptr2+1
58         bne     @lp
59
60         ; terminate the string
61         lda     #0
62         ldy     #0
63         sta     (ptr1),y
64
65         ; restore the cursor position
66         pla
67         tax     ; CURS_Y
68         pla
69         tay     ; CURS_X
70         clc
71         jmp     soft80_kplot