Dyskusja:Programowanie: Użycie OS-a przy wyłączonym ROM-ie
From Atariki
(Różnice między wersjami)
Wersja z dnia 18:09, 6 gru 2019 0xF (Dyskusja | wkład) (problem) ← Previous diff |
Wersja z dnia 21:30, 6 gru 2019 Mono (Dyskusja | wkład) (analiza) Next diff → |
||
Linia 1: | Linia 1: | ||
"inc PORTB" wygląda na problem w scenariuszu: NMI w trakcie IRQ. --[[Użytkownik:0xF|0xF]] 19:09, 6 gru 2019 (CET) | "inc PORTB" wygląda na problem w scenariuszu: NMI w trakcie IRQ. --[[Użytkownik:0xF|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 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. | ||
+ | : Wydaje mi się, że wszystko jest w porządku. [[Użytkownik:Mono|Mono]] 22:30, 6 gru 2019 (CET) |
Wersja z dnia 21:30, 6 gru 2019
"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 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.
- Wydaje mi się, że wszystko jest w porządku. Mono 22:30, 6 gru 2019 (CET)