.data
GLOBAL(vectab)
.long 0x4ef80400 | 0: jmp 0x400:w (unused reset SSP)
.long 0 | 1: NOT USED (reset PC)
VECTOR(buserr_early) | 2: bus error
VECTOR(addrerr_early) | 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
VECTOR(badtrap) | 48: FPCP branch/set on unordered cond
VECTOR(badtrap) | 49: FPCP inexact result
VECTOR(badtrap) | 50: FPCP divide by zero
VECTOR(badtrap) | 51: FPCP underflow
VECTOR(badtrap) | 52: FPCP operand error
VECTOR(badtrap) | 53: FPCP overflow
VECTOR(badtrap) | 54: FPCP signalling NAN
VECTOR(badtrap) | 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)
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
#if NKBD > 0
ASVECTOR(mfp_kbd) | 70: KBD/MIDI IRQ
#else
VECTOR(badmfpint) | 70:
#endif
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 ])
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
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
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