cc65/libsrc/apple2/sysmkdir.s

56 lines
1.4 KiB
ArmAsm

;
; Oliver Schmidt, 15.04.2005
;
; unsigned char _sysmkdir (const char* name, ...);
;
.export __sysmkdir
.import pushname, popname
.import addysp, popax
.include "zeropage.inc"
.include "mli.inc"
__sysmkdir:
; Throw away all parameters except the name
dey
dey
jsr addysp
; Get and push name
jsr popax
jsr pushname
bne oserr
; Set pushed name
lda sp
ldx sp+1
sta mliparam + MLI::CREATE::PATHNAME
stx mliparam + MLI::CREATE::PATHNAME+1
; Set all other parameters from template
ldx #(MLI::CREATE::CREATE_TIME+1) - (MLI::CREATE::PATHNAME+1) - 1
: lda CREATE,x
sta mliparam + MLI::CREATE::ACCESS,x
dex
bpl :-
; Make directory
lda #CREATE_CALL
ldx #CREATE_COUNT
jsr callmli
; Cleanup name
jsr popname ; Preserves A
oserr: rts
.rodata
CREATE: .byte %11000011 ; ACCESS: Standard full access
.byte $0F ; FILE_TYPE: Directory file
.word $0000 ; AUX_TYPE: N/A
.byte $0D ; STORAGE_TYPE: Linked directory file
.word $0000 ; CREATE_DATE: Current date
.word $0000 ; CREATE_TIME: Current time