3 /* Handler for TRIP #0 */
8 /* Handler for exception D #10 integer Divide check */
13 /* Handler for exception V #20 integer oVerflow */
18 /* Handler for exception W #30 float-to-fix overfloW */
23 /* Handler for exception I #40 Invalid operation */
28 /* Handler for exception O #50 floating Overflow */
33 /* Handler for exception U #60 floating Underflow */
38 /* Handler for exception Z #70 floating division by Zero */
43 /* Handler for exception X #80 floating ineXact */
52 .global interruptvector
55 pushj 255,1F/* To allocate some free variables */
56 put rJ,$255 /* Restore rJ */
57 nxor $255,$0,$0 /* Set up new interrupt mask (enable all) */
60 /* Must preserve $255 */
61 1H get $0,rQ /* Get all pending interrupts */
63 and $2,$0,$1 /* Clears just the highest priority one */
66 /* Calculate the index of the highest priority and pass it to the interrupt handler */
70 triphandler get $250,rA
76 excdhandler get $250,rA
78 excvhandler get $250,rA
80 excwhandler get $250,rA
82 excihandler get $250,rA
84 excohandler get $250,rA
86 excuhandler get $250,rA
88 exczhandler get $250,rA
90 excxhandler get $250,rA
93 trapvector pushj 255,traphandler
99 #ifndef USER_TRAPHANDLER