aboutsummaryrefslogtreecommitdiff
path: root/vcount.s
diff options
context:
space:
mode:
Diffstat (limited to 'vcount.s')
-rw-r--r--vcount.s22
1 files changed, 22 insertions, 0 deletions
diff --git a/vcount.s b/vcount.s
new file mode 100644
index 0000000..067ce26
--- /dev/null
+++ b/vcount.s
@@ -0,0 +1,22 @@
+ .export _waitvcount
+
+ .include "atari.inc"
+
+; wait for VCOUNT to reach a particular value. Use this
+; to avoid updating parts of the screen while ANTIC is
+; reading from it.
+
+; c should be ((4 + Yposition) * 4), where Yposition is
+; the text line below the bottom one you're about to modify.
+
+; void __fastcall__ waitvcount(unsigned char *c)
+_waitvcount:
+ sta FR1
+
+w:
+ lda VCOUNT
+ cmp FR1
+ bne w
+
+ STA WSYNC ; finish current scanline
+ rts