]> git.sur5r.net Git - cc65/commitdiff
Marco van den Heuvel contributed code to detect a C64 DTV.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 1 Feb 2010 18:04:14 +0000 (18:04 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 1 Feb 2010 18:04:14 +0000 (18:04 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4570 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/c64/get_ostype.s

index e2db72ae2cf35f29c4fbc0efea1ef9790133fc81..4058e116ef830d9b6ef8679220f2ffc2842c2035 100644 (file)
@@ -1,6 +1,9 @@
 ;
 ; Stefan Haubenthal, Jul 10 2003
 ;
+; C64DTV detection by
+; Marco van den Heuvel, 2010-01-28
+;
 ; unsigned char get_ostype(void)
 ;
 ; $AA US
 ; $43 SX-64
 ; $03 EU_NEW
 ; $00 EU_OLD
+; $FF C64DTV
 ;
 
        .export         _get_ostype
 
 .proc  _get_ostype
 
-        ldx     #$00            ; Clear high byte
-       lda     $ff80
-       rts
+       ldx     #0            ; Clear high byte
 
-.endproc
+               ldy     #1
+       sty     $d03f
+       ldy     $d040
+       cpy     $d000
+       bne     @c64dtv
+       inc     $d000
+       cpy     $d040
+       beq     @c64dtv
+
+; Normal C64
 
+       lda     $ff80
+       rts
+
+; C64 DTV
 
+@c64dtv:
+               stx     $d03f
+       lda     #$ff
+       rts
+.endproc