@@ 9,54 9,53 @@ TEXT start(SB),$0
/* never returns */
/*
- * standard traps
+ * first 16 ``standard'' traps
*/
-
TEXT trap0(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $0
JMP alltrap
TEXT trap1(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $1
JMP alltrap
TEXT trap2(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $2
JMP alltrap
TEXT trap3(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $3
JMP alltrap
TEXT trap4(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $4
JMP alltrap
TEXT trap5(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $5
JMP alltrap
TEXT trap6(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $6
JMP alltrap
TEXT trap7(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $7
JMP alltrap
@@ 67,13 66,13 @@ TEXT trap8(SB),$0
TEXT trap9(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $9
JMP alltrap
TEXT trap10(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $10
JMP alltrap
@@ 99,22 98,37 @@ TEXT trap14(SB),$0
TEXT trap15(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $15
JMP alltrap
+/*
+ * invalid trap
+ */
TEXT invtrap(SB),$0
- PUSHL $0
+ PUSHL $0 /* put on an error code */
PUSHL $16
JMP alltrap
+/*
+ * common trap code
+ */
alltrap:
+
PUSHAL
CALL trap(SB)
POPAL
+ ADDL $#8,SP /* pop the trap and error codes */
IRETL
+/*
+ * stubs
+ */
TEXT main(SB),$0
RET
+
+TEXT trap(SB),$0
+
+ RET