1| $NetBSD: vectors.s,v 1.15 2008/12/20 01:05:46 isaki Exp $ 2 3| Copyright (c) 1988 University of Utah 4| Copyright (c) 1990, 1993 5| The Regents of the University of California. All rights reserved. 6| 7| Redistribution and use in source and binary forms, with or without 8| modification, are permitted provided that the following conditions 9| are met: 10| 1. Redistributions of source code must retain the above copyright 11| notice, this list of conditions and the following disclaimer. 12| 2. Redistributions in binary form must reproduce the above copyright 13| notice, this list of conditions and the following disclaimer in the 14| documentation and/or other materials provided with the distribution. 15| 3. All advertising materials mentioning features or use of this software 16| must display the following acknowledgement: 17| This product includes software developed by the University of 18| California, Berkeley and its contributors. 19| 4. Neither the name of the University nor the names of its contributors 20| may be used to endorse or promote products derived from this software 21| without specific prior written permission. 22| 23| THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26| ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27| FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28| DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29| OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30| HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32| OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33| SUCH DAMAGE. 34| 35| @(#)vectors.s 8.2 (Berkeley) 1/21/94 36| 37 38 .data 39GLOBAL(vectab) 40 .long 0x4ef80000 /* 0: jmp 0x0000:w (unused reset SSP) */ 41 VECTOR_UNUSED /* 1: NOT USED (reset PC) */ 42 VECTOR(buserr) /* 2: bus error */ 43 VECTOR(addrerr) /* 3: address error */ 44 VECTOR(illinst) /* 4: illegal instruction */ 45 VECTOR(zerodiv) /* 5: zero divide */ 46 VECTOR(chkinst) /* 6: CHK instruction */ 47 VECTOR(trapvinst) /* 7: TRAPV instruction */ 48 VECTOR(privinst) /* 8: privilege violation */ 49 VECTOR(trace) /* 9: trace */ 50 VECTOR(illinst) /* 10: line 1010 emulator */ 51 VECTOR(fpfline) /* 11: line 1111 emulator */ 52 VECTOR(badtrap) /* 12: unassigned, reserved */ 53 VECTOR(coperr) /* 13: coprocessor protocol violation */ 54 VECTOR(fmterr) /* 14: format error */ 55 VECTOR(badtrap) /* 15: uninitialized interrupt vector */ 56 VECTOR(intiotrap) /* 16: unassigned, reserved */ 57 VECTOR(intiotrap) /* 17: unassigned, reserved */ 58 VECTOR(intiotrap) /* 18: unassigned, reserved */ 59 VECTOR(intiotrap) /* 19: unassigned, reserved */ 60 VECTOR(intiotrap) /* 20: unassigned, reserved */ 61 VECTOR(intiotrap) /* 21: unassigned, reserved */ 62 VECTOR(intiotrap) /* 22: unassigned, reserved */ 63 VECTOR(intiotrap) /* 23: unassigned, reserved */ 64 VECTOR(spurintr) /* 24: spurious interrupt */ 65 VECTOR(lev1intr) /* 25: level 1 interrupt autovector */ 66 VECTOR(lev2intr) /* 26: level 2 interrupt autovector */ 67 VECTOR(lev3intr) /* 27: level 3 interrupt autovector */ 68 VECTOR(lev4intr) /* 28: level 4 interrupt autovector */ 69 VECTOR(lev5intr) /* 29: level 5 interrupt autovector */ 70 VECTOR(lev6intr) /* 30: level 6 interrupt autovector */ 71 VECTOR(lev7intr) /* 31: level 7 interrupt autovector */ 72 VECTOR(trap0) /* 32: syscalls */ 73#ifdef COMPAT_13 74 VECTOR(trap1) /* 33: compat_13_sigreturn */ 75#else 76 VECTOR(illinst) 77#endif 78 VECTOR(trap2) /* 34: trace */ 79#ifdef COMPAT_16 80 VECTOR(trap3) /* 35: compat_16_sigreturn */ 81#else 82 VECTOR(illinst) 83#endif 84 VECTOR(illinst) /* 36: TRAP instruction vector */ 85 VECTOR(illinst) /* 37: TRAP instruction vector */ 86 VECTOR(illinst) /* 38: TRAP instruction vector */ 87 VECTOR(illinst) /* 39: TRAP instruction vector */ 88 VECTOR(illinst) /* 40: TRAP instruction vector */ 89 VECTOR(illinst) /* 41: TRAP instruction vector */ 90 VECTOR(illinst) /* 42: TRAP instruction vector */ 91 VECTOR(illinst) /* 43: TRAP instruction vector */ 92 VECTOR(trap12) /* 44: TRAP instruction vector */ 93 VECTOR(illinst) /* 45: TRAP instruction vector */ 94 VECTOR(illinst) /* 46: TRAP instruction vector */ 95 VECTOR(trap15) /* 47: TRAP instruction vector */ 96#ifdef FPSP 97 ASVECTOR(bsun) /* 48: FPCP branch/set on unordered cond */ 98 ASVECTOR(inex) /* 49: FPCP inexact result */ 99 ASVECTOR(dz) /* 50: FPCP divide by zero */ 100 ASVECTOR(unfl) /* 51: FPCP underflow */ 101 ASVECTOR(operr) /* 52: FPCP operand error */ 102 ASVECTOR(ovfl) /* 53: FPCP overflow */ 103 ASVECTOR(snan) /* 54: FPCP signalling NAN */ 104#else 105 VECTOR(fpfault) /* 48: FPCP branch/set on unordered cond */ 106 VECTOR(fpfault) /* 49: FPCP inexact result */ 107 VECTOR(fpfault) /* 50: FPCP divide by zero */ 108 VECTOR(fpfault) /* 51: FPCP underflow */ 109 VECTOR(fpfault) /* 52: FPCP operand error */ 110 VECTOR(fpfault) /* 53: FPCP overflow */ 111 VECTOR(fpfault) /* 54: FPCP signalling NAN */ 112#endif 113 114 VECTOR(fpunsupp) /* 55: FPCP unimplemented data type */ 115 VECTOR(badtrap) /* 56: MMU configuration error */ 116 VECTOR(intiotrap) /* 57: unassigned, reserved */ 117 VECTOR(intiotrap) /* 58: unassigned, reserved */ 118 VECTOR(intiotrap) /* 59: unassigned, reserved */ 119 VECTOR(intiotrap) /* 60: unassigned, reserved */ 120 VECTOR(intiotrap) /* 61: unassigned, reserved */ 121 VECTOR(intiotrap) /* 62: unassigned, reserved */ 122 VECTOR(intiotrap) /* 63: unassigned, reserved */ 123 VECTOR(intiotrap) /* 64: MFP GPIP0 RTC alarm */ 124 VECTOR(intiotrap) /* 65: MFP GPIP1 ext. power switch */ 125 VECTOR(intiotrap) /* 66: MFP GPIP2 front power switch */ 126 VECTOR(intiotrap) /* 67: MFP GPIP3 FM sound generator */ 127 VECTOR(intiotrap) /* 68: MFP timer-D */ 128 VECTOR(timertrap) /* 69: MFP timer-C */ 129 VECTOR(intiotrap) /* 70: MFP GPIP4 VBL */ 130 VECTOR(intiotrap) /* 71: MFP GPIP5 unassigned */ 131 VECTOR(kbdtimer) /* 72: MFP timer-B */ 132 VECTOR(intiotrap) /* 73: MFP MPSC send error */ 133 VECTOR(intiotrap) /* 74: MFP MPSC transmit buffer empty */ 134 VECTOR(intiotrap) /* 75: MFP MPSC receive error */ 135 VECTOR(intiotrap) /* 76: MFP MPSC receive buffer full */ 136 VECTOR(intiotrap) /* 77: MFP timer-A */ 137 VECTOR(intiotrap) /* 78: MFP CRTC raster */ 138 VECTOR(intiotrap) /* 79: MFP H-SYNC */ 139 VECTOR(intiotrap) /* 80: unassigned, reserved */ 140 VECTOR(intiotrap) /* 81: unassigned, reserved */ 141 VECTOR(intiotrap) /* 82: unassigned, reserved */ 142 VECTOR(intiotrap) /* 83: unassigned, reserved */ 143 VECTOR(intiotrap) /* 84: unassigned, reserved */ 144 VECTOR(intiotrap) /* 85: unassigned, reserved */ 145 VECTOR(intiotrap) /* 86: unassigned, reserved */ 146 VECTOR(intiotrap) /* 87: unassigned, reserved */ 147 VECTOR(intiotrap) /* 88: unassigned, reserved */ 148 VECTOR(intiotrap) /* 89: unassigned, reserved */ 149 VECTOR(intiotrap) /* 90: unassigned, reserved */ 150 VECTOR(intiotrap) /* 91: unassigned, reserved */ 151 VECTOR(intiotrap) /* 92: unassigned, reserved */ 152 VECTOR(intiotrap) /* 93: unassigned, reserved */ 153 VECTOR(intiotrap) /* 94: unassigned, reserved */ 154 VECTOR(intiotrap) /* 95: unassigned, reserved */ 155 VECTOR(intiotrap) /* 96: FDC */ 156 VECTOR(fdeject) /* 97: floppy ejection */ 157 VECTOR(intiotrap) /* 98: unassigned, reserved */ 158 VECTOR(intiotrap) /* 99: parallel port */ 159 VECTOR(intiotrap) /* 100: FDC DMA */ 160 VECTOR(intiotrap) /* 101: FDC DMA (error) */ 161 VECTOR(intiotrap) /* 102: unassigned, reserved */ 162 VECTOR(intiotrap) /* 103: unassigned, reserved */ 163 VECTOR(intiotrap) /* 104: unassigned, reserved */ 164 VECTOR(intiotrap) /* 105: unassigned, reserved */ 165 VECTOR(intiotrap) /* 106: ADPCM DMA */ 166 VECTOR(intiotrap) /* 107: ADPCM DMA */ 167 VECTOR(intiotrap) /* 108: internal SPC */ 168 VECTOR(intiotrap) /* 109: unassigned, reserved */ 169 VECTOR(intiotrap) /* 110: unassigned, reserved */ 170 VECTOR(intiotrap) /* 111: unassigned, reserved */ 171 VECTOR(intiotrap) /* 112: Z8530 SCC (onboard) */ 172 VECTOR(intiotrap) /* 113: Z8530 SCC */ 173 VECTOR(intiotrap) /* 114: Z8530 SCC */ 174 VECTOR(intiotrap) /* 115: unassigned, reserved */ 175 VECTOR(intiotrap) /* 116: unassigned, reserved */ 176 VECTOR(intiotrap) /* 117: unassigned, reserved */ 177 VECTOR(intiotrap) /* 118: unassigned, reserved */ 178 VECTOR(intiotrap) /* 119: unassigned, reserved */ 179 VECTOR(intiotrap) /* 129: unassigned, reserved */ 180 VECTOR(intiotrap) /* 121: unassigned, reserved */ 181 VECTOR(intiotrap) /* 122: unassigned, reserved */ 182 VECTOR(intiotrap) /* 123: unassigned, reserved */ 183 VECTOR(intiotrap) /* 124: unassigned, reserved */ 184 VECTOR(intiotrap) /* 125: unassigned, reserved */ 185 VECTOR(intiotrap) /* 126: unassigned, reserved */ 186 VECTOR(intiotrap) /* 127: unassigned, reserved */ 187 188#define BADTRAP16 \ 189 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 190 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 191 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 192 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 193 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 194 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 195 VECTOR(intiotrap) ; VECTOR(intiotrap) ; \ 196 VECTOR(intiotrap) ; VECTOR(intiotrap) ; 197 198 BADTRAP16 /* 128-143: user interrupt vectors */ 199 BADTRAP16 /* 144-159: user interrupt vectors */ 200 BADTRAP16 /* 160-175: user interrupt vectors */ 201 BADTRAP16 /* 176-191: user interrupt vectors */ 202 BADTRAP16 /* 192-207: user interrupt vectors */ 203 BADTRAP16 /* 208-223: user interrupt vectors */ 204 BADTRAP16 /* 224-239: user interrupt vectors */ 205 VECTOR(com0trap) /* 240: unassigned, reserved */ 206 VECTOR(com1trap) /* 241: unassigned, reserved */ 207 VECTOR(intiotrap) /* 242: unassigned, reserved */ 208 VECTOR(intiotrap) /* 243: unassigned, reserved */ 209 VECTOR(intiotrap) /* 244: unassigned, reserved */ 210 VECTOR(intiotrap) /* 245: unassigned, reserved */ 211 VECTOR(intiotrap) /* 246: external SPC */ 212 VECTOR(intiotrap) /* 247: unassigned, reserved */ 213 VECTOR(intiotrap) /* 248: unassigned, reserved */ 214 VECTOR(intiotrap) /* 249: Neptune-X */ 215 VECTOR(intiotrap) /* 250: unassigned, reserved */ 216 VECTOR(intiotrap) /* 251: unassigned, reserved */ 217 VECTOR(intiotrap) /* 252: unassigned, reserved */ 218 VECTOR(intiotrap) /* 253: unassigned, reserved */ 219 VECTOR(intiotrap) /* 254: unassigned, reserved */ 220 VECTOR(intiotrap) /* 255: unassigned, reserved */ 221