]> git.sur5r.net Git - cc65/blob - libsrc/apple2/close.s
Call interrupt handlers with carry clear
[cc65] / libsrc / apple2 / close.s
1 ;
2 ; Oliver Schmidt, 30.12.2004
3 ;
4 ; int __fastcall__ close (int fd);
5 ;
6
7         .export         _close
8
9         .import         closedirect, freebuffer
10         .import         errnoexit, oserrexit
11         .import         return0
12
13         .include        "filedes.inc"
14
15 _close:
16         ; Process fd
17         jsr     getfd           ; Returns A, Y and C
18         bcs     errno
19
20         ; Check for device
21         bmi     zerofd
22
23         ; Close file
24         jsr     closedirect     ; Preserves Y
25         bcs     oserr
26
27         ; Mark fdtab slot as free
28 zerofd: lda     #$00
29         sta     fdtab + FD::REF_NUM,y
30
31         ; Cleanup I/O buffer
32         jsr     freebuffer
33
34         ; Return success
35         jmp     return0
36
37         ; Return errno
38 errno:  jmp     errnoexit
39
40         ; Return oserror
41 oserr:  jmp     oserrexit