]> git.sur5r.net Git - cc65/commitdiff
Atari: get current drive on XDOS
authorChristian Groessler <chris@groessler.org>
Tue, 31 May 2016 05:37:58 +0000 (07:37 +0200)
committerChristian Groessler <chris@groessler.org>
Tue, 31 May 2016 05:37:58 +0000 (07:37 +0200)
asminc/atari.inc
libsrc/atari/getdefdev.s

index b8f883cd865522cb6e9d60bf7da38bb9976b359f..f7a7ab223b853357708bad05db457238c58a43c3 100644 (file)
@@ -1021,6 +1021,7 @@ XGLIN        = $0871    ; get line
 XSKIP        = $0874    ; skip parameter
 XMOVE        = $0877    ; move filename
 XGNUM        = $087A    ; get number
+XDEFDEV      = $0816    ; current drive * undocumented *
 
 ;-------------------------------------------------------------------------
 ; End of atari.inc
index 280c042e5caad1acefdb28990a0c116b180f4fb6..56ad8ff657ae22b1e88cf09fc88d7c73a78fdd69 100644 (file)
 __getdefdev:
 
         lda     __dos_type      ; which DOS?
-        cmp     #OSADOS+1
-        bcs     finish          ; only supported on OS/A+ and SpartaDOS
-                                ; (TODO: add XDOS support)
+        cmp     #XDOS
+        beq     xdos            ; only supported on XDOS ...
+;       cmp     #OSADOS+1       ; (redundant: #OSADOS+1 = #XDOS)
+        bcs     finish          ; ... and on OS/A+ and SpartaDOS
 
         ldy     #BUFOFF
         lda     #0
@@ -68,7 +69,7 @@ crvec:  jsr     $FFFF           ; will be set to crunch vector
         sta     __defdev
         iny
         lda     (DOSVEC),y
-        sta     __defdev+1
+done:   sta     __defdev+1
 
 ; Return pointer to default device
 
@@ -76,6 +77,11 @@ finish: lda     #<__defdev
         ldx     #>__defdev
         rts
 
+; XDOS version
+
+xdos:   lda     XDEFDEV
+        bne     done
+
         .data
 
 ; Default device