RESET

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 14:38, 31 sie 2005
KMK (Dyskusja | wkład)

← Previous diff
Wersja z dnia 13:29, 27 paź 2005
KMK (Dyskusja | wkład)

Next diff →
Linia 1: Linia 1:
-Przerwanie 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 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 (tylko w XL/XE - w 400/800 klawisz RESET wywołuje przewanie [[NMI]]). 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)+#Flaga ciepłego startu (WARMST $0008) ustawiana jest na wartość 0 (fałsz - wykonujemy wszak zimny start)
- +#Sprawdzany jest stan kartridża. Jeśli włożono kart diagnostyczny - kontrola przekazywana jest do niego)
-2. Sprawdzany jest stan kartridża. Jeśli włożono kart diagnostyczny - kontrola przekazywana jest do niego)+#Określany jest adres konca pamięci RAM
- +#Zerowane są rejestry sprzętowe od $D000 do $D4FF (z wyjątkiem obszaru $D100 - $D1FF)
-3. Określany jest adres konca pamięci RAM+#Zerowana jest pamięć RAM od adresu $0008 do uprzednio obliczonego adresu końca RAM.
- +#Wektor skoku do programu użytkownika (DOSVEC $000A) ustawiany jest na adres procedury MEMO PAD (400/800) albo procedury SELF-TEST (XL/XE)
-4. Zerowane są rejestry sprzętowe od $D000 do $D4FF (z wyjątkiem obszaru $D100 - $D1FF)+#Marginesy ekranu znakowego ustawiane są na wartości 2 i 39
- +#Inicjalizowane są wektory przerwań.
-5. Zerowana jest pamięć RAM od adresu $0008 do uprzednio obliczonego adresu końca RAM.+#Adres najniższego wolnego bajtu pamięci (MEMLO $2E7) ustawiany jest na $0700
- +#Inicjalizowane są wszystkie rezydentne handlery CIO.
-6. Wektor skoku do programu użytkownika (DOSVEC $000A) ustawiany jest na adres procedury MEMO PAD (400/800) albo procedury SELF-TEST (XL/XE)+#Jeśli naciśnięto START, ustawiana jest flaga żądania startu z kasety (CKEY $004A)
- +#Tablica urządzeń CIO (HATABS) zostaje zainicjalizowana.
-7. Marginesy ekranu znakowego ustawiane są na wartości 2 i 39+#Jeśli włożony jest kartridż (inny niz diagnostyczny) - zostaje on zainicjalizowany.
- +#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).
-8. Inicjalizowane są wektory przerwań.+#Jeśli została ustawiona flaga żądania startu z kasety, następuje procedura startu z kasety.
- +#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).
-9. Adres najniższego wolnego bajtu pamięci (MEMLO $2E7) ustawiany jest na $0700+#Flaga zimnego startu zostaje skasowana.
- +#Jeśli włożono kartridż, system uruchamia go.
-10. Inicjalizowane są wszystkie rezydentne handlery CIO.+#Jeśli nie ma kartridża system uruchamia program pod adresem wskazywanym przez DOSVEC.
- +
-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 [[nowe urządzenia|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.+
Po pierwszym zimnym starcie każde następne naciśnięcie klawisza RESET powoduje tzw. ciepły start. Po pierwszym zimnym starcie każde następne naciśnięcie klawisza RESET powoduje tzw. ciepły start.
-1.Flaga ciepłego startu ustawiana jest na $FF (prawda)+#Flaga ciepłego startu ustawiana jest na $FF (prawda)
- +#Wykonywane są kroki 2-4 procedury zimnego startu.
-2.Wykonywane są kroki 2-4 procedury zimnego startu.+#Zerowany jest RAM w obszarach $0010-007F i $0200-$03FF
- +#Wykonywane są kroki 7-14 procedury zimnego startu.
-3.Zerowany jest RAM w obszarach $0010-007F i $0200-$03FF+#Jeśli nastąpił boot z kasety system skacze pod adres zapisany w wektorze CASINI $0002
- +#Jeśli nastąpił boot z dysku system skacze pod adres zapisany w wektorze DOSINI $000C
-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+
W pamięci komputera znajdują się znaczniki (np. CDST $0244), których zmiana powoduje przejście procedury ciepłego startu w zimny start. W pamięci komputera znajdują się znaczniki (np. CDST $0244), których zmiana powoduje przejście procedury ciepłego startu w zimny start.
[[Kategoria:Atari 8-bit]] [[Kategoria:Atari 8-bit]]

Wersja z dnia 13:29, 27 paź 2005

Przerwanie 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 (tylko w XL/XE - w 400/800 klawisz RESET wywołuje przewanie NMI). 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.

Po pierwszym zimnym starcie każde następne naciśnięcie klawisza RESET powoduje 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

W pamięci komputera znajdują się znaczniki (np. CDST $0244), których zmiana powoduje przejście procedury ciepłego startu w zimny start.

Personal tools