1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-23 09:29:34 +00:00

Replaced Apple II specific solution with implementation of recently introduced mass-storage device enumaration.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5821 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
ol.sc 2012-09-09 13:38:32 +00:00
parent b586d5ef69
commit 0f1cd50883
6 changed files with 50 additions and 46 deletions

View File

@ -294,8 +294,6 @@ usage.
<item>_auxtype
<item>_dos_type
<item>_filetype
<item>drivecount
<item>drivelist
<item>get_ostype
<item>rebootafterexit
<item>rootdir

View File

@ -149,12 +149,6 @@ extern unsigned int _auxtype; /* Default 0 */
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. */
unsigned char get_ostype (void);
/* Get the machine type. Returns one of the APPLE_xxx codes. */

View File

@ -70,12 +70,12 @@ S_OBJS= _scrsize.o \
diosectsize.o \
diowrite.o \
dosdetect.o \
drives.o \
exec.o \
exehdr.o \
filedes.o \
filename.o \
get_ostype.o \
getdevice.o \
gotoxy.o \
gotoy.o \
home.o \

View File

@ -1,36 +0,0 @@
;
; 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
beq :+
; Number of on-line devices (minus 1)
ldy DEVCNT
iny
tya
: rts
_drivelist:
ldx #$00
; Check for ProDOS 8
lda __dos_type
beq :+
; Up to 14 units may be active
lda #<DEVLST
ldx #>DEVLST
: rts

48
libsrc/apple2/getdevice.s Normal file
View File

@ -0,0 +1,48 @@
;
; Oliver Schmidt, 2012-09-04
;
; unsigned char getfirstdevice (void);
; unsigned char __fastcall__ getnextdevice (unsigned char device);
;
.export _getfirstdevice
.export _getnextdevice
.import __dos_type
.include "zeropage.inc"
.include "mli.inc"
_getfirstdevice:
lda #$FF
; Fall through
_getnextdevice:
next: tax
inx
txa
cmp #$FF
beq done
; Check for ProDOS 8
ldx __dos_type
beq next
; Up to 14 units may be active
ldx #<DEVLST
ldy #>DEVLST
stx ptr1
sty ptr1+1
; Number of on-line devices (minus 1)
ldy DEVCNT
; Does the list contain the device?
: cmp (ptr1),y
beq done
dey
bpl :-
bmi next ; Branch always
done: ldx #$00
rts

View File

@ -73,12 +73,12 @@ S_OBJS= _scrsize.o \
diosectsize.o \
diowrite.o \
dosdetect.o \
drives.o \
exec.o \
exehdr.o \
filedes.o \
filename.o \
get_ostype.o \
getdevice.o \
gotoxy.o \
gotoy.o \
home.o \