zmiana adresu programu, po wyjsciu z przerwania...
: 30 wrz 2017, 15:04
Witam Serdecznie.
szukam podpowiedzi w "konstrukcji" kodu.
szkielet kodu jest poniżej.
przerwanie wykonuje kod od etykiety "irq"
program który jest przerywany przerwaniem, znajduje się od etykiety "pusta"
moje pytanie jest takie. Jak po wyjściu z przerwania, zmienić adres wykonywania programu z "pusta".
Na adres etykiety "prog_1".
Czy można coś takiego wykonać, w trakcie wykonywania przerwania?
Moje rozumowanie jest takie. Że gdy wywoływane jest przerwanie. na stos odkładany jest adres w którym miejscu został przerwany program. gdy przerwanie kończy działanie. ze stosu pobierany jest adres gdzie wrócić do programu.
Problem jest z tym, że nie wiem jak się do tego dobrać.
Z góry dzięki za wszelkie podpowiedzi, i pozdrawiam serdecznie fanów C64...
szukam podpowiedzi w "konstrukcji" kodu.
szkielet kodu jest poniżej.
przerwanie wykonuje kod od etykiety "irq"
program który jest przerywany przerwaniem, znajduje się od etykiety "pusta"
moje pytanie jest takie. Jak po wyjściu z przerwania, zmienić adres wykonywania programu z "pusta".
Na adres etykiety "prog_1".
Czy można coś takiego wykonać, w trakcie wykonywania przerwania?
Moje rozumowanie jest takie. Że gdy wywoływane jest przerwanie. na stos odkładany jest adres w którym miejscu został przerwany program. gdy przerwanie kończy działanie. ze stosu pobierany jest adres gdzie wrócić do programu.
Problem jest z tym, że nie wiem jak się do tego dobrać.
Z góry dzięki za wszelkie podpowiedzi, i pozdrawiam serdecznie fanów C64...
Kod: Zaznacz cały
*=$1000
sei
lda #<irq
sta $0314
lda #>irq
sta $0315
cli
pusta
inc $0405
jmp pusta
;-------------------------------------------------
irq
jmp $ea31
;-------------------------------------------------
prog_1
inc $0400
jmp prog_1