summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-06-18 19:28:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-06-24 11:36:28 +0200
commit7a140e2ed5b2085823f91a726b580cee485e7159 (patch)
tree7e2ccce8cb560e27c1ea34ed011c1d6b387260da
parentscore: Move _ISR_Vector_table[] to separate file (diff)
downloadrtems-7a140e2ed5b2085823f91a726b580cee485e7159.tar.bz2
bsps/sparc: Add a symbol for each trap table entry
This makes it easier to review start.o and set break points to trap table entries. This change was checked by inspecting the trap table in start.o with objdump. Update #4458.
-rw-r--r--bsps/sparc/shared/start/start.S359
1 files changed, 264 insertions, 95 deletions
diff --git a/bsps/sparc/shared/start/start.S b/bsps/sparc/shared/start/start.S
index 13c3cffc00..9bdc752fa2 100644
--- a/bsps/sparc/shared/start/start.S
+++ b/bsps/sparc/shared/start/start.S
@@ -23,10 +23,13 @@
#define START_LEON3_ENABLE_SMP
#endif
+#define TRAP_SYM(_vector) SYM(trap_##_vector)
+
/*
* Unexpected trap will halt the processor by forcing it to error state
*/
-#define BAD_TRAP \
+#define BAD_TRAP(_vector) \
+ TRAP_SYM(_vector):; \
ta 0; \
nop; \
nop; \
@@ -81,7 +84,7 @@
* Software trap. Treat as BAD_TRAP for the time being...
*/
-#define SOFT_TRAP BAD_TRAP
+#define SOFT_TRAP(_vector) BAD_TRAP(_vector)
.section ".text"
PUBLIC(start)
@@ -105,73 +108,143 @@ start:
SYM(trap_table):
RTRAP( 0, SYM(hard_reset) ); ! 00 reset trap
- BAD_TRAP; ! 01 instruction access
+ BAD_TRAP(0x01) ! 01 instruction access
! exception
- BAD_TRAP; ! 02 illegal instruction
- BAD_TRAP; ! 03 privileged instruction
+ BAD_TRAP(0x02) ! 02 illegal instruction
+ BAD_TRAP(0x03) ! 03 privileged instruction
#if defined(SPARC_USE_LAZY_FP_SWITCH)
+TRAP_SYM(0x04):
FPDIS_TRAP(SYM(syscall_lazy_fp_switch)); ! 04 fp disabled
#else
- BAD_TRAP; ! 04 fp disabled
+ BAD_TRAP(0x04) ! 04 fp disabled
#endif
+TRAP_SYM(0x05):
WOTRAP(5, SYM(window_overflow_trap_handler)); ! 05 window overflow
+TRAP_SYM(0x06):
WUTRAP(6, SYM(window_underflow_trap_handler));! 06 window underflow
- BAD_TRAP; ! 07 memory address not aligned
- BAD_TRAP; ! 08 fp exception
- BAD_TRAP; ! 09 data access exception
- BAD_TRAP; ! 0A tag overflow
- BAD_TRAP; ! 0B undefined
- BAD_TRAP; ! 0C undefined
- BAD_TRAP; ! 0D undefined
- BAD_TRAP; ! 0E undefined
- BAD_TRAP; ! 0F undefined
- BAD_TRAP; ! 10 undefined
+ BAD_TRAP(0x07) ! 07 memory address not aligned
+ BAD_TRAP(0x08) ! 08 fp exception
+ BAD_TRAP(0x09) ! 09 data access exception
+ BAD_TRAP(0x0a) ! 0A tag overflow
+ BAD_TRAP(0x0b) ! 0B undefined
+ BAD_TRAP(0x0c) ! 0C undefined
+ BAD_TRAP(0x0d) ! 0D undefined
+ BAD_TRAP(0x0e) ! 0E undefined
+ BAD_TRAP(0x0f) ! 0F undefined
+ BAD_TRAP(0x10) ! 10 undefined
/*
- * ERC32 defined traps
+ * External interrupt traps
*/
- BAD_TRAP; ! 11 masked errors
- BAD_TRAP; ! 12 external 1
- BAD_TRAP; ! 13 external 2
- BAD_TRAP; ! 14 UART A RX/TX
- BAD_TRAP; ! 15 UART B RX/TX
- BAD_TRAP; ! 16 correctable memory error
- BAD_TRAP; ! 17 UART error
- BAD_TRAP; ! 18 DMA access error
- BAD_TRAP; ! 19 DMA timeout
- BAD_TRAP; ! 1A external 3
- BAD_TRAP; ! 1B external 4
- BAD_TRAP; ! 1C general purpose timer
- BAD_TRAP; ! 1D real time clock
- BAD_TRAP; ! 1E external 5
- BAD_TRAP; ! 1F watchdog timeout
-
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 20 - 23 undefined
- BAD_TRAP; ! 24 cp_disabled
- BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 25 - 27 undefined
- BAD_TRAP; ! 28 cp_exception
- BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 29 - 2B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 2C - 2F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 30 - 33 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 34 - 37 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 38 - 3B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 3C - 3F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 40 - 43 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 44 - 47 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 48 - 4B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 4C - 4F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 50 - 53 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 54 - 57 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 58 - 5B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 5C - 5F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 60 - 63 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 64 - 67 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 68 - 6B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 6C - 6F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 70 - 73 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 74 - 77 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 78 - 7B undefined
+ BAD_TRAP(0x11) ! 11 external interrupt 1
+ BAD_TRAP(0x12) ! 12 external interrupt 2
+ BAD_TRAP(0x13) ! 13 external interrupt 3
+ BAD_TRAP(0x14) ! 14 external interrupt 4
+ BAD_TRAP(0x15) ! 15 external interrupt 5
+ BAD_TRAP(0x16) ! 16 external interrupt 6
+ BAD_TRAP(0x17) ! 17 external interrupt 7
+ BAD_TRAP(0x18) ! 18 external interrupt 8
+ BAD_TRAP(0x19) ! 19 external interrupt 9
+ BAD_TRAP(0x1a) ! 1A external interrupt 10
+ BAD_TRAP(0x1b) ! 1B external interrupt 11
+ BAD_TRAP(0x1c) ! 1C external interrupt 12
+ BAD_TRAP(0x1d) ! 1D external interrupt 13
+ BAD_TRAP(0x1e) ! 1E external interrupt 14
+ BAD_TRAP(0x1f) ! 1F external interrupt 15
+
+ BAD_TRAP(0x20) ! 20 undefined
+ BAD_TRAP(0x21) ! 21 undefined
+ BAD_TRAP(0x22) ! 22 undefined
+ BAD_TRAP(0x23) ! 23 undefined
+ BAD_TRAP(0x24) ! 24 cp_disabled
+ BAD_TRAP(0x25) ! 25 undefined
+ BAD_TRAP(0x26) ! 26 undefined
+ BAD_TRAP(0x27) ! 27 undefined
+ BAD_TRAP(0x28) ! 28 cp_exception
+ BAD_TRAP(0x29) ! 29 undefined
+ BAD_TRAP(0x2a) ! 2A undefined
+ BAD_TRAP(0x2b) ! 2B undefined
+ BAD_TRAP(0x2c) ! 2C undefined
+ BAD_TRAP(0x2d) ! 2D undefined
+ BAD_TRAP(0x2e) ! 2E undefined
+ BAD_TRAP(0x2f) ! 2F undefined
+ BAD_TRAP(0x30) ! 30 undefined
+ BAD_TRAP(0x31) ! 31 undefined
+ BAD_TRAP(0x32) ! 32 undefined
+ BAD_TRAP(0x33) ! 33 undefined
+ BAD_TRAP(0x34) ! 34 undefined
+ BAD_TRAP(0x35) ! 35 undefined
+ BAD_TRAP(0x36) ! 36 undefined
+ BAD_TRAP(0x37) ! 37 undefined
+ BAD_TRAP(0x38) ! 38 undefined
+ BAD_TRAP(0x39) ! 39 undefined
+ BAD_TRAP(0x3a) ! 3A undefined
+ BAD_TRAP(0x3b) ! 3B undefined
+ BAD_TRAP(0x3c) ! 3C undefined
+ BAD_TRAP(0x3d) ! 3D undefined
+ BAD_TRAP(0x3e) ! 3E undefined
+ BAD_TRAP(0x3f) ! 3F undefined
+ BAD_TRAP(0x40) ! 40 undefined
+ BAD_TRAP(0x41) ! 41 undefined
+ BAD_TRAP(0x42) ! 42 undefined
+ BAD_TRAP(0x43) ! 43 undefined
+ BAD_TRAP(0x44) ! 44 undefined
+ BAD_TRAP(0x45) ! 45 undefined
+ BAD_TRAP(0x46) ! 46 undefined
+ BAD_TRAP(0x47) ! 47 undefined
+ BAD_TRAP(0x48) ! 48 undefined
+ BAD_TRAP(0x49) ! 49 undefined
+ BAD_TRAP(0x4a) ! 4A undefined
+ BAD_TRAP(0x4b) ! 4B undefined
+ BAD_TRAP(0x4c) ! 4C undefined
+ BAD_TRAP(0x4d) ! 4D undefined
+ BAD_TRAP(0x4e) ! 4E undefined
+ BAD_TRAP(0x4f) ! 4F undefined
+ BAD_TRAP(0x50) ! 50 undefined
+ BAD_TRAP(0x51) ! 51 undefined
+ BAD_TRAP(0x52) ! 52 undefined
+ BAD_TRAP(0x53) ! 53 undefined
+ BAD_TRAP(0x54) ! 54 undefined
+ BAD_TRAP(0x55) ! 55 undefined
+ BAD_TRAP(0x56) ! 56 undefined
+ BAD_TRAP(0x57) ! 57 undefined
+ BAD_TRAP(0x58) ! 58 undefined
+ BAD_TRAP(0x59) ! 59 undefined
+ BAD_TRAP(0x5a) ! 5A undefined
+ BAD_TRAP(0x5b) ! 5B undefined
+ BAD_TRAP(0x5c) ! 5C undefined
+ BAD_TRAP(0x5d) ! 5D undefined
+ BAD_TRAP(0x5e) ! 5E undefined
+ BAD_TRAP(0x5f) ! 5F undefined
+ BAD_TRAP(0x60) ! 60 undefined
+ BAD_TRAP(0x61) ! 61 undefined
+ BAD_TRAP(0x62) ! 62 undefined
+ BAD_TRAP(0x63) ! 63 undefined
+ BAD_TRAP(0x64) ! 64 undefined
+ BAD_TRAP(0x65) ! 65 undefined
+ BAD_TRAP(0x66) ! 66 undefined
+ BAD_TRAP(0x67) ! 67 undefined
+ BAD_TRAP(0x68) ! 68 undefined
+ BAD_TRAP(0x69) ! 69 undefined
+ BAD_TRAP(0x6a) ! 6A undefined
+ BAD_TRAP(0x6b) ! 6B undefined
+ BAD_TRAP(0x6c) ! 6C undefined
+ BAD_TRAP(0x6d) ! 6D undefined
+ BAD_TRAP(0x6e) ! 6E undefined
+ BAD_TRAP(0x6f) ! 6F undefined
+ BAD_TRAP(0x70) ! 70 undefined
+ BAD_TRAP(0x71) ! 71 undefined
+ BAD_TRAP(0x72) ! 72 undefined
+ BAD_TRAP(0x73) ! 73 undefined
+ BAD_TRAP(0x74) ! 74 undefined
+ BAD_TRAP(0x75) ! 75 undefined
+ BAD_TRAP(0x76) ! 76 undefined
+ BAD_TRAP(0x77) ! 77 undefined
+ BAD_TRAP(0x78) ! 78 undefined
+ BAD_TRAP(0x79) ! 79 undefined
+ BAD_TRAP(0x7a) ! 7A undefined
+ BAD_TRAP(0x7b) ! 7B undefined
/*
This is a sad patch to make sure that we know where the
@@ -184,13 +257,15 @@ SYM(trap_table):
SYM(_ERC32_MEC_Timer_Control_Mirror):
- BAD_TRAP; BAD_TRAP; ! 7C - 7D undefined
+ BAD_TRAP(0x7C) ! 7C undefined
+ BAD_TRAP(0x7D) ! 7D undefined
SYM(CLOCK_SPEED):
+TRAP_SYM(0x7e):
.word 0x0a, 0, 0, 0 ! 7E (10 MHz default)
- BAD_TRAP; ! 7F undefined
+ BAD_TRAP(0x7F) ! 7F undefined
/*
* Software traps
@@ -201,12 +276,17 @@ SYM(CLOCK_SPEED):
* installed before.
*/
+TRAP_SYM(0x80):
TRAP( 0x80, SYM(syscall) ); ! 80 halt syscall SW trap
- SOFT_TRAP; SOFT_TRAP; ! 81 - 82
+ SOFT_TRAP(0x81) ! 81
+ SOFT_TRAP(0x82) ! 82
+TRAP_SYM(0x83):
TRAP( 0x83, SYM(window_flush_trap_handler) ); ! 83 flush windows SW trap
-
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 84 - 87
- SOFT_TRAP; ! 88
+ SOFT_TRAP(0x84) ! 84
+ SOFT_TRAP(0x85) ! 85
+ SOFT_TRAP(0x86) ! 86
+ SOFT_TRAP(0x87) ! 87
+ SOFT_TRAP(0x88) ! 88
/*
* SW Trap 9-15 Reserved for Operating System
@@ -214,44 +294,133 @@ SYM(CLOCK_SPEED):
* SPARC_SWTRAP_IRQDIS
* SPARC_SWTRAP_IRQEN
*/
+TRAP_SYM(0x89):
IRQDIS_TRAP(SYM(syscall_irqdis)); ! 89 IRQ Disable syscall trap
+TRAP_SYM(0x8a):
IRQEN_TRAP(SYM(syscall_irqen)); ! 8A IRQ Enable syscall trap
#if defined(SPARC_USE_SYNCHRONOUS_FP_SWITCH)
+TRAP_SYM(0x8b):
IRQDIS_TRAP(SYM(syscall_irqdis_fp)); ! 8B IRQ disable
! and set PSR[EF] syscall trap
#else
- SOFT_TRAP; ! 8B
+ SOFT_TRAP(0x8b) ! 8B
#endif
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 8C - 8F
-
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 90 - 93
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 94 - 97
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 98 - 9B
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 9C - 9F
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A0 - A3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A4 - A7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A8 - AB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! AC - AF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B0 - B3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B4 - B7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B8 - BB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! BC - BF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C0 - C3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C4 - C7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C8 - CB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! CC - CF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D0 - D3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D4 - D7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D8 - DB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! DC - DF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E0 - E3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E4 - E7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E8 - EB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! EC - EF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F0 - F3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F4 - F7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F8 - FB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! FC - FF
+ SOFT_TRAP(0x8c) ! 8C
+ SOFT_TRAP(0x8d) ! 8D
+ SOFT_TRAP(0x8e) ! 8E
+ SOFT_TRAP(0x8f) ! 8F
+ SOFT_TRAP(0x90) ! 90
+ SOFT_TRAP(0x91) ! 91
+ SOFT_TRAP(0x92) ! 92
+ SOFT_TRAP(0x93) ! 93
+ SOFT_TRAP(0x94) ! 94
+ SOFT_TRAP(0x95) ! 95
+ SOFT_TRAP(0x96) ! 96
+ SOFT_TRAP(0x97) ! 97
+ SOFT_TRAP(0x98) ! 98
+ SOFT_TRAP(0x99) ! 99
+ SOFT_TRAP(0x9a) ! 9A
+ SOFT_TRAP(0x9b) ! 9B
+ SOFT_TRAP(0x9c) ! 9C
+ SOFT_TRAP(0x9d) ! 9D
+ SOFT_TRAP(0x9e) ! 9E
+ SOFT_TRAP(0x9f) ! 9F
+ SOFT_TRAP(0xa0) ! a0
+ SOFT_TRAP(0xa1) ! a1
+ SOFT_TRAP(0xa2) ! a2
+ SOFT_TRAP(0xa3) ! a3
+ SOFT_TRAP(0xa4) ! a4
+ SOFT_TRAP(0xa5) ! a5
+ SOFT_TRAP(0xa6) ! a6
+ SOFT_TRAP(0xa7) ! a7
+ SOFT_TRAP(0xa8) ! a8
+ SOFT_TRAP(0xa9) ! a9
+ SOFT_TRAP(0xaa) ! aA
+ SOFT_TRAP(0xab) ! aB
+ SOFT_TRAP(0xac) ! aC
+ SOFT_TRAP(0xad) ! aD
+ SOFT_TRAP(0xae) ! aE
+ SOFT_TRAP(0xaf) ! aF
+ SOFT_TRAP(0xb0) ! b0
+ SOFT_TRAP(0xb1) ! b1
+ SOFT_TRAP(0xb2) ! b2
+ SOFT_TRAP(0xb3) ! b3
+ SOFT_TRAP(0xb4) ! b4
+ SOFT_TRAP(0xb5) ! b5
+ SOFT_TRAP(0xb6) ! b6
+ SOFT_TRAP(0xb7) ! b7
+ SOFT_TRAP(0xb8) ! b8
+ SOFT_TRAP(0xb9) ! b9
+ SOFT_TRAP(0xba) ! bA
+ SOFT_TRAP(0xbb) ! bB
+ SOFT_TRAP(0xbc) ! bC
+ SOFT_TRAP(0xbd) ! bD
+ SOFT_TRAP(0xbe) ! bE
+ SOFT_TRAP(0xbf) ! bF
+ SOFT_TRAP(0xc0) ! c0
+ SOFT_TRAP(0xc1) ! c1
+ SOFT_TRAP(0xc2) ! c2
+ SOFT_TRAP(0xc3) ! c3
+ SOFT_TRAP(0xc4) ! c4
+ SOFT_TRAP(0xc5) ! c5
+ SOFT_TRAP(0xc6) ! c6
+ SOFT_TRAP(0xc7) ! c7
+ SOFT_TRAP(0xc8) ! c8
+ SOFT_TRAP(0xc9) ! c9
+ SOFT_TRAP(0xca) ! cA
+ SOFT_TRAP(0xcb) ! cB
+ SOFT_TRAP(0xcc) ! cC
+ SOFT_TRAP(0xcd) ! cD
+ SOFT_TRAP(0xce) ! cE
+ SOFT_TRAP(0xcf) ! cF
+ SOFT_TRAP(0xd0) ! d0
+ SOFT_TRAP(0xd1) ! d1
+ SOFT_TRAP(0xd2) ! d2
+ SOFT_TRAP(0xd3) ! d3
+ SOFT_TRAP(0xd4) ! d4
+ SOFT_TRAP(0xd5) ! d5
+ SOFT_TRAP(0xd6) ! d6
+ SOFT_TRAP(0xd7) ! d7
+ SOFT_TRAP(0xd8) ! d8
+ SOFT_TRAP(0xd9) ! d9
+ SOFT_TRAP(0xda) ! dA
+ SOFT_TRAP(0xdb) ! dB
+ SOFT_TRAP(0xdc) ! dC
+ SOFT_TRAP(0xdd) ! dD
+ SOFT_TRAP(0xde) ! dE
+ SOFT_TRAP(0xdf) ! dF
+ SOFT_TRAP(0xe0) ! e0
+ SOFT_TRAP(0xe1) ! e1
+ SOFT_TRAP(0xe2) ! e2
+ SOFT_TRAP(0xe3) ! e3
+ SOFT_TRAP(0xe4) ! e4
+ SOFT_TRAP(0xe5) ! e5
+ SOFT_TRAP(0xe6) ! e6
+ SOFT_TRAP(0xe7) ! e7
+ SOFT_TRAP(0xe8) ! e8
+ SOFT_TRAP(0xe9) ! e9
+ SOFT_TRAP(0xea) ! eA
+ SOFT_TRAP(0xeb) ! eB
+ SOFT_TRAP(0xec) ! eC
+ SOFT_TRAP(0xed) ! eD
+ SOFT_TRAP(0xee) ! eE
+ SOFT_TRAP(0xef) ! eF
+ SOFT_TRAP(0xf0) ! f0
+ SOFT_TRAP(0xf1) ! f1
+ SOFT_TRAP(0xf2) ! f2
+ SOFT_TRAP(0xf3) ! f3
+ SOFT_TRAP(0xf4) ! f4
+ SOFT_TRAP(0xf5) ! f5
+ SOFT_TRAP(0xf6) ! f6
+ SOFT_TRAP(0xf7) ! f7
+ SOFT_TRAP(0xf8) ! f8
+ SOFT_TRAP(0xf9) ! f9
+ SOFT_TRAP(0xfa) ! fA
+ SOFT_TRAP(0xfb) ! fB
+ SOFT_TRAP(0xfc) ! fC
+ SOFT_TRAP(0xfd) ! fD
+ SOFT_TRAP(0xfe) ! fE
+ SOFT_TRAP(0xff) ! fF
/*
* This is the hard reset code.