]> git.sur5r.net Git - cc65/commitdiff
Some Atari runtime library fixes. 306/head
authorChristian Groessler <chris@groessler.org>
Mon, 6 Jun 2016 20:45:20 +0000 (22:45 +0200)
committerChristian Groessler <chris@groessler.org>
Mon, 6 Jun 2016 20:45:20 +0000 (22:45 +0200)
* libsrc/atari/ucase_fn.s: Fix handling if input parameter 'tmp2' is 0.
* libsrc/atari/open.s: Set 'tmp2' parameter for 'ucase_fn' if DEFAULT_DEVICE
  is not defined.

libsrc/atari/open.s
libsrc/atari/ucase_fn.s

index 2188257cb17d8f404d1131516cbaadf220d5cce0..d5ff4ca521fc699bdaf9fb2b7f88abe77c6404db 100644 (file)
@@ -93,8 +93,10 @@ cont:   ldy     #3
 .ifdef  UCASE_FILENAME
 .ifdef  DEFAULT_DEVICE
         ldy     #$80
-        sty     tmp2            ; set flag for ucase_fn
+.else
+        ldy     #$00
 .endif
+        sty     tmp2            ; set flag for ucase_fn
         jsr     ucase_fn
         bcc     ucok1
 invret: lda     #<EINVAL        ; file name is too long
index e53750e2997a850473b107ee324a91b88d343956..f7f03915d04d022247319278eb480ef87b4b4e6b 100644 (file)
@@ -40,7 +40,9 @@
         stx     ptr4+1
 
 .ifdef  DEFAULT_DEVICE
-        ; bit #0 of tmp2 is used as a flag whether device name is present in passed string (1 = present, 0 = not present)
+        lda     tmp2
+        beq     hasdev          ; don't fiddle with device part
+        ; bit #0 of tmp2 is used as an additional flag whether device name is present in passed string (1 = present, 0 = not present)
         ldy     #1
         inc     tmp2            ; initialize flag: device present
         lda     #':'
@@ -81,11 +83,11 @@ copy_end:
 
 .ifdef  DEFAULT_DEVICE
         lda     #1
-        bit     tmp2
+        bit     tmp2            ; is a device present in the string?
         bne     hasdev2         ; yes, don't prepend something
-        bpl     hasdev2
+        bpl     hasdev2         ; check input parameter (tmp2 != $80)
 
-        ldy     #128+3          ; no, prepend "D:" (or other device)
+        ldy     #128+3          ; no, prepend "Dn:" (__defdev)
         sty     tmp3            ; adjust stack size used
         ldy     #3
         jsr     subysp          ; adjust stack pointer