cx16: added sys.waitirq() that just does a WAI like waitvsync() but it is explicit about its behavior

This commit is contained in:
Irmen de Jong
2026-03-08 18:05:43 +01:00
parent 3b68741208
commit f9767a5b1b
7 changed files with 17 additions and 17 deletions
@@ -1,6 +1,6 @@
Prog8 compiler v12.2-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit d720eeae in branch master
Prerelease version from git commit 3b687412 in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-cx16.p8
@@ -1513,6 +1513,7 @@ sys {
set_rasterline (uword line @AY)
update_rasterirq (uword handler @AY, uword rasterpos @R0) clobbers (A)
wait (uword jiffies @AY) clobbers (X)
waitirq ()
waitrasterline (uword line @AY)
waitvsync ()
}
+3
View File
@@ -1455,6 +1455,9 @@ miscellaneous
If this is is not possible (for instance because your program is running its own irq handler logic *and* no longer calls
the kernal's handler routine), you'll have to write your own wait routine instead.
``waitirq ()`` (cx16 only)
efficiently wait until the next interrupt has occurred (any source). It uses the 65C02 'wai' instruction for this.
``waitvsync ()``
busy wait till the next vsync has occurred (approximately), without depending on custom irq handling.
can be used to avoid screen flicker/tearing when updating screen contents.
+1
View File
@@ -17,6 +17,7 @@ Weird Heisenbug
Future Things and Ideas
^^^^^^^^^^^^^^^^^^^^^^^
- symboldump: some sort of javadocs generated from the p8 source files (instead of just the function signatures). Use markdown for formatting.
- if floats are only used in constants and never end up as actual value for a variable or expression, don't complain about the "floats not enabled" if %option enable_floats is missing
- why are (interned) strings stored as initialization value in the SymbolTable AND as string nodes in the interned string block? Something seems redundant here?
- add @private to variables and subroutines declared in a scope to make them invisible from outside that scope?