Dyskusja:Programowanie: Jak wyłączyć ROM systemu

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 20:35, 13 wrz 2008
Macgyver (Dyskusja | wkład)

← Previous diff
Wersja z dnia 20:37, 13 wrz 2008
Macgyver (Dyskusja | wkład)

Next diff →
Linia 6: Linia 6:
sądzę, że z formalnego punktu widzenia lepiej posługiwać się ostatnim adresem $ffff, a nie $fff9 - po pierwsze dlatego, że rozmawiamy o specyficznej architekturze Atari, a więc skupiamy się na sterowaniu dostępem do pamięci w Atari a nie znaczeniem tych komórek dla 6502, po drugie - tu również mamy do czynienia ze specyfiką Atari: ignorując przerwania IRQ możemy dowolnie korzystać z komórki od jego wektora - przerwań NMI nie zignorujemy, ale w Atari możemy zablokować ich źródło, zatem komórki są do naszego wykorzystania, pozostaje wektor RESET, którego wartość w RAM-ie i tam może być dowolna i ze względu na specyfikę konstrukcji Atari 6502 nigdy nie korzysta z komórek RAM-u "pod ROM" dla wektora RESET - bowiem podczas sprzętowego RESET-a przywracane są domyślne ustawienia układu PIA, który ustawia bity PORTB ($d301) tak, że ZAWSZE po resecie w tym obszarze będzie ROM i obsługa "reseta" nastąpi poprzez skok poprzez wartości umieszczone w ROM-ie. --[[Użytkownik:Macgyver|Macgyver]] 16:55, 13 wrz 2008 (CEST) sądzę, że z formalnego punktu widzenia lepiej posługiwać się ostatnim adresem $ffff, a nie $fff9 - po pierwsze dlatego, że rozmawiamy o specyficznej architekturze Atari, a więc skupiamy się na sterowaniu dostępem do pamięci w Atari a nie znaczeniem tych komórek dla 6502, po drugie - tu również mamy do czynienia ze specyfiką Atari: ignorując przerwania IRQ możemy dowolnie korzystać z komórki od jego wektora - przerwań NMI nie zignorujemy, ale w Atari możemy zablokować ich źródło, zatem komórki są do naszego wykorzystania, pozostaje wektor RESET, którego wartość w RAM-ie i tam może być dowolna i ze względu na specyfikę konstrukcji Atari 6502 nigdy nie korzysta z komórek RAM-u "pod ROM" dla wektora RESET - bowiem podczas sprzętowego RESET-a przywracane są domyślne ustawienia układu PIA, który ustawia bity PORTB ($d301) tak, że ZAWSZE po resecie w tym obszarze będzie ROM i obsługa "reseta" nastąpi poprzez skok poprzez wartości umieszczone w ROM-ie. --[[Użytkownik:Macgyver|Macgyver]] 16:55, 13 wrz 2008 (CEST)
-poza tym specyfika systemu atari wymaga wyłączenia przerwań na czas włączenia w obszarze c000-cfff i d800-ffff RAM-u, i komórki fff9-ffff i tak są widoczne jako zwykła pamięc, zatem argumentacja, że "zastosowanie jest bardzo wąskie" i dlatego należy podawać adres końca fff9, a nie ffff jest według mnie wprowadza dużo zbędnego zamieszania.+poza tym specyfika systemu atari wymaga wyłączenia przerwań na czas włączenia w obszarze c000-cfff i d800-ffff RAM-u, i komórki fff9-ffff i tak są widoczne jako zwykła pamięc, zatem argumentacja, że "zastosowanie jest bardzo wąskie" i dlatego należy podawać adres końca fff9, a nie ffff według mnie wprowadza dużo zbędnego zamieszania. Pamięć jest w pełni mapowalna i dostępna dla CPU (Antica zresztą też), zatem nie używajmy oznaczenia fff9 tylko ffff --[[Użytkownik:Macgyver|Macgyver]] 22:37, 13 wrz 2008 (CEST)

Wersja z dnia 20:37, 13 wrz 2008

(obszary: $c000-$cfff oraz $d800-$fff9) - do $fff9-$ffff też mamy dostęp. Xxl 08:44, 11 wrz 2008 (CEST)

fakt, jednakze zastosowanie tych 6-ciu bajtow jest bardzo waskie. Bob_er 13:25, 13 wrz 2008 (CEST)


sądzę, że z formalnego punktu widzenia lepiej posługiwać się ostatnim adresem $ffff, a nie $fff9 - po pierwsze dlatego, że rozmawiamy o specyficznej architekturze Atari, a więc skupiamy się na sterowaniu dostępem do pamięci w Atari a nie znaczeniem tych komórek dla 6502, po drugie - tu również mamy do czynienia ze specyfiką Atari: ignorując przerwania IRQ możemy dowolnie korzystać z komórki od jego wektora - przerwań NMI nie zignorujemy, ale w Atari możemy zablokować ich źródło, zatem komórki są do naszego wykorzystania, pozostaje wektor RESET, którego wartość w RAM-ie i tam może być dowolna i ze względu na specyfikę konstrukcji Atari 6502 nigdy nie korzysta z komórek RAM-u "pod ROM" dla wektora RESET - bowiem podczas sprzętowego RESET-a przywracane są domyślne ustawienia układu PIA, który ustawia bity PORTB ($d301) tak, że ZAWSZE po resecie w tym obszarze będzie ROM i obsługa "reseta" nastąpi poprzez skok poprzez wartości umieszczone w ROM-ie. --Macgyver 16:55, 13 wrz 2008 (CEST)

poza tym specyfika systemu atari wymaga wyłączenia przerwań na czas włączenia w obszarze c000-cfff i d800-ffff RAM-u, i komórki fff9-ffff i tak są widoczne jako zwykła pamięc, zatem argumentacja, że "zastosowanie jest bardzo wąskie" i dlatego należy podawać adres końca fff9, a nie ffff według mnie wprowadza dużo zbędnego zamieszania. Pamięć jest w pełni mapowalna i dostępna dla CPU (Antica zresztą też), zatem nie używajmy oznaczenia fff9 tylko ffff --Macgyver 22:37, 13 wrz 2008 (CEST)

Personal tools