A BRK kezelője szerintem visszaállítja a KERNAL ROM-t. Van a PLA-nak egy KERNAL nevű kimenete, ami akkor lesz aktív, ha $fc00-$ffff címeket szólítasz meg és ez minden ROM olvasásnál ebben a címtartományban a KERNAL kiválasztását kényszeríti. Az IRQ kezelő meg így indul:
. FCB3 48 PHA
. FCB4 8A TXA
. FCB5 48 PHA
. FCB6 98 TYA
. FCB7 48 PHA
. FCB8 8D D0 FD STA $FDD0
. FCBB 4C 00 CE JMP $CE00
$ce00-nál megnézi, hogy BRK volt-e:
. CE00 BA TSX
. CE01 BD 04 01 LDA $0104,X
. CE04 29 10 AND #$10
. CE06 D0 03 BNE $CE0B
. CE08 6C 14 03 JMP ($0314)
. CE0B 6C 16 03 JMP ($0316)
Most azt hirtelen nem találom, hogy mit csinál a BRK kezelő a ROM bankkal, de az IRQ vége biztosan az, hogy
. FCC9 A6 FB LDX $FB
. FCCB 9D D0 FD STA $FDD0,X
Tehát ha nem tiltod le a megszakításokat és JMP * -al fejezed be a programodat, akkor valaki később garantáltan visszaállítja a $0-s ROM bankot (BASIC+KERNAL). Ha $FB-re $05-öt írsz, akkor a megszakítás végén az visszaállítja neked a saját bankodat. Kivéve, ha a BRK rutin valahol $0-t ír a $FB-re.