]> git.sur5r.net Git - cc65/commitdiff
Behave more like BASIC.SYSTEM and allow for argv[0].
authorOliver Schmidt <ol.sc@web.de>
Sun, 19 Apr 2015 19:59:05 +0000 (21:59 +0200)
committerOliver Schmidt <ol.sc@web.de>
Sun, 19 Apr 2015 19:59:05 +0000 (21:59 +0200)
libsrc/apple2/exec.s

index c486306bbde88873de31b77251d05c5a25e39632..2f6d298029250f38ce77a899786c5df2b423bf28 100644 (file)
@@ -28,6 +28,20 @@ _exec:
         jsr     pushname
         bne     oserr
 
+        ; ProDOS TechRefMan, chapter 5.1.5.1:
+        ; "The complete or partial pathname of the system program
+        ;  is stored at $280, starting with a length byte."
+        ; In fact BASIC.SYSTEM does the same for BLOAD and BRUN of
+        ; binary programs so we should do the same too in any case
+        ; especially as _we_ rely on it in mainargs.s for argv[0].
+        ldy     #$00
+        lda     (sp),y
+        tay
+:       lda     (sp),y
+        sta     $0280,y
+        dey
+        bpl     :-
+
         ; Set pushed name
         lda     sp
         ldx     sp+1
@@ -53,17 +67,6 @@ _exec:
         cmp     #$FF            ; SYS file?
         bne     binary          ; No, check for BIN file
 
-        ; ProDOS TechRefMan, chapter 5.1.5.1:
-        ; "The complete or partial pathname of the system program
-        ;  is stored at $280, starting with a length byte."
-        ldy     #$00
-        lda     (sp),y
-        tay
-:       lda     (sp),y
-        sta     $0280,y
-        dey
-        bpl     :-
-        
         ; SYS programs replace BASIC.SYSTEM so set in the ProDOS system bit map
         ; protection for pages $80 - $BF just in case BASIC.SYSTEM is there now
         ldx     #$0F            ; Start with protection for pages $B8 - $BF