]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/syschdir.s
Don't save and restore the zero page locations used.
[cc65] / libsrc / apple2 / syschdir.s
index 48bbc2eed60e30f3f7a538418caa4d7df87de273..8afc3af0ba8280afb48264278b4c5deb163e1f9d 100644 (file)
@@ -5,37 +5,33 @@
 ;
 
         .export         __syschdir
-        .import                pushname, popname
-       .import         __cwd
+        .import         pushname, popname
+        .import         initcwd
 
-       .include        "zeropage.inc"
-       .include        "mli.inc"
+        .include        "zeropage.inc"
+        .include        "mli.inc"
 
 __syschdir:
         ; Push name
-        jsr    pushname
-        bne    oserr
+        jsr     pushname
+        bne     oserr
 
         ; Set pushed name
-        lda    sp
-        ldx    sp+1
-        sta    mliparam + MLI::PREFIX::PATHNAME
-        stx    mliparam + MLI::PREFIX::PATHNAME+1
+        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
-
-       ldy     #$01
-:      lda     (sp),y
-       sta     __cwd-1,y
-       beq     cleanup
-       iny
-       bne     :-              ; Branch always
+        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
+cleanup:jsr     popname         ; Preserves A
 
-oserr: rts
+oserr:  rts