Dyskusja:Programowanie: Użycie OS-a przy wyłączonym ROM-ie

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 21:30, 6 gru 2019
Mono (Dyskusja | wkład)
(analiza)
← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)

Linia 3: Linia 3:
: 1. Jeśli PORTB.0=1 wtedy przerwania wchodzą przez wektor w ROM : 1. Jeśli PORTB.0=1 wtedy przerwania wchodzą przez wektor w ROM
: 2. Jeśli PORTB.0=0 wtedy w przypadku IRQ wywoływany jest irqint. : 2. Jeśli PORTB.0=0 wtedy w przypadku IRQ wywoływany jest irqint.
-: 2.1. Jeśli NMI wskoczy przed INC PORTB wtedy wywołana zostanie procedura nmiint, PORTB.0=0 więc INC PORTB włączy ROM, po powrocie DEC PORTB wyłączy ROM, wrócimy do irqint i zrobimy INC PORTB - ROM zostanie włączony a po powrocie DEC PORTB wyłączy ROM.+: 2.1. Jeśli NMI wskoczy przed INC PORTB wtedy wywołana zostanie procedura nmiint, PORTB.0=0 więc INC PORTB włączy ROM, po powrocie DEC PORTB z iret wyłączy ROM, wrócimy do irqint i zrobimy INC PORTB - ROM zostanie włączony a po powrocie DEC PORTB wyłączy ROM.
-: 2.2. Jeśli NMI wskoczy po INC PORTB wtedy wywołana zostanie procedura NMI z ROMu i żadne INC/DEC PORTB nie będzie wykonane; przerwanie się wykona, po powrocie do irqint zostanie zrobione DEC PORTB które wyłączy ROM.+: 2.2. Jeśli NMI wskoczy po INC PORTB wtedy wywołana zostanie procedura NMI z ROMu i żadne INC/DEC PORTB nie będzie wykonane; przerwanie się wykona, po powrocie do irqint wykona się procedura przerwania i w iret zostanie zrobione DEC PORTB które wyłączy ROM.
: Wydaje mi się, że wszystko jest w porządku. [[Użytkownik:Mono|Mono]] 22:30, 6 gru 2019 (CET) : Wydaje mi się, że wszystko jest w porządku. [[Użytkownik:Mono|Mono]] 22:30, 6 gru 2019 (CET)

Aktualna wersja

"inc PORTB" wygląda na problem w scenariuszu: NMI w trakcie IRQ. --0xF 19:09, 6 gru 2019 (CET)

Myślę głośno:
1. Jeśli PORTB.0=1 wtedy przerwania wchodzą przez wektor w ROM
2. Jeśli PORTB.0=0 wtedy w przypadku IRQ wywoływany jest irqint.
2.1. Jeśli NMI wskoczy przed INC PORTB wtedy wywołana zostanie procedura nmiint, PORTB.0=0 więc INC PORTB włączy ROM, po powrocie DEC PORTB z iret wyłączy ROM, wrócimy do irqint i zrobimy INC PORTB - ROM zostanie włączony a po powrocie DEC PORTB wyłączy ROM.
2.2. Jeśli NMI wskoczy po INC PORTB wtedy wywołana zostanie procedura NMI z ROMu i żadne INC/DEC PORTB nie będzie wykonane; przerwanie się wykona, po powrocie do irqint wykona się procedura przerwania i w iret zostanie zrobione DEC PORTB które wyłączy ROM.
Wydaje mi się, że wszystko jest w porządku. Mono 22:30, 6 gru 2019 (CET)
Personal tools