/* $NetBSD: vectors.s,v 1.24 2023/01/06 10:28:27 tsutsui Exp $ */ /* * Copyright (c) 1988 University of Utah * Copyright (c) 1990 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)vectors.s 7.2 (Berkeley) 5/7/91 */ .data GLOBAL(vectab) .long 0x4ef80400 | 0: jmp 0x400:w (unused reset SSP) .long 0 | 1: NOT USED (reset PC) VECTOR(buserr) | 2: bus error VECTOR(addrerr) | 3: address error VECTOR(illinst) | 4: illegal instruction VECTOR(zerodiv) | 5: zero divide VECTOR(chkinst) | 6: CHK instruction VECTOR(trapvinst) | 7: TRAPV instruction VECTOR(privinst) | 8: privilege violation VECTOR(trace) | 9: trace VECTOR(illinst) | 10: line 1010 emulator VECTOR(fpfline) | 11: line 1111 emulator VECTOR(badtrap) | 12: unassigned, reserved VECTOR(coperr) | 13: coprocessor protocol violation VECTOR(fmterr) | 14: format error VECTOR(badtrap) | 15: uninitialized interrupt vector VECTOR(badtrap) | 16: unassigned, reserved VECTOR(badtrap) | 17: unassigned, reserved VECTOR(badtrap) | 18: unassigned, reserved VECTOR(badtrap) | 19: unassigned, reserved VECTOR(badtrap) | 20: unassigned, reserved VECTOR(badtrap) | 21: unassigned, reserved VECTOR(badtrap) | 22: unassigned, reserved VECTOR(badtrap) | 23: unassigned, reserved VECTOR(spurintr) | 24: spurious interrupt GLOBAL(autovects) #ifdef _ATARIHW_ VECTOR(lev1intr) | 25: level 1 interrupt autovector #else VECTOR(badtrap) | 25: Not supported by hardware #endif VECTOR(lev2intr) | 26: level 2 interrupt autovector VECTOR(lev3intr) | 27: level 3 interrupt autovector VECTOR(lev4intr) | 28: level 4 interrupt autovector VECTOR(lev5intr) | 29: level 5 interrupt autovector VECTOR(lev6intr) | 30: level 6 interrupt autovector VECTOR(lev7intr) | 31: level 7 interrupt autovector VECTOR(trap0) | 32: syscalls #ifdef COMPAT_13 VECTOR(trap1) | 33: compat_13_sigreturn #else VECTOR(illinst) | 33: TRAP instruction vector #endif VECTOR(trap2) | 34: trace #ifdef COMPAT_16 VECTOR(trap3) | 35: compat_16_sigreturn special syscall #else VECTOR(illinst) #endif VECTOR(illinst) | 36: TRAP instruction vector VECTOR(illinst) | 37: TRAP instruction vector VECTOR(illinst) | 38: TRAP instruction vector VECTOR(illinst) | 39: TRAP instruction vector VECTOR(illinst) | 40: TRAP instruction vector VECTOR(illinst) | 41: TRAP instruction vector VECTOR(illinst) | 42: TRAP instruction vector VECTOR(illinst) | 43: TRAP instruction vector VECTOR(trap12) | 44: TRAP instruction vector VECTOR(illinst) | 45: TRAP instruction vector VECTOR(illinst) | 46: TRAP instruction vector VECTOR(trap15) | 47: TRAP instruction vector #ifdef FPSP ASVECTOR(bsun) | 48: FPCP branch/set on unordered cond ASVECTOR(inex) | 49: FPCP inexact result ASVECTOR(dz) | 50: FPCP divide by zero ASVECTOR(unfl) | 51: FPCP underflow ASVECTOR(operr) | 52: FPCP operand error ASVECTOR(ovfl) | 53: FPCP overflow ASVECTOR(snan) | 54: FPCP signalling NAN #else VECTOR(fpfault) | 48: FPCP branch/set on unordered cond VECTOR(fpfault) | 49: FPCP inexact result VECTOR(fpfault) | 50: FPCP divide by zero VECTOR(fpfault) | 51: FPCP underflow VECTOR(fpfault) | 52: FPCP operand error VECTOR(fpfault) | 53: FPCP overflow VECTOR(fpfault) | 54: FPCP signalling NAN #endif VECTOR(fpunsupp) | 55: FPCP unimplemented data type VECTOR(badtrap) | 56: unassigned, reserved VECTOR(badtrap) | 57: unassigned, reserved VECTOR(badtrap) | 58: unassigned, reserved VECTOR(badtrap) | 59: unassigned, reserved VECTOR(badtrap) | 60: unassigned, reserved VECTOR(badtrap) | 61: unassigned, reserved VECTOR(badtrap) | 62: unassigned, reserved VECTOR(badtrap) | 63: unassigned, reserved GLOBAL(uservects) /* * MFP 1 auto vectors (ipl 6) */ VECTOR(intr_glue) | 64: parallel port - BUSY VECTOR(badmfpint) | 65: modem port 1 - DCD VECTOR(badmfpint) | 66: modem port 1 - CTS VECTOR(badmfpint) | 67: ISA1 [ Hades only ] VECTOR(badmfpint) | 68: modem port 1 baudgen (Timer D) #ifdef STATCLOCK ASVECTOR(mfp_timc) | 69: Timer C {stat,prof}clock #else VECTOR(badmfpint) | 69: Timer C #endif /* STATCLOCK */ #if NKBD > 0 ASVECTOR(mfp_kbd) | 70: KBD/MIDI IRQ #else VECTOR(badmfpint) | 70: #endif /* NKBD > 0 */ VECTOR(intr_glue) | 71: FDC/ACSI DMA VECTOR(badmfpint) | 72: Display enable counter VECTOR(badmfpint) | 73: modem port 1 - XMIT error VECTOR(badmfpint) | 74: modem port 1 - XMIT buffer empty VECTOR(badmfpint) | 75: modem port 1 - RCV error VECTOR(badmfpint) | 76: modem port 1 - RCV buffer full ASVECTOR(mfp_tima) | 77: Timer A (System clock) VECTOR(badmfpint) | 78: modem port 1 - RI VECTOR(badmfpint) | 79: Monochrome detect (ISA2 [ Hades only ]) /* * MFP 2 auto vectors (ipl 6) */ VECTOR(badmfpint) | 80: I/O pin 1 J602 VECTOR(badmfpint) | 81: I/O pin 3 J602 VECTOR(badmfpint) | 82: SCC-DMA VECTOR(badmfpint) | 83: modem port 2 - RI VECTOR(badmfpint) | 84: serial port 1 baudgen (Timer D) VECTOR(badmfpint) | 85: TCCLC SCC (Timer C) VECTOR(badmfpint) | 86: FDC Drive Ready #if NNCRSCSI > 0 ASVECTOR(mfp2_5380dm) | 87: SCSI DMA #else VECTOR(badmfpint) | 87: #endif /* NNCRSCSI > 0 */ VECTOR(badmfpint) | 88: Display enable (Timer B) VECTOR(badmfpint) | 89: serial port 1 - XMIT error VECTOR(badmfpint) | 90: serial port 1 - XMIT buffer empty VECTOR(badmfpint) | 91: serial port 1 - RCV error VECTOR(badmfpint) | 92: serial port 1 - RCV buffer full VECTOR(badmfpint) | 93: Timer A VECTOR(badmfpint) | 94: RTC #if NNCRSCSI > 0 ASVECTOR(mfp2_5380) | 95: SCSI 5380 #else VECTOR(badmfpint) | 95: #endif /* NNCRSCSI > 0 */ /* * Interrupts from the 8530 SCC */ VECTOR(badtrap) | 96: SCC Tx empty channel B VECTOR(badtrap) | 97: Not used VECTOR(badtrap) | 98: SCC Ext./Status Channel B VECTOR(badtrap) | 99: Not used VECTOR(badtrap) | 100: SCC Rx Channel B VECTOR(badtrap) | 101: Not used VECTOR(badtrap) | 102: SCC Special Rx cond. Channel B VECTOR(badtrap) | 103: Not used VECTOR(badtrap) | 104: SCC Tx empty channel A VECTOR(badtrap) | 105: Not used VECTOR(badtrap) | 106: SCC Ext./Status Channel A VECTOR(badtrap) | 107: Not used VECTOR(badtrap) | 108: SCC Rx Channel A VECTOR(badtrap) | 109: Not used VECTOR(badtrap) | 110: SCC Special Rx cond. Channel A VECTOR(badtrap) | 111: Not used #define BADTRAP16 VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; \ VECTOR(badtrap) ; VECTOR(badtrap) ; BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors BADTRAP16 | 112-255: user interrupt vectors