Programowanie: Czekanie na vblank przy wyłączonym systemie
From Atariki
(Różnice między wersjami)
Wersja z dnia 11:28, 26 lis 2021 Jhusak (Dyskusja | wkład) (Dodano nowy artykuł) ← Previous diff |
Wersja z dnia 09:15, 19 wrz 2022 Jhusak (Dyskusja | wkład) (Dodany wariant) Next diff → |
||
Linia 10: | Linia 10: | ||
Ma ono tę zaletę, że można je wpleść w główną pętlę kodu tak, aby wyeliminować aktywne czekanie. | 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: | ||
+ | |||
+ | <pre> | ||
+ | bit VCOUNT | ||
+ | bmi *-3 | ||
+ | bit VCOUNT | ||
+ | bpl *-3 | ||
+ | </pre> |
Wersja z dnia 09:15, 19 wrz 2022
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