From: ol.sc 
Date: Wed, 17 Oct 2012 20:24:43 +0000 (+0000)
Subject: Added check for disk in drive on chdir().
X-Git-Tag: V2.14~215
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1a80cd10714274b191229dcc13590cb9b7be49b2;p=cc65
Added check for disk in drive on chdir().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5859 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
diff --git a/libsrc/cbm/Makefile b/libsrc/cbm/Makefile
index 3230ab3b9..99753dd97 100644
--- a/libsrc/cbm/Makefile
+++ b/libsrc/cbm/Makefile
@@ -72,6 +72,7 @@ S_OBJS =	c_acptr.o	\
 		devicedir.o	\
 		dir.o		\
 		diskcmd.o	\
+		diskinit.o	\
 		exehdr.o	\
 		filedes.o	\
 		filename.o	\
diff --git a/libsrc/cbm/devicedir.s b/libsrc/cbm/devicedir.s
index b63a8ebe9..3a4e6d774 100644
--- a/libsrc/cbm/devicedir.s
+++ b/libsrc/cbm/devicedir.s
@@ -5,9 +5,7 @@
 ;
 
         .export         _getdevicedir
-        .import         opencmdchannel, closecmdchannel
-        .import         writefndiskcmd, readdiskerror
-        .import         isdisk, fnunit, fncmd, devicestr
+        .import         diskinit, devicestr, fnunit
         .import         popa, popax
         .importzp       ptr2, ptr3
 
@@ -29,63 +27,30 @@
         sta     ptr2
         stx     ptr2+1
 
-; Save device
+; Check device readiness
 
         jsr     popa
-        sta     fnunit
-
-; Check for disk device
-
-        tax
-        jsr     isdisk
-        bcs     erange
-
-; Open channel
-
-        jsr     opencmdchannel
-        bne     oserr
-
-; Write command
-
-        lda     #'i'            ; Init command
-        sta     fncmd
-        jsr     writefndiskcmd
-        bne     close
-
-; Read error
-
-        ldx     fnunit
-        jsr     readdiskerror
-
-; Close channel
-
-close:  pha
-        ldx     fnunit
-        jsr     closecmdchannel
-        pla
-        bne     oserr
+        jsr     diskinit
+        beq     size
+        jsr     __mappederrno
+        bne     fail            ; Branch always
 
 ; Check for sufficient buf size
 
-        lda     ptr3+1
+size:   lda     ptr3+1
         bne     okay            ; Buf >= 256
         lda     ptr3
         cmp     #3
         bcs     okay            ; Buf >= 3
-
-erange: lda     #