<!-- <itemize> -->
<!-- <item><ref id="get_tv" name="get_tv"> -->
-<!-- <item><ref id="waitvblank" name="waitvblank"> -->
+<!-- <item><ref id="waitvsync" name="waitvsync"> -->
<!-- </itemize> -->
(incomplete)
<sect1>NES specific functions<p>
<itemize>
-<item>waitvblank - wait until the start of vblank
-<item>get_tv
+<item>waitvsync - wait until the start of the next frame</item>
+<item>get_tv</item>
</itemize>
<sect1>PCE specific functions<p>
<itemize>
-<item>waitvblank</item>
+<item>waitvsync</item>
<item>get_tv (since all PCE systems are NTSC, this always returns TV_NTSC)</item>
</itemize>
<sect1>Supervision specific functions<p>
<itemize>
-<item>waitvblank
+<item>waitvsync</item>
</itemize>
unsigned char get_tv (void);
/* Return the video mode the machine is using. */
-
+#if !defined(__CBM610__) && !defined(__PET__)
+void waitvsync (void);
+/* wait for the start of the next frame */
+#endif
/*****************************************************************************/
/* CBM kernal functions */
#define JOY_START 6
#define JOY_SELECT 7
-void waitvblank (void);
-/* Wait for the vertical blanking */
+void waitvsync (void);
+/* Wait for start of next frame */
/* NOTE: all Gamate are "NTSC" */
#define get_tv() TV_NTSC
-void waitvblank (void);
-/* Wait for the vertical blanking */
+void waitvsync (void);
+/* Wait for start of the next frame */
unsigned char get_tv (void);
/* Return the video mode the machine is using. */
#define JOY_SELECT 6
#define JOY_RUN 7
-void waitvblank (void);
-/* Wait for the vertical blanking */
+void waitvsync (void);
+/* Wait for start of the next frame */
/* NOTE: all PCE are NTSC */
#define get_tv() TV_NTSC
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .export _waitvsync
+
+ .include "c128.inc"
+
+_waitvsync:
+
+ bit MODE
+ bmi @c80
+
+@l1:
+ bit VIC_CTRL1
+ bpl @l1
+@l2:
+ bit VIC_CTRL1
+ bmi @l2
+ rts
+
+@c80:
+ ;FIXME: do we have to switch banks?
+@l3:
+ lda VDC_INDEX
+ and #$20
+ beq @l3
+ rts
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .export _waitvsync
+
+ .include "c64.inc"
+
+_waitvsync:
+@l1:
+ bit VIC_CTRL1
+ bpl @l1
+@l2:
+ bit VIC_CTRL1
+ bmi @l2
+ rts
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .export _waitvsync
+ .import PALFLAG
+ .import sys_bank, restore_bank
+
+ .importzp vic
+
+ .include "cbm510.inc"
+
+_waitvsync:
+ jsr sys_bank ; Switch to the system bank
+ sei
+
+ ldy #VIC_CTRL1
+@l1:
+ lda (vic),y
+ bpl @l1
+@l2:
+ lda (vic),y
+ bmi @l2
+
+ cli
+ jmp restore_bank
+++ /dev/null
-;
-; void waitvblank (void);
-;
-
- .include "gamate.inc"
- .include "extzp.inc"
-
- .forceimport ticktock
- .export _waitvblank
-
-; FIXME: is this actually correct?
-
-.proc _waitvblank
-
- lda tickcount
-@lp: cmp tickcount
- beq @lp
- rts
-
-.endproc
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .include "gamate.inc"
+ .include "extzp.inc"
+
+ .forceimport ticktock
+ .export _waitvsync
+
+; FIXME: is this actually correct?
+
+.proc _waitvsync
+
+ lda tickcount
+@lp: cmp tickcount
+ beq @lp
+ rts
+
+.endproc
+++ /dev/null
-;
-; Written by Groepaz/Hitmen <groepaz@gmx.net>
-; Cleanup by Ullrich von Bassewitz <uz@cc65.org>
-;
-; void waitvblank(void);
-;
-
- .export _waitvblank
-
- .include "nes.inc"
-
-.proc _waitvblank
-
-wait: lda PPU_STATUS
- bpl wait
- rts
-
-.endproc
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+; Cleanup by Ullrich von Bassewitz <uz@cc65.org>
+;
+; void waitvsync(void);
+;
+
+ .export _waitvsync
+
+ .include "nes.inc"
+
+.proc _waitvsync
+
+wait: lda PPU_STATUS
+ bpl wait
+ rts
+
+.endproc
+++ /dev/null
-;
-; void waitvblank (void);
-;
-
- .include "pce.inc"
- .include "extzp.inc"
-
- .forceimport ticktock
- .export _waitvblank
-
-.proc _waitvblank
-
- lda tickcount
-@lp: cmp tickcount
- beq @lp
- rts
-
-.endproc
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .include "pce.inc"
+ .include "extzp.inc"
+
+ .forceimport ticktock
+ .export _waitvsync
+
+.proc _waitvsync
+
+ lda tickcount
+@lp: cmp tickcount
+ beq @lp
+ rts
+
+.endproc
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .export _waitvsync
+
+ .include "plus4.inc"
+
+_waitvsync:
+@l1:
+ lda TED_VLINEHI
+ and #$01
+ ora TED_VLINELO
+ bne @l1
+ rts
--- /dev/null
+;
+; Written by Groepaz <groepaz@gmx.net>
+;
+; void waitvsync (void);
+;
+
+ .export _waitvsync
+
+ .include "vic20.inc"
+
+_waitvsync:
+@l2:
+ lda VIC_HLINE
+ bne @l2
+ rts
+
gotoxy(7 + inpos,1);
#if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__)
- /* not all targets have waitvblank */
- waitvblank();
+ /* not all targets have waitvsync */
+ waitvsync();
/* for targets that do not have a keyboard, read the first
joystick */
joy = joy_read(JOY_1);
break;
}
- waitvblank();
+ waitvsync();
(*((unsigned char*)LCD_XPOS)) = x;
(*((unsigned char*)LCD_YPOS)) = y;
p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]);
}
- waitvblank();
+ waitvsync();
++n;
}
}