;
; Oliver Schmidt, 17.04.2005
;
; unsigned char __fastcall__ _syschdir (const char* name);
;

        .export         __syschdir
        .import		pushname, popname
	.import		initcwd

	.include	"zeropage.inc"
	.include	"mli.inc"

__syschdir:
        ; Push name
        jsr	pushname
        bne	oserr

        ; Set pushed name
        lda	sp
        ldx	sp+1
        sta	mliparam + MLI::PREFIX::PATHNAME
        stx	mliparam + MLI::PREFIX::PATHNAME+1

        ; Change directory
        lda	#SET_PREFIX_CALL
        ldx	#PREFIX_COUNT
        jsr	callmli
	bcs	cleanup

	; Update current working directory
	jsr	initcwd		; Returns with A = 0

        ; Cleanup name
cleanup:jsr	popname		; Preserves A

oserr:	rts
