]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/initcwd.s
don't use constructor to setup runtime stack
[cc65] / libsrc / apple2 / initcwd.s
index c17e081e3096b72f0a4fcab52da86abbb4892c17..6ed914ca63e7582292ab35dce991ef027512b467 100644 (file)
@@ -8,10 +8,8 @@
         .include       "zeropage.inc"
         .include        "mli.inc"
 
-        .segment        "INIT"
-        
 initcwd:
-        ; Use imported buffer
+        ; Set static prefix buffer
         lda    #<__cwd
         ldx    #>__cwd
         sta     mliparam + MLI::PREFIX::PATHNAME
@@ -22,18 +20,21 @@ initcwd:
         ldx     #PREFIX_COUNT
         jsr     callmli
 
-        ; Check length byte
-        ldx    __cwd
-        beq    done
-
-        ; Replace trailing slash with zero
-        sta    __cwd,x         ; A = 0
-
-        ; Remove length byte
-        tax
-:       inx
-        lda    __cwd,x
-        sta    __cwd-1,x
-        bne    :-
-
-done:   rts
+        ; Check for null prefix
+       lda     __cwd
+       beq     done
+
+       ; Remove length byte and trailing slash
+       sta     tmp1
+       ldx     #$01
+:      lda     __cwd,x
+       sta     __cwd - 1,x
+       inx
+       cpx     tmp1
+       bcc     :-
+
+       ; Add terminating zero
+       lda     #$00
+       sta     __cwd - 1,x
+       
+done:  rts