]> git.sur5r.net Git - cc65/blob - libsrc/c64/read.s
This commit was generated by cvs2svn to compensate for changes in r2,
[cc65] / libsrc / c64 / read.s
1 ;
2 ; Ullrich von Bassewitz, 30.05.1998
3 ;
4 ; int read (int fd, void* buf, int count);
5 ;
6 ; THIS IS A HACK!
7 ;
8
9         .export         _read
10         .import         popax
11         .importzp       ptr1, ptr2, ptr3
12
13         .include        "../cbm/cbm.inc"
14
15 _read:  jsr     popax           ; get count
16         sta     ptr2
17         stx     ptr2+1          ; save it for later
18         jsr     popax           ; get buf
19         sta     ptr1
20         stx     ptr1+1
21         jsr     popax           ; get fd and discard it
22         lda     #0
23         sta     ptr3
24         sta     ptr3+1          ; set count
25
26 L1:     lda     ptr2
27         ora     ptr2+1          ; count zero?
28         beq     L9
29         jsr     BASIN
30         ldy     #0
31         sta     (ptr1),y        ; save char
32         inc     ptr1
33         bne     L2
34         inc     ptr1+1
35 L2:     inc     ptr3            ; increment count
36         bne     L3
37         inc     ptr3+1
38 L3:     cmp     #$0D            ; CR?
39         bne     L1
40
41 ; Done, return the count
42
43 L9:     lda     ptr3
44         ldx     ptr3+1
45         rts
46
47
48