ASL ładne, ale to i tak nie załatwia całkowicie sprawy - trzeba by poprawić w ROMie procedurę NMI, bo tam nie mamy już takiego fajnego wektora VIMNMI (z NMIVEC możemy wszystko). Inaczej problem będzie z pierwszym IRQ wykonywanym po NMI.
ASL rozwiązuje problem: IRQ i NMI występują kolejno i obsługują to samo NMI. Trzeba dodać STA NMIRES w DLI oraz sprawdzenie b6 NMIST w VBLKI - czy na pewno mamy obsługiwać VBLKI, czy może IRQ już się tym zajmuje - czyli inne punkty wejścia do VBLKI z NMI, niż IRQ. Da się to zrobić bez wymiany ROMu.
Zakładam, że w obsłudze NMI nie robimy BRK, przynajmniej nie dopóki nie zrobimy STA NMIRES. ;)
a takie cos zalatwi sprawe?
SEI
BRK
.byte cokolwiek
CLI
? (pod warunkiem ze wlasna procka IRQ bedzie sprawdzac B wczesniej)
Ten SEI nic nie daje. Natomiast procka IRQ powinna sprawdzać BRK najpierw, a sprawdza na końcu.
Jeszcze trzeba obsłużyć BRK skaczące pod wektor NMI. W NMI trzeba obsłużyć kolejno oba te przerwania.