VBL
From Atariki
Wersja z dnia 14:15, 13 sie 2005 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 14:24, 13 sie 2005 Mikey (Dyskusja | wkład) Next diff → |
||
Linia 5: | Linia 5: | ||
Faza I. | Faza I. | ||
- | 1. Wartość liczników czasu rzeczywistego [0012-0014] jest zwiększana o jeden. | + | 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). | 2. Sprawdzany jest stan zmiennych obsługujących tzw. tryb przyciągania uwagi (attract mode). |
Wersja z dnia 14:24, 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.