]> git.sur5r.net Git - cc65/commitdiff
Choose another way to fix the issue from r5804: When parsing the directory
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 6 Aug 2012 18:45:26 +0000 (18:45 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 6 Aug 2012 18:45:26 +0000 (18:45 +0000)
name, add a file mask, so the result is "$0:*" or similar. When specified like
this, the drive accepts the r/o specifier ",R" so we don't have to complicate
the code in open().

git-svn-id: svn://svn.cc65.org/cc65/trunk@5805 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/cbm/filename.s
libsrc/cbm/open.s

index 0674db07e769116d6e0317b03cf2d9a4b651bafe..37caef21da8043eb883e44aa8d7fcb08f917f577 100644 (file)
@@ -125,6 +125,15 @@ drivedone:
         stx     fnbuf+1
         sta     fnbuf+0
 
+; Add the file mask
+
+        lda     #':'
+        sta     fnbuf+2
+        lda     #'*'
+        sta     fnbuf+3
+        lda     #4
+        sta     fnlen
+
 ; No need to check the name. Length is already 2
 
         lda     #0              ; ok flag
index 678dd04412f331f385b92f30e5c94d4173d263d1..dadf82d33b0cd1e5f3acc71651d4faed4d64f5bb 100644 (file)
@@ -96,7 +96,7 @@ parmok: jsr     popax           ; Get flags
 
 ; Invalid open mode
 
-einval: lda     #EINVAL
+        lda     #EINVAL
 
 ; Error entry. Sets _errno, clears _oserror, returns -1
 
@@ -119,14 +119,11 @@ closeandexit:
 
 oserror:jmp     __mappederrno
 
-
 ; Read bit is set. Add an 'r' to the name
 
-doread: ldy     fnisfile        ; File or directory?
-        beq     isdir           ; Don't add ,R for directory
-        lda     #'r'
+doread: lda     #'r'
         jsr     fnaddmode       ; Add the mode to the name
-isdir:  lda     #LFN_READ
+        lda     #LFN_READ
         bne     common          ; Branch always
 
 ; If O_TRUNC is set, scratch the file, but ignore any errors
@@ -202,4 +199,4 @@ nofile:                         ; ... else use SA=0 (read)
 .endproc
 
 
-
+