przerwania
: 15 mar 2012, 15:55
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 ?
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 ?