From: ol.sc
Date: Mon, 24 May 2010 20:10:19 +0000 (+0000)
Subject: Added functions to learn about the unit numbers of the ProDOS 8 devices found.
X-Git-Tag: V2.13.3~763
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1bbbed5e96242f1784958101a3d4b6aa43c323c1;p=cc65
Added functions to learn about the unit numbers of the ProDOS 8 devices found.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4663 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
diff --git a/include/apple2.h b/include/apple2.h
index 15fb8baca..1fbf181e7 100644
--- a/include/apple2.h
+++ b/include/apple2.h
@@ -143,6 +143,12 @@ unsigned char get_ostype (void);
void rebootafterexit (void);
/* Reboot machine after program termination has completed. */
+unsigned char drivecount (void);
+/* Returns the number of ProDOS 8 drives. */
+
+unsigned char* drivelist (void);
+/* Returns a pointer to the list of ProDOS 8 drives. */
+
#define ser_apple2_slot(num) ser_ioctl (0, (void *) (num))
/* Select a slot number from 1 to 7 prior to ser_open.
* The default slot number is 2.
diff --git a/libsrc/apple2/Makefile b/libsrc/apple2/Makefile
index a38de7482..8ecb7d5b7 100644
--- a/libsrc/apple2/Makefile
+++ b/libsrc/apple2/Makefile
@@ -70,6 +70,7 @@ S_OBJS= _scrsize.o \
diosectsize.o \
diowrite.o \
dosdetect.o \
+ drives.o \
filedes.o \
fileerr.o \
filename.o \
diff --git a/libsrc/apple2/drives.s b/libsrc/apple2/drives.s
new file mode 100644
index 000000000..abeafb580
--- /dev/null
+++ b/libsrc/apple2/drives.s
@@ -0,0 +1,38 @@
+;
+; Oliver Schmidt, 2010-05-24
+;
+; unsigned char drivecount (void);
+; unsigned char* drivelist (void);
+;
+
+ .export _drivecount, _drivelist
+ .import __dos_type
+
+ .include "mli.inc"
+
+_drivecount:
+ ldx #$00
+
+ ; Check for ProDOS 8
+ lda __dos_type
+ bne :+
+ rts
+
+ ; Number of on-line devices (minus 1)
+: ldy DEVCNT
+ iny
+ tya
+ rts
+
+_drivelist:
+ ldx #$00
+
+ ; Check for ProDOS 8
+ lda __dos_type
+ bne :+
+ rts
+
+ ; Up to 14 units may be active
+: lda #DEVLST
+ rts
diff --git a/libsrc/apple2/mli.inc b/libsrc/apple2/mli.inc
index 2134c8785..26b40fdd7 100644
--- a/libsrc/apple2/mli.inc
+++ b/libsrc/apple2/mli.inc
@@ -115,6 +115,8 @@ EOF_COUNT = 2
.global callmli
DEVNUM := $BF30 ; Most recent accessed device
+DEVCNT := $BF31 ; Number of on-line devices (minus 1)
+DEVLST := $BF32 ; Up to 14 units may be active
DATELO := $BF90 ; Bits 15-9 = Year, 8-5 = Month, 4-0 = Day
TIMELO := $BF92 ; Bits 12-8 = Hour, 5-0 = Minute
PFIXPTR := $BF9A ; If = 0, no prefix active
diff --git a/libsrc/apple2enh/Makefile b/libsrc/apple2enh/Makefile
index 919362402..d2ed51120 100644
--- a/libsrc/apple2enh/Makefile
+++ b/libsrc/apple2enh/Makefile
@@ -73,6 +73,7 @@ S_OBJS= _scrsize.o \
diosectsize.o \
diowrite.o \
dosdetect.o \
+ drives.o \
filedes.o \
fileerr.o \
filename.o \