VBL

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
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.