Programowanie: Czekanie na vblank przy wyłączonym systemie
From Atariki
(Różnice między wersjami)
Wersja z dnia 09:15, 19 wrz 2022 Jhusak (Dyskusja | wkład) (Dodany wariant) ← Previous diff |
Wersja z dnia 22:40, 24 sie 2023 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
+ | {{SDU}} | ||
Oczekiwanie na vblank przy wyłączonym systemie nie jest takie trywialne. Systemowe przerwania są wyłączane, aby np. nie przeszkadzały np. w odgrywaniu sampli, lub innych zadań o nadzwyczajnym rygorze czasowym. | Oczekiwanie na vblank przy wyłączonym systemie nie jest takie trywialne. Systemowe przerwania są wyłączane, aby np. nie przeszkadzały np. w odgrywaniu sampli, lub innych zadań o nadzwyczajnym rygorze czasowym. | ||
Zaradzić może poniższe rozwiązanie składającie się z dwóch pętli i używa licznika linii obrazu VCOUNT ($D40B). | Zaradzić może poniższe rozwiązanie składającie się z dwóch pętli i używa licznika linii obrazu VCOUNT ($D40B). |
Wersja z dnia 22:40, 24 sie 2023
Oczekiwanie na vblank przy wyłączonym systemie nie jest takie trywialne. Systemowe przerwania są wyłączane, aby np. nie przeszkadzały np. w odgrywaniu sampli, lub innych zadań o nadzwyczajnym rygorze czasowym. Zaradzić może poniższe rozwiązanie składającie się z dwóch pętli i używa licznika linii obrazu VCOUNT ($D40B).
lda VCOUNT bmi *-3 lda VCOUNT bpl *-3
Ma ono tę zaletę, że można je wpleść w główną pętlę kodu tak, aby wyeliminować aktywne czekanie.
Można użyć wersji bez użycia akumulatora:
bit VCOUNT bmi *-3 bit VCOUNT bpl *-3