]> git.sur5r.net Git - cc65/blobdiff - libsrc/atari/getargs.s
Fixed _textcolor definition.
[cc65] / libsrc / atari / getargs.s
index e3b18b2f92270c6f1111f5d5ad813e33d20a10f5..b1b5d258d49c8ef59842704ac5a29bfd6fe5b562 100644 (file)
@@ -7,6 +7,8 @@
 ; startup code but is nevertheless included in the compiled program when
 ; needed.
 
+; XDOS support added 05/2016 by Christian Groessler
+
 MAXARGS = 16            ; max. amount of arguments in arg. table
 CL_SIZE = 64            ; command line buffer size
 SPACE   = 32            ; SPACE char.
@@ -22,22 +24,30 @@ SPACE   = 32            ; SPACE char.
 
 .segment        "ONCE"
 
+nargdos:rts
+
 initmainargs:
         lda     __dos_type      ; which DOS?
-        cmp     #ATARIDOS
-        beq     nargdos         ; DOS does not support arguments
-        cmp     #MYDOS
-        bne     argdos          ; DOS supports arguments
-nargdos:rts
+        cmp     #MAX_DOS_WITH_CMDLINE + 1
+        bcs     nargdos
 
 ; Initialize ourcl buffer
 
-argdos: lda     #ATEOL
-        sta     ourcl+CL_SIZE
+argdos: ldy     #ATEOL
+        sty     ourcl+CL_SIZE
 
-; Move SpartaDOS command line to our own buffer
+; Move SpartaDOS/XDOS command line to our own buffer
+
+        cmp     #XDOS
+        bne     sparta
+
+        lda     #<XLINE
+        sta     ptr1
+        lda     #>XLINE
+        sta     ptr1+1
+        bne     cpcl0
 
-        lda     DOSVEC
+sparta: lda     DOSVEC
         clc
         adc     #<LBUF
         sta     ptr1
@@ -45,7 +55,7 @@ argdos: lda     #ATEOL
         adc     #>LBUF
         sta     ptr1+1
 
-        ldy     #0
+cpcl0:  ldy     #0
 cpcl:   lda     (ptr1),y
         sta     ourcl,y
         iny