Witam,
zauważyłem że są różne sposoby na korzystanie z przerwań IRQ (nie biorę pod uwagę źródła VIC czy CIA czy cokolwiek innego tylko procedurę)
1. wpisywanie wektora pod $03414 $0315 i skok JMP$EA31
2 wpisywanie wektora pod $03414 $0315 i PLA TAY PLA TAX PLA +RTI
3 wpisywanie wektora pod $FFFE $FFFF wyłaczanie romu przez $0001
na początku procedury (spod adresu z wektora IRQ) PLA TXA PLA TYA PLA (potem program wykonywany przerwaniem) i PLA TAY PLA TAX PLA +RTI
rozumiem że trzecim sposobem mam więcej pamięci na program albo grafikę a do czego i dlaczego są stosowane 1. i 2. ?
Czy są jeszcze inne sposoby na przerwania ?
domyślam się że stos jest używany do tego aby nie stracić wątku (wartości rejestrów) w programie z którego procesor będzie wyrwany sygnałem przerwania do obsługi programu przypisanego do wektora przerwerwań ale czy ma to jakieś znaczenie kiedy po CLI następuje zapętlenie JMP i tu wartość rejestrów nie jest modyfikowana ?
przerwania
Re: przerwania
To wszystko jedno i to samo. Po prostu przerwania zawsze wywołują wektor zapisany pod $fffe/ff. Tylko jak masz włączony ROM to tam jest adres procedury obsługi IRQ z ROMu, która z kolei wywołuje procedurę uzytkownika której wektore jest $0314/15.at0mic pisze:Witam,
1. wpisywanie wektora pod $03414 $0315 i skok JMP$EA31
2 wpisywanie wektora pod $03414 $0315 i PLA TAY PLA TAX PLA +RTI
3 wpisywanie wektora pod $FFFE $FFFF wyłaczanie romu przez $0001
Czy są jeszcze inne sposoby na przerwania ?
Co do opcji 1/2 to to takze jest to samo zrób sobie disasemblacje co masz w romie pod adresem $EA31. Bodajże tylko ea31 zawiera jeszcze obsługę odczytu klawiatury, więc jak nie potrzebujesz bufora klawiature etc. to wersja z RTI jest szybsza.
Do co zapisywania na stosie i pobierania potem rejestrów to faktycznie w wypadku gdy tylko w głownym programie się w kółko petlisz to to nie ma znaczenia.
W każdym innym już ma
Elysium vs Arise. Czym byłoby dobro bez zła?
dzięki za pomoc!
ten artykuł który napisał Skull - (masz łeb jak sklep), ja wymiękam, już kiedyś go czytałem ale pamięć mi trochę przyprószyło mgłą zapomnienia więc dzisiaj siedziałem na tym jakieś 3 godziny. Wszystko rozumiem do miejsca gdzie są NMI razem z IRQ mieszane - teoria niby też zrozumiała ale w kodzie się gubię i po 10 razy sprawdzać muszę co jaki bit w której komórce CIA ma robić a i tak chyba za trudne jest dla mnie dodawanie i odejmowanie jak dochodzi samo-modyfikujący się kod ze skokami warunkowymi.
Jeszcze ze 20 razy to przeczytam + trochę eksperymentów i może załapię.
ten artykuł który napisał Skull - (masz łeb jak sklep), ja wymiękam, już kiedyś go czytałem ale pamięć mi trochę przyprószyło mgłą zapomnienia więc dzisiaj siedziałem na tym jakieś 3 godziny. Wszystko rozumiem do miejsca gdzie są NMI razem z IRQ mieszane - teoria niby też zrozumiała ale w kodzie się gubię i po 10 razy sprawdzać muszę co jaki bit w której komórce CIA ma robić a i tak chyba za trudne jest dla mnie dodawanie i odejmowanie jak dochodzi samo-modyfikujący się kod ze skokami warunkowymi.
Jeszcze ze 20 razy to przeczytam + trochę eksperymentów i może załapię.
At0mic