Programowanie: Czekanie na vblank przy wyłączonym systemie

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 11:28, 26 lis 2021
Jhusak (Dyskusja | wkład)
(Dodano nowy artykuł)
← Previous diff
Aktualna wersja
Jhusak (Dyskusja | wkład)
(Dodany wariant)
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>

Aktualna wersja

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
Personal tools