]> git.sur5r.net Git - cc65/commitdiff
New get_tv module from Stefan Haubenthal.
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 10 Apr 2008 20:12:20 +0000 (20:12 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 10 Apr 2008 20:12:20 +0000 (20:12 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3830 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/nes/Makefile
libsrc/nes/get_tv.s [new file with mode: 0644]

index 6e9333c3087d2c28c914ad2ee8d4dae78d1e3aec..191f4bb06a573e6d4bf2317dd4cd4c855e857d75 100644 (file)
@@ -54,6 +54,7 @@ OBJS =  _scrsize.o      \
         crt0.o          \
         ctype.o         \
         cvline.o        \
+        get_tv.o        \
         gotox.o         \
         gotoxy.o        \
         gotoy.o         \
diff --git a/libsrc/nes/get_tv.s b/libsrc/nes/get_tv.s
new file mode 100644 (file)
index 0000000..a82953c
--- /dev/null
@@ -0,0 +1,37 @@
+;
+; Stefan Haubenthal, 2007-01-21
+;
+; unsigned char __fastcall__ get_tv (void);
+; /* Return the video mode the machine is using */
+;
+
+       .include        "nes.inc"
+       .include        "get_tv.inc"
+       .importzp       tmp1, tmp2
+
+;--------------------------------------------------------------------------
+; _get_tv
+
+.proc  _get_tv
+
+       lda     #TV::NTSC       ; assume NTSC
+       tax                     ; clear
+       sta     tmp1
+       sta     tmp2
+       ldy     tickcount
+wait:  cpy     tickcount
+       beq     wait
+       iny                     ; next tick
+loop:  cpy     tickcount
+       bne     over
+       inc     tmp1
+       bne     loop
+       inc     tmp2
+       bne     loop
+over:  ldy     tmp2
+       cpy     #9
+       bcc     nopal
+       lda     #TV::PAL        ; choose PAL
+nopal: rts
+
+.endproc