]> git.sur5r.net Git - cc65/blob - libsrc/apple2/sysmkdir.s
Fixed gcc compiler warning (#867)
[cc65] / libsrc / apple2 / sysmkdir.s
1 ;
2 ; Oliver Schmidt, 15.04.2005
3 ;
4 ; unsigned char _sysmkdir (const char* name, ...);
5 ;
6
7         .export         __sysmkdir
8         .import         pushname, popname
9         .import         addysp, popax
10
11         .include        "zeropage.inc"
12         .include        "mli.inc"
13
14 __sysmkdir:
15         ; Throw away all parameters except the name
16         dey
17         dey
18         jsr     addysp
19
20         ; Get and push name
21         jsr     popax
22         jsr     pushname
23         bne     oserr
24
25         ; Set pushed name
26         lda     sp
27         ldx     sp+1
28         sta     mliparam + MLI::CREATE::PATHNAME
29         stx     mliparam + MLI::CREATE::PATHNAME+1
30
31         ; Set all other parameters from template
32         ldx     #(MLI::CREATE::CREATE_TIME+1) - (MLI::CREATE::PATHNAME+1) - 1
33 :       lda     CREATE,x
34         sta     mliparam + MLI::CREATE::ACCESS,x
35         dex
36         bpl     :-
37
38         ; Make directory
39         lda     #CREATE_CALL
40         ldx     #CREATE_COUNT
41         jsr     callmli
42
43         ; Cleanup name
44         jsr     popname         ; Preserves A
45
46 oserr:  rts
47
48         .rodata
49
50 CREATE: .byte   %11000011       ; ACCESS:       Standard full access
51         .byte   $0F             ; FILE_TYPE:    Directory file
52         .word   $0000           ; AUX_TYPE:     N/A
53         .byte   $0D             ; STORAGE_TYPE: Linked directory file
54         .word   $0000           ; CREATE_DATE:  Current date
55         .word   $0000           ; CREATE_TIME:  Current time