Improvements to BRK/IRQ handler.

This commit is contained in:
Bobbi Webber-Manners 2021-09-29 18:23:49 -04:00
parent 3393d4847b
commit efb57d5c37
3 changed files with 9 additions and 8 deletions

Binary file not shown.

View File

@ -56,9 +56,6 @@ WRCHHND PHA
PHX
PHY
* TO DO Check any output redirections
* TSX
* LDA $103,X
* PHA
JSR OUTCHAR
* TO DO Check any printer output

View File

@ -382,22 +382,26 @@ GSBRKAUX >>> IENTAUX ; IENTAUX does not do CLI
IRQBRKHDLR PHA
* Mustn't enable IRQs within the IRQ handler
* Do not use WRTMAIN/WRTAUX macros
BIT $C014
STA $C004 ; Write to main memory
STA $45 ; $45=A for ProDOS IRQ handlers
BPL :NOTAUX
STA $C005 ; Write to aux memory
TXA
:NOTAUX TXA
PHA
CLD
TSX
LDA $103,X ; Get PSW from stack
INX ; Safe way to do LDA $103,X
INX
INX
LDA $0100,X ; Get PSW from stack
AND #$10
BEQ :IRQ ; IRQ
SEC
LDA $0104,X
LDA $0101,X
SBC #$01
STA FAULT
LDA $0105,X
LDA $0102,X
SBC #$00
STA FAULT+1
PLA