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
