File: cbm_open.s

package info (click to toggle)
cc65 2.19-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,268 kB
  • sloc: ansic: 117,151; asm: 66,339; pascal: 4,248; makefile: 1,009; perl: 607
file content (44 lines) | stat: -rw-r--r-- 1,125 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
;
; Ullrich von Bassewitz, 22.06.2002
;
; Original C code by Marc 'BlackJack' Rintsch, 18.03.2001
;
; unsigned char __fastcall__ cbm_open (unsigned char lfn,
;                                      unsigned char device,
;                                      unsigned char sec_addr,
;                                      const char* name);
; /* Opens a file. Works just like the BASIC command.
; ** Returns 0 if opening was successful, otherwise an errorcode (see table
; ** below).
; */
; {
;     cbm_k_setlfs(lfn, device, sec_addr);
;     cbm_k_setnam(name);
;     return _oserror = cbm_k_open();
; }
;

        .export         _cbm_open
        .import         popa
        .import         _cbm_k_setlfs, _cbm_k_setnam, _cbm_k_open
        .import         __oserror

_cbm_open:
        pha
        txa
        pha                     ; Save name

        jsr     popa            ; Get sec_addr
        jsr     _cbm_k_setlfs   ; Call SETLFS, pop all args

        pla
        tax
        pla                     ; Get name
        jsr     _cbm_k_setnam

        jsr     _cbm_k_open
        sta     __oserror

        rts