]> git.sur5r.net Git - cc65/blob - libsrc/common/fmisc.s
This commit was generated by cvs2svn to compensate for changes in r2,
[cc65] / libsrc / common / fmisc.s
1 ;
2 ; Ullrich von Bassewitz, 31.05.1998
3 ;
4 ; Several small file stream functions
5 ;
6
7         .export         _clearerr, _feof, _ferror, _fileno, _fflush
8         .import         return0
9         .import         __errno
10         .importzp       ptr1
11
12 ;
13 ; Get the FILE* parameter, check if the file is open
14 ;
15
16 getf:   sta     ptr1
17         stx     ptr1+1
18         ldy     #1
19         lda     (ptr1),y        ; get f->f_flags
20         and     #$01            ; file open?
21         beq     @L1             ; jump if no
22         clc                     ; ok
23         rts
24 @L1:    sec
25         rts
26
27 ;
28 ; void clearerr (FILE* f);
29 ;
30
31 _clearerr:
32         jsr     getf
33         bcs     err
34         lda     (ptr1),y
35         and     #$F9
36         sta     (ptr1),y
37 err:    rts
38
39 ;
40 ; int feof (FILE* f);
41 ;
42
43 _feof:
44         jsr     getf
45 ;       bcs     err
46         lda     (ptr1),y
47         and     #$02
48         ldx     #0
49         rts
50
51 ;
52 ; int ferror (FILE* f);
53 ;
54
55 _ferror:
56         jsr     getf
57 ;       bcs     err
58         lda     (ptr1),y
59         and     #$04
60         ldx     #0
61         rts
62
63 ;
64 ; int fileno (FILE* f);
65 ;
66
67 _fileno:
68         jsr     getf
69 ;       bcs     err
70         dey
71         lda     (ptr1),y
72         ldx     #0
73         rts
74
75 ;
76 ; int __fastcall__ fflush (FILE* f);
77 ;
78
79 _fflush = return0
80
81