mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-26 06:29:31 +00:00
IENTAUX/IENTMAIN macros for IRQ handlers. No CLI!
This commit is contained in:
parent
0d93ec933c
commit
5313c6188e
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
19
applecorn.s
19
applecorn.s
|
@ -128,6 +128,25 @@ ENTMAIN MAC
|
||||||
CLI ; Re-enable IRQ after XFER
|
CLI ; Re-enable IRQ after XFER
|
||||||
EOM
|
EOM
|
||||||
|
|
||||||
|
* Macro called on re-entry to aux memory
|
||||||
|
* For use in interrupt handlers (no CLI!)
|
||||||
|
IENTAUX MAC
|
||||||
|
LDX $0101 ; Recover alt SP
|
||||||
|
TXS
|
||||||
|
LDX STRTBCKL
|
||||||
|
STX STRTL
|
||||||
|
LDX STRTBCKH
|
||||||
|
STX STRTH
|
||||||
|
EOM
|
||||||
|
|
||||||
|
* Macro called on re-entry to main memory
|
||||||
|
* For use in interrupt handlers (no CLI!)
|
||||||
|
IENTMAIN MAC
|
||||||
|
TXS ; Main SP already in X
|
||||||
|
LDX $C081 ; Bank in ROM
|
||||||
|
LDX $C081
|
||||||
|
EOM
|
||||||
|
|
||||||
* Enable writing to main memory (for code running in aux)
|
* Enable writing to main memory (for code running in aux)
|
||||||
WRTMAIN MAC
|
WRTMAIN MAC
|
||||||
SEI ; Keeps IRQ handler easy
|
SEI ; Keeps IRQ handler easy
|
||||||
|
|
|
@ -173,15 +173,15 @@ IRQBRKHDLR
|
||||||
|
|
||||||
:IRQ >>> XF2MAIN,A2IRQ ; Bounce to Apple IRQ handler
|
:IRQ >>> XF2MAIN,A2IRQ ; Bounce to Apple IRQ handler
|
||||||
IRQBRKRET
|
IRQBRKRET
|
||||||
>>> ENTAUX
|
>>> IENTAUX ; IENTAUX does not do CLI
|
||||||
PLA ; TODO: Pass on to IRQ1V
|
PLA ; TODO: Pass on to IRQ1V
|
||||||
TAX
|
TAX
|
||||||
PLA
|
PLA
|
||||||
NULLRTI RTI
|
NULLRTI RTI
|
||||||
|
|
||||||
* Invoked from GSBRK in main memory. On IIgs only.
|
* Invoked from GSBRK in main memory. On IIgs only.
|
||||||
GSBRKAUX >>> ENTAUX
|
GSBRKAUX >>> IENTAUX ; IENTAUX does not do CLI
|
||||||
JMP IRQBRKHDLR ; See if this works!!
|
JMP IRQBRKHDLR
|
||||||
|
|
||||||
PRERR LDY #$01
|
PRERR LDY #$01
|
||||||
PRERRLP LDA (FAULT),Y
|
PRERRLP LDA (FAULT),Y
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
* Trampoline in main memory used by aux memory IRQ handler
|
* Trampoline in main memory used by aux memory IRQ handler
|
||||||
* to invoke Apple II / ProDOS IRQs in main memory
|
* to invoke Apple II / ProDOS IRQs in main memory
|
||||||
A2IRQ >>> ENTMAIN
|
A2IRQ >>> IENTMAIN ; IENTMAIN does not do CLI
|
||||||
JSR A2IRQ2
|
JSR A2IRQ2
|
||||||
>>> XF2AUX,IRQBRKRET
|
>>> XF2AUX,IRQBRKRET
|
||||||
A2IRQ2 PHP ; Fake things to look like IRQ
|
A2IRQ2 PHP ; Fake things to look like IRQ
|
||||||
|
|
Loading…
Reference in New Issue
Block a user