VBL
From Atariki
Wersja z dnia 14:00, 13 sie 2005 Mikey (Dyskusja | wkład) (próba opisu VBLANK) ← Previous diff |
Wersja z dnia 14:15, 13 sie 2005 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
Przerwanie VBL (Vertical Blank Interrupt) generowane jest przez układ ANTIC po zakończeniu kreślenia obrazu, w momencie wygaszenia plamki. | Przerwanie VBL (Vertical Blank Interrupt) generowane jest przez układ ANTIC po zakończeniu kreślenia obrazu, w momencie wygaszenia plamki. | ||
- | Procedura obsługi tego przerwania dzieli sie na dwie fazy (I i II) z których druga wykonywana jest tylko wtedy kiedy w systemie nie zachodzą żadne | + | Procedura obsługi tego przerwania dzieli sie na dwie fazy (I i II) z których druga wykonywana jest tylko wtedy, kiedy w systemie nie zachodzą żadne krytyczne czasowo zdarzenia (sygnalizowane przez system flagą CRITIC), oraz nie trwa właśnie procedura obsługi [[IRQ]] (co sygnalizowane jest ustawioną flagą I zapisanego na stosie rejestru znaczników). |
- | krytyczne czasowo zdarzenia. (sygnalizowane przez system flagą CRITIC) | + | |
Faza I. | Faza I. | ||
+ | 1. Wartość liczników czasu rzeczywistego [0012-0014] jest zwiększana o jeden. | ||
- | 1. Wartosc czasu w komórkach [0012-0014] jest inkrementowana. | + | 2. Sprawdzany jest stan zmiennych obsługujących tzw. tryb przyciągania uwagi (attract mode). |
- | 2. Sprawdzany jest stan zmiennych obsługujących tryb ATTRACT | + | 3. Timer1 jest zmniejszany o jeden, a po dojściu do zera wywoływana jest procedura jego obsługi. |
- | + | ||
- | 3. Timer1 jest dekrementowany. | + | |
Linia 19: | Linia 17: | ||
1. Rejestry sprzętowe zapisywane są wartościami ze swoich cieni. | 1. Rejestry sprzętowe zapisywane są wartościami ze swoich cieni. | ||
- | 2. Timer2 jest dekrementowany. | + | 2. Timer2 jest zmniejszany o jeden. |
+ | |||
+ | 3. Timer3,4 i 5 są zmniejszane o jeden. | ||
- | 3. Timer3,4 i 5 są dekrementowane. | + | 4. Licznik autorepetycji klawiszy zostaje zmodyfikowany. |
- | 4. Licznik autorepetycji klawisza zostaje zmodyfikowany. | + | 5. Licznik czasu następnego odczytu z klawiatury jest zmniejszany o jeden. |
- | 5. Licznik czasu następnego odczytu z klawiatury jest dekrementowany. | + | 6. Następuje odczyt stanu dżojstików i umieszczenie w odpowiednich rejestrach odczytanych wartości. |
- | 6. Następuje odczyt dzojstików i umieszczenie w odpowiednich rejestrach odczytanych wartości. | + | [[Kategoria:Atari 8-bit]] |
Wersja z dnia 14:15, 13 sie 2005
Przerwanie VBL (Vertical Blank Interrupt) generowane jest przez układ ANTIC po zakończeniu kreślenia obrazu, w momencie wygaszenia plamki.
Procedura obsługi tego przerwania dzieli sie na dwie fazy (I i II) z których druga wykonywana jest tylko wtedy, kiedy w systemie nie zachodzą żadne krytyczne czasowo zdarzenia (sygnalizowane przez system flagą CRITIC), oraz nie trwa właśnie procedura obsługi IRQ (co sygnalizowane jest ustawioną flagą I zapisanego na stosie rejestru znaczników).
Faza I.
1. Wartość liczników czasu rzeczywistego [0012-0014] jest zwiększana o jeden.
2. Sprawdzany jest stan zmiennych obsługujących tzw. tryb przyciągania uwagi (attract mode).
3. Timer1 jest zmniejszany o jeden, a po dojściu do zera wywoływana jest procedura jego obsługi.
Faza II.
1. Rejestry sprzętowe zapisywane są wartościami ze swoich cieni.
2. Timer2 jest zmniejszany o jeden.
3. Timer3,4 i 5 są zmniejszane o jeden.
4. Licznik autorepetycji klawiszy zostaje zmodyfikowany.
5. Licznik czasu następnego odczytu z klawiatury jest zmniejszany o jeden.
6. Następuje odczyt stanu dżojstików i umieszczenie w odpowiednich rejestrach odczytanych wartości.