Przerwania: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
BRK to jest IRQ; oraz inne poprawki
Linia 1: Linia 1:
Procesor 6502 obsługuje 4 typy przerwań:
Procesor 6502 obsługuje 3 typy przerwań:


- sprzętowe przerwanie CHIP RESET  
* sprzętowe przerwanie CHIP RESET  


- IRQ (żądanie przerwania - maskowalne)
* [[IRQ]] (żądanie przerwania - maskowalne)


- NMI (żądanie przerwania - niemaskowalne)
* [[NMI]] (żądanie przerwania - niemaskowalne)


- programowy rozkaz/żądanie przerwania (rozkaz BRK)


===CHIP RESET===


'''1.CHIP RESET'''


 
Przerwanie CHIP RESET jest wywoływane przez podanie procesorowi sygnału RST. Logika na płycie Atari robi to automatycznie po włączeniu zasilania a użytkownik może wywołać to przerwanie naciskając przycisk RESET. Domyślnym zachowaniem systemu po wywołaniu takiego przerwania jest skok do procedury zimnego startu.Procedura zimnego startu wygląda tak:
Przerwanie CHIP RESET jest wywoływane przez podanie procesorowi sygnału RST. Logika na płycie Atari robi to automatycznie po włączeniu zasilania
 
a użytkownik może wywołać to przerwanie naciskając przycisk RESET. Domyślnym zachowaniem systemu po wywołaniu takiego przerwania jest skok do  
 
procedury zimnego startu.Procedura zimnego startu wygląda tak:


1. Flaga ciepłego startu (WARMST $0008) ustawiana jest na wartość 0 (fałsz - wykonujemy wszak zimny start)
1. Flaga ciepłego startu (WARMST $0008) ustawiana jest na wartość 0 (fałsz - wykonujemy wszak zimny start)
Linia 35: Linia 29:
8. Inicjalizowane są wektory przerwań.
8. Inicjalizowane są wektory przerwań.


9. Adres najniższego wolnego bajta pamięci (MEMLO $2E7) ustawiany jest na $0700
9. Adres najniższego wolnego bajtu pamięci (MEMLO $2E7) ustawiany jest na $0700


10. Inicjalizowane są wszystkie rezydentne handlery CIO.
10. Inicjalizowane są wszystkie rezydentne handlery CIO.
Linia 45: Linia 39:
13. Jeśli włożony jest kartridż (inny niz diagnostyczny) - zostaje on zainicjalizowany.
13. Jeśli włożony jest kartridż (inny niz diagnostyczny) - zostaje on zainicjalizowany.


14. Kanał we/wy #0 zostaje otworzony dla edytora ekranowego. Adres najwyższego wolnego bajta pamięci (MEMTOP $2E5) zostaje ustawiony na ostatni  
14. Kanał we/wy #0 zostaje otworzony dla edytora ekranowego. MEMTOP ($02E5) zostaje ustawiony na pierwszy bajt po końcu pamięci RAM. Następuje otwarcie ekranu (po tej operacji MEMTOP wskazuje ostatni wolny bajt przed pamięcią ekranu).
bajt przed pamięcią ekranu. Następuje zainicjowanie ekranu.


15. Jeśli została ustawiona flaga żądania startu z kasety, następuje procedura startu z kasety.
15. Jeśli została ustawiona flaga żądania startu z kasety, następuje procedura startu z kasety.


16. Jeśli nie ma kartridża albo nie zabrania on tego, następuje procedura startu z dysku.
16. Jeśli nie ma kartridża albo nie zabrania on tego, następuje procedura startu z dysku, a potem z [[nowe urządzenia|nowych urządzeń]] (to tylko w XL/XE).


17. Flaga zimnego startu zostaje skasowana.
17. Flaga zimnego startu zostaje skasowana.
Linia 62: Linia 55:




1.Flaga ciepłego startu ustawiana jest na $7F (prawda)
1.Flaga ciepłego startu ustawiana jest na $FF (prawda)


2.Wykonywane są kroki 2-4 procedury zimnego startu.
2.Wykonywane są kroki 2-4 procedury zimnego startu.
Linia 70: Linia 63:
4.Wykonywane są kroki 7-14 procedury zimnego startu.
4.Wykonywane są kroki 7-14 procedury zimnego startu.


5.Jeśli nastąpił boot z kasety system skacze pod adres zapisany w wektorze $CASINI $0002
5.Jeśli nastąpił boot z kasety system skacze pod adres zapisany w wektorze CASINI $0002
 
6.Jeśli nastąpił boot z dysku system skacze pod adres zapisany w wektorze $DOSINI $000C


6.Jeśli nastąpił boot z dysku system skacze pod adres zapisany w wektorze DOSINI $000C




'''2. NMI'''
===NMI===
 
Przerwania niemaskowalne są to zgłoszenia przerwań których, w przeciwieństwie do przerwań IRQ procesor nie może zignorować (zamaskować)
Innymi słowy, procesor zawsze musi zareagować na zgłoszenie takiego przerwania.


Przerwania niemaskowalne są to zgłoszenia przerwań których, w przeciwieństwie do przerwań IRQ procesor nie może zignorować (zamaskować). Innymi słowy, procesor zawsze musi zareagować na zgłoszenie takiego przerwania.


W komputerze Atari jedynym źródłem przerwań NMI jest układ ANTIC. W serii 400/800 również naciśnięcie SYSTEM RESET.
W komputerze Atari jedynym źródłem przerwań NMI jest układ ANTIC. W serii 400/800 również naciśnięcie SYSTEM RESET.
Linia 86: Linia 76:
Antic zgłasza 2 przerwania NMI - przerwanie DLI oraz przerwanie VBLANK.
Antic zgłasza 2 przerwania NMI - przerwanie DLI oraz przerwanie VBLANK.


Zob. [[NMI]]
===IRQ===


'''3. IRQ'''
Zob. [[IRQ]]


'''4. BRK'''
[[Kategoria:Atari 8-bit]]


{{stub}}
{{stub}}

Wersja z 13 sie 2005, 15:19

Procesor 6502 obsługuje 3 typy przerwań:

  • sprzętowe przerwanie CHIP RESET
  • IRQ (żądanie przerwania - maskowalne)
  • NMI (żądanie przerwania - niemaskowalne)


CHIP RESET

Przerwanie CHIP RESET jest wywoływane przez podanie procesorowi sygnału RST. Logika na płycie Atari robi to automatycznie po włączeniu zasilania a użytkownik może wywołać to przerwanie naciskając przycisk RESET. Domyślnym zachowaniem systemu po wywołaniu takiego przerwania jest skok do procedury zimnego startu.Procedura zimnego startu wygląda tak:

1. Flaga ciepłego startu (WARMST $0008) ustawiana jest na wartość 0 (fałsz - wykonujemy wszak zimny start)

2. Sprawdzany jest stan kartridża. Jeśli włożono kart diagnostyczny - kontrola przekazywana jest do niego)

3. Określany jest adres konca pamięci RAM

4. Zerowane są rejestry sprzętowe od $D000 do $D4FF (z wyjątkiem obszaru $D100 - $D1FF)

5. Zerowana jest pamięć RAM od adresu $0008 do uprzednio obliczonego adresu końca RAM.

6. Wektor skoku do programu użytkownika (DOSVEC $000A) ustawiany jest na adres procedury MEMO PAD (400/800) albo procedury SELF-TEST (XL/XE)

7. Marginesy ekranu znakowego ustawiane są na wartości 2 i 39

8. Inicjalizowane są wektory przerwań.

9. Adres najniższego wolnego bajtu pamięci (MEMLO $2E7) ustawiany jest na $0700

10. Inicjalizowane są wszystkie rezydentne handlery CIO.

11. Jeśli naciśnięto START, ustawiana jest flaga żądania startu z kasety (CKEY $004A)

12. Tablica urządzeń CIO (HATABS) zostaje zainicjalizowana.

13. Jeśli włożony jest kartridż (inny niz diagnostyczny) - zostaje on zainicjalizowany.

14. Kanał we/wy #0 zostaje otworzony dla edytora ekranowego. MEMTOP ($02E5) zostaje ustawiony na pierwszy bajt po końcu pamięci RAM. Następuje otwarcie ekranu (po tej operacji MEMTOP wskazuje ostatni wolny bajt przed pamięcią ekranu).

15. Jeśli została ustawiona flaga żądania startu z kasety, następuje procedura startu z kasety.

16. Jeśli nie ma kartridża albo nie zabrania on tego, następuje procedura startu z dysku, a potem z nowych urządzeń (to tylko w XL/XE).

17. Flaga zimnego startu zostaje skasowana.

18. Jeśli włożono kartridż, system uruchamia go.

19. Jeśli nie ma kartridża system uruchamia program pod adresem wskazywanym przez DOSVEC.


W przypadku kiedy flaga zimnego startu zostala zmodyfikowana przez załadowany program, przerwanie CHIP RESET może wywołać tzw. ciepły start.


1.Flaga ciepłego startu ustawiana jest na $FF (prawda)

2.Wykonywane są kroki 2-4 procedury zimnego startu.

3.Zerowany jest RAM w obszarach $0010-007F i $0200-$03FF

4.Wykonywane są kroki 7-14 procedury zimnego startu.

5.Jeśli nastąpił boot z kasety system skacze pod adres zapisany w wektorze CASINI $0002

6.Jeśli nastąpił boot z dysku system skacze pod adres zapisany w wektorze DOSINI $000C


NMI

Przerwania niemaskowalne są to zgłoszenia przerwań których, w przeciwieństwie do przerwań IRQ procesor nie może zignorować (zamaskować). Innymi słowy, procesor zawsze musi zareagować na zgłoszenie takiego przerwania.

W komputerze Atari jedynym źródłem przerwań NMI jest układ ANTIC. W serii 400/800 również naciśnięcie SYSTEM RESET.

Antic zgłasza 2 przerwania NMI - przerwanie DLI oraz przerwanie VBLANK.

Zob. NMI

IRQ

Zob. IRQ


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.