]> git.sur5r.net Git - cc65/blob - libsrc/cbm/cbm_open.s
Fix ftell() on Apple II to return the correct value.
[cc65] / libsrc / cbm / cbm_open.s
1 ;
2 ; Ullrich von Bassewitz, 22.06.2002
3 ;
4 ; Original C code by Marc 'BlackJack' Rintsch, 18.03.2001
5 ;
6 ; unsigned char __fastcall__ cbm_open (unsigned char lfn,
7 ;                                      unsigned char device,
8 ;                                      unsigned char sec_addr,
9 ;                                      const char* name);
10 ; /* Opens a file. Works just like the BASIC command.
11 ; ** Returns 0 if opening was successful, otherwise an errorcode (see table
12 ; ** below).
13 ; */
14 ; {
15 ;     cbm_k_setlfs(lfn, device, sec_addr);
16 ;     cbm_k_setnam(name);
17 ;     return _oserror = cbm_k_open();
18 ; }
19 ;
20
21         .export         _cbm_open
22         .import         popa
23         .import         _cbm_k_setlfs, _cbm_k_setnam, _cbm_k_open
24         .import         __oserror
25
26 _cbm_open:
27         pha
28         txa
29         pha                     ; Save name
30
31         jsr     popa            ; Get sec_addr
32         jsr     _cbm_k_setlfs   ; Call SETLFS, pop all args
33
34         pla
35         tax
36         pla                     ; Get name
37         jsr     _cbm_k_setnam
38
39         jsr     _cbm_k_open
40         sta     __oserror
41
42         rts
43
44