2 ; Freddy Offenga & Christian Groessler, December 2004
4 ; function to get default device: char *_getdefdev(void);
7 ; the ZCRNAME routine is only used to get the default drive because
8 ; ZCRNAME has two disadvantages:
9 ; 1. It will convert D: into D1: instead of Dn: (n = default drive)
10 ; 2. It will give a 'no arguments' status if it detects something
11 ; like Dn: (without filename).
14 ; ZCRNAME is slightly different from SpartaDOS. It will convert D:
15 ; into Dn: where n is the default drive.
19 .export __getdefdev ; get default device (e.g. "D1:")
24 ; Get default device (LBUF will be destroyed!!)
29 lda #'0'+DEFAULT_DEVICE
32 lda __dos_type ; which DOS?
40 sta (DOSVEC),y ; reset buffer offset
42 ; Store dummy argument
51 ; One extra store to avoid the buggy sequence from OS/A+ DOS:
52 ; <D><RETURN><:> => drive number = <RETURN>
57 ; Create crunch vector
66 crvec: jsr $FFFF ; will be set to crunch vector
70 ldy #COMFNAM ; COMFNAM is always "Dn:"
77 ; Return pointer to default device
79 finish: lda #<__defdev