]> git.sur5r.net Git - cc65/blob - libsrc/common/fmisc.s
removed some duplicated GEOS conio stuff
[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         .include        "_file.inc"
13
14 ;
15 ; Get the FILE* parameter, check if the file is open
16 ;
17
18 getf:   sta     ptr1
19         stx     ptr1+1
20         ldy     #_FILE_f_flags
21         lda     (ptr1),y        ; get f->f_flags
22         and     #_FOPEN         ; file open?
23         beq     @L1             ; jump if no
24         clc                     ; ok
25         rts
26 @L1:    sec
27         rts
28
29 ;
30 ; void clearerr (FILE* f);
31 ;
32
33 _clearerr:
34         jsr     getf
35         bcs     err
36         lda     (ptr1),y
37         and     #<~(_FEOF | _FERROR)
38         sta     (ptr1),y
39 err:    rts
40
41 ;
42 ; int feof (FILE* f);
43 ;
44
45 _feof:
46         jsr     getf
47 ;       bcs     err
48         lda     (ptr1),y
49         and     #_FEOF
50         ldx     #0
51         rts
52
53 ;
54 ; int ferror (FILE* f);
55 ;
56
57 _ferror:
58         jsr     getf
59 ;       bcs     err
60         lda     (ptr1),y
61         and     #_FERROR
62         ldx     #0
63         rts
64
65 ;
66 ; int fileno (FILE* f);
67 ;
68
69 _fileno:
70         jsr     getf
71 ;       bcs     err
72         dey
73         lda     (ptr1),y
74         ldx     #0
75         rts
76
77 ;
78 ; int __fastcall__ fflush (FILE* f);
79 ;
80
81 _fflush = return0
82
83