;
-; Freddy Offenga & Christian Groessler, August 2003
+; Freddy Offenga, Stefan Haubenthal, Christian Groessler, March 2007
;
; detect the DOS version we're running on
;
.constructor detect,26
.export __dos_type
+; ------------------------------------------------------------------------
; DOS type detection
-detect: lda #ATARIDOS
- sta __dos_type ; set default
+.segment "INIT"
- lda DOS
- cmp #$53 ; "S" (SpartaDOS)
+detect: lda DOS
+ cmp #'S' ; SpartaDOS
beq spdos
+ cmp #'M' ; MyDOS
+ beq mydos
+ cmp #'X' ; XDOS
+ beq xdos
+ lda #$4C ; probably default
ldy #COMTAB
- lda #$4C
cmp (DOSVEC),y
bne done
-
ldy #ZCRNAME
cmp (DOSVEC),y
bne done
cmp (DOSVEC),y
beq done
lda #OSADOS
- sta __dos_type
- bne done
+ .byte $2C ; BIT <abs>
spdos: lda #SPARTADOS
+ .byte $2C ; BIT <abs>
+
+mydos: lda #MYDOS
+ .byte $2C ; BIT <abs>
+
+xdos: lda #XDOS
sta __dos_type
done: rts
- .bss
+; ------------------------------------------------------------------------
+; Data
-__dos_type: .res 1
+ .bss
+__dos_type: .res 1 ; default to ATARIDOS