mirror of
https://github.com/mgcaret/of816.git
synced 2024-06-04 01:29:30 +00:00
46 lines
1.4 KiB
ArmAsm
46 lines
1.4 KiB
ArmAsm
.p816
|
|
.a16
|
|
.i16
|
|
.include "macros.inc"
|
|
|
|
.segment "ROMBOOT"
|
|
.proc romboot
|
|
jml f:$200000
|
|
.endproc
|
|
|
|
.proc emuirq
|
|
pha
|
|
lda 2,s
|
|
and #%00100000
|
|
bne romboot ; if BRK, handle like we reset.
|
|
pla ; in case we want to RTI or something in the future
|
|
; fall-through
|
|
.endproc
|
|
|
|
.proc die
|
|
wdm $FF ; GoSXB will exit
|
|
hang: bra hang ; Anything else will hang
|
|
.endproc
|
|
|
|
.segment "VECTORS"
|
|
.proc vectors
|
|
; native mode vectors
|
|
.word $FFFF ; FFE0 - reserved
|
|
.word $FFFF ; FFE2 - reserved
|
|
.word .loword(die) ; FFE4 - COP
|
|
.word .loword(romboot) ; FFE6 - BRK
|
|
.word .loword(die) ; FFE8 - ABORT
|
|
.word .loword(romboot) ; FFEA - NMI
|
|
.word $FFFF ; FFEC - reserved
|
|
.word .loword(die) ; FFEE - IRQ
|
|
; emulation mode vectors
|
|
.word $FFFF ; FFF0 - reserved
|
|
.word $FFFF ; FFF2 - reserved
|
|
.word .loword(die) ; FFF4 - COP
|
|
.word $FFFF ; FFF6 - reserved
|
|
.word .loword(die) ; FFF8 - ABORT
|
|
.word .loword(romboot) ; FFFA - NMI
|
|
.word .loword(romboot) ; FFFC - RESET
|
|
.word .loword(emuirq) ; FFFE - IRQ/BRK
|
|
.endproc
|