Programowanie: Odczyt sygnatury rozkazu BRK lub COP na 65C816

From Atariki

Jump to: navigation, search

Procedura obsługi przerwania BRK lub COP odczytuje tzw. sygnaturę rozkazu - czyli drugi bajt kodu operacyjnego, stanowiący parametr rozkazu. Rozwiązanie dla trybu natywnego 65C816 zaproponował Andy Werner.

     rep #$10     ;X/Y 16-bit
     sep #$20     ;A 8-bit
     .iw
     .ab
     phb          ;zachowaj bieżący DBR
     lda 5,s      ;pobierz najstarszy bajt 24-bitowego PC ze stosu
     dec          ;zmniejsz o 1
     pha          ;odłóż na stos
     plb          ;pobierz tę wartość do DBR
     ldy #$ffff   ;adresowanie z przekroczeniem granicy segmentu 64k
     lda (3,s),y  ;pobierz sygnaturę do akumulatora
     plb          ;przywróć DBR
     ...          ;tu dalsza część kodu
Personal tools