Prepare assembly parts for an eventual transition to ELF. Mostly from a
diff from Steve Woodford.
This commit is contained in:
parent
f19685fa10
commit
8f10488c29
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atari_init.c,v 1.52 2001/02/01 08:58:03 leo Exp $ */
|
||||
/* $NetBSD: atari_init.c,v 1.53 2001/02/09 21:47:45 leo Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Leo Weppelman
|
||||
@ -514,25 +514,25 @@ char *esym_addr; /* Address of kernel '_esym' symbol */
|
||||
if (cputype == CPU_68060) {
|
||||
/* XXX: Need the branch cache be cleared? */
|
||||
asm volatile (".word 0x4e7a,0x0002;"
|
||||
"orl #0x400000,d0;"
|
||||
"orl #0x400000,%%d0;"
|
||||
".word 0x4e7b,0x0002" : : : "d0");
|
||||
}
|
||||
asm volatile ("movel %0,a0;"
|
||||
asm volatile ("movel %0,%%a0;"
|
||||
".word 0x4e7b,0x8807" : : "a" (Sysseg_pa) : "a0");
|
||||
asm volatile (".word 0xf518" : : );
|
||||
asm volatile ("movel #0xc000,d0;"
|
||||
asm volatile ("movel #0xc000,%%d0;"
|
||||
".word 0x4e7b,0x0003" : : : "d0" );
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
asm volatile ("pmove %0@,srp" : : "a" (&protorp[0]));
|
||||
asm volatile ("pmove %0@,%%srp" : : "a" (&protorp[0]));
|
||||
/*
|
||||
* setup and load TC register.
|
||||
* enable_cpr, enable_srp, pagesize=8k,
|
||||
* A = 8 bits, B = 11 bits
|
||||
*/
|
||||
tc = 0x82d08b00;
|
||||
asm volatile ("pmove %0@,tc" : : "a" (&tc));
|
||||
asm volatile ("pmove %0@,%%tc" : : "a" (&tc));
|
||||
}
|
||||
|
||||
/* Is this to fool the optimizer?? */
|
||||
@ -995,7 +995,7 @@ initcpu()
|
||||
extern trapfun illinst;
|
||||
#endif
|
||||
|
||||
asm volatile ("movl %0,d0; .word 0x4e7b,0x0808" : :
|
||||
asm volatile ("movl %0,%%d0; .word 0x4e7b,0x0808" : :
|
||||
"d"(m68060_pcr_init):"d0" );
|
||||
|
||||
/* bus/addrerr vectors */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: fpu.c,v 1.6 1997/04/24 22:37:11 gwr Exp $ */
|
||||
/* $NetBSD: fpu.c,v 1.7 2001/02/09 21:47:46 leo Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
@ -116,7 +116,7 @@ fpu_probe()
|
||||
* have if this will. We save the state in order to get the
|
||||
* size of the frame.
|
||||
*/
|
||||
asm("movl %0, a0; fsave a0@" : : "a" (&fpframe) : "a0" );
|
||||
asm("movl %0, %%a0; fsave %%a0@" : : "a" (&fpframe) : "a0" );
|
||||
|
||||
b = fpframe.fpf_fsize;
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: machdep.c,v 1.105 2001/01/15 20:19:53 thorpej Exp $ */
|
||||
/* $NetBSD: machdep.c,v 1.106 2001/02/09 21:47:46 leo Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
@ -67,6 +67,10 @@
|
||||
#include <sys/mount.h>
|
||||
#include <sys/syscallargs.h>
|
||||
|
||||
#if defined(DDB) && defined(__ELF__)
|
||||
#include <sys/exec_elf.h>
|
||||
#endif
|
||||
|
||||
#include <net/netisr.h>
|
||||
#undef PS /* XXX netccitt/pk.h conflict with machine/reg.h? */
|
||||
|
||||
@ -157,7 +161,12 @@ consinit()
|
||||
extern int end;
|
||||
extern int *esym;
|
||||
|
||||
#ifndef __ELF__
|
||||
ddb_init(*(int *)&end, ((int *)&end) + 1, esym);
|
||||
#else
|
||||
ddb_init((int)esym - (int)&end - sizeof(Elf32_Ehdr),
|
||||
(void *)&end, esym);
|
||||
#endif
|
||||
}
|
||||
if(boothowto & RB_KDB)
|
||||
Debugger();
|
||||
@ -389,7 +398,7 @@ identifycpu()
|
||||
char cputxt[30];
|
||||
|
||||
asm(".word 0x4e7a,0x0808;"
|
||||
"movl d0,%0" : "=d"(pcr) : : "d0");
|
||||
"movl %%d0,%0" : "=d"(pcr) : : "d0");
|
||||
sprintf(cputxt, "68%s060 rev.%d",
|
||||
pcr & 0x10000 ? "LC/EC" : "", (pcr>>8)&0xff);
|
||||
cpu = cputxt;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: vectors.s,v 1.13 1998/10/18 04:42:37 itohy Exp $ */
|
||||
/* $NetBSD: vectors.s,v 1.14 2001/02/09 21:47:46 leo Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah
|
||||
@ -36,173 +36,162 @@
|
||||
* @(#)vectors.s 7.2 (Berkeley) 5/7/91
|
||||
*/
|
||||
.data
|
||||
.globl _buserr,_addrerr
|
||||
.globl _illinst,_zerodiv,_chkinst,_trapvinst,_privinst,_trace
|
||||
.globl _badtrap
|
||||
.globl _spurintr,_lev1intr,_lev2intr,_lev3intr
|
||||
.globl _lev4intr,_lev5intr,_lev6intr,_lev7intr
|
||||
.globl _trap0
|
||||
#ifdef COMPAT_13
|
||||
.globl _trap1
|
||||
#endif
|
||||
.globl _trap2,_trap15
|
||||
.globl _fpfline, _fpunsupp, _fpfault
|
||||
.globl _trap12, _badmfpint
|
||||
.globl _vectab, _autovects, _uservects
|
||||
|
||||
_vectab:
|
||||
GLOBAL(vectab)
|
||||
.long 0x4ef80400 | 0: jmp 0x400:w (unused reset SSP)
|
||||
.long 0 | 1: NOT USED (reset PC)
|
||||
.long _buserr | 2: bus error
|
||||
.long _addrerr | 3: address error
|
||||
.long _illinst | 4: illegal instruction
|
||||
.long _zerodiv | 5: zero divide
|
||||
.long _chkinst | 6: CHK instruction
|
||||
.long _trapvinst | 7: TRAPV instruction
|
||||
.long _privinst | 8: privilege violation
|
||||
.long _trace | 9: trace
|
||||
.long _illinst | 10: line 1010 emulator
|
||||
.long _fpfline | 11: line 1111 emulator
|
||||
.long _badtrap | 12: unassigned, reserved
|
||||
.long _coperr | 13: coprocessor protocol violation
|
||||
.long _fmterr | 14: format error
|
||||
.long _badtrap | 15: uninitialized interrupt vector
|
||||
.long _badtrap | 16: unassigned, reserved
|
||||
.long _badtrap | 17: unassigned, reserved
|
||||
.long _badtrap | 18: unassigned, reserved
|
||||
.long _badtrap | 19: unassigned, reserved
|
||||
.long _badtrap | 20: unassigned, reserved
|
||||
.long _badtrap | 21: unassigned, reserved
|
||||
.long _badtrap | 22: unassigned, reserved
|
||||
.long _badtrap | 23: unassigned, reserved
|
||||
.long _spurintr | 24: spurious interrupt
|
||||
_autovects:
|
||||
.long _lev1intr | 25: level 1 interrupt autovector
|
||||
.long _lev2intr | 26: level 2 interrupt autovector
|
||||
.long _lev3intr | 27: level 3 interrupt autovector
|
||||
.long _lev4intr | 28: level 4 interrupt autovector
|
||||
.long _lev5intr | 29: level 5 interrupt autovector
|
||||
.long _lev6intr | 30: level 6 interrupt autovector
|
||||
.long _lev7intr | 31: level 7 interrupt autovector
|
||||
.long _trap0 | 32: syscalls
|
||||
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)
|
||||
VECTOR(lev1intr) | 25: level 1 interrupt autovector
|
||||
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
|
||||
.long _trap1 | 33: compat_13_sigreturn
|
||||
VECTOR(trap1) | 33: compat_13_sigreturn
|
||||
#else
|
||||
.long _illinst
|
||||
VECTOR(illinst
|
||||
#endif
|
||||
.long _trap2 | 34: trace
|
||||
.long _trap3 | 35: sigreturn special syscall
|
||||
.long _illinst | 36: TRAP instruction vector
|
||||
.long _illinst | 37: TRAP instruction vector
|
||||
.long _illinst | 38: TRAP instruction vector
|
||||
.long _illinst | 39: TRAP instruction vector
|
||||
.long _illinst | 40: TRAP instruction vector
|
||||
.long _illinst | 41: TRAP instruction vector
|
||||
.long _illinst | 42: TRAP instruction vector
|
||||
.long _illinst | 43: TRAP instruction vector
|
||||
.long _trap12 | 44: TRAP instruction vector
|
||||
.long _illinst | 45: TRAP instruction vector
|
||||
.long _illinst | 46: TRAP instruction vector
|
||||
.long _trap15 | 47: TRAP instruction vector
|
||||
VECTOR(trap2) | 34: trace
|
||||
VECTOR(trap3) | 35: sigreturn special syscall
|
||||
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
|
||||
.globl bsun, inex, dz, unfl, operr, ovfl, snan
|
||||
.long bsun | 48: FPCP branch/set on unordered cond
|
||||
.long inex | 49: FPCP inexact result
|
||||
.long dz | 50: FPCP divide by zero
|
||||
.long unfl | 51: FPCP underflow
|
||||
.long operr | 52: FPCP operand error
|
||||
.long ovfl | 53: FPCP overflow
|
||||
.long snan | 54: FPCP signalling NAN
|
||||
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
|
||||
.globl _fpfault
|
||||
.long _fpfault | 48: FPCP branch/set on unordered cond
|
||||
.long _fpfault | 49: FPCP inexact result
|
||||
.long _fpfault | 50: FPCP divide by zero
|
||||
.long _fpfault | 51: FPCP underflow
|
||||
.long _fpfault | 52: FPCP operand error
|
||||
.long _fpfault | 53: FPCP overflow
|
||||
.long _fpfault | 54: FPCP signalling NAN
|
||||
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
|
||||
|
||||
.long _fpunsupp | 55: FPCP unimplemented data type
|
||||
.long _badtrap | 56: unassigned, reserved
|
||||
.long _badtrap | 57: unassigned, reserved
|
||||
.long _badtrap | 58: unassigned, reserved
|
||||
.long _badtrap | 59: unassigned, reserved
|
||||
.long _badtrap | 60: unassigned, reserved
|
||||
.long _badtrap | 61: unassigned, reserved
|
||||
.long _badtrap | 62: unassigned, reserved
|
||||
.long _badtrap | 63: unassigned, reserved
|
||||
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
|
||||
|
||||
_uservects:
|
||||
GLOBAL(uservects)
|
||||
/*
|
||||
* MFP 1 auto vectors (ipl 6)
|
||||
*/
|
||||
.long _intr_glue | 64: parallel port - BUSY
|
||||
.long _badmfpint | 65: modem port 1 - DCD
|
||||
.long _badmfpint | 66: modem port 1 - CTS
|
||||
.long _badmfpint | 67: ISA1 [ Hades only ]
|
||||
.long _badmfpint | 68: modem port 1 baudgen (Timer D)
|
||||
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
|
||||
.long mfp_timc | 69: Timer C {stat,prof}clock
|
||||
ASVECTOR(mfp_timc) | 69: Timer C {stat,prof}clock
|
||||
#else
|
||||
.long _badmfpint | 69: Timer C
|
||||
VECTOR(badmfpint) | 69: Timer C
|
||||
#endif /* STATCLOCK */
|
||||
.long mfp_kbd | 70: KBD/MIDI IRQ
|
||||
.long _intr_glue | 71: FDC/ACSI DMA
|
||||
.long _badmfpint | 72: Display enable counter
|
||||
.long _badmfpint | 73: modem port 1 - XMIT error
|
||||
.long _badmfpint | 74: modem port 1 - XMIT buffer empty
|
||||
.long _badmfpint | 75: modem port 1 - RCV error
|
||||
.long _badmfpint | 76: modem port 1 - RCV buffer full
|
||||
.long mfp_tima | 77: Timer A (System clock)
|
||||
.long _badmfpint | 78: modem port 1 - RI
|
||||
.long _badmfpint | 79: Monochrome detect (ISA2 [ Hades only ])
|
||||
ASVECTOR(mfp_kbd) | 70: KBD/MIDI IRQ
|
||||
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)
|
||||
*/
|
||||
.long _badmfpint | 80: I/O pin 1 J602
|
||||
.long _badmfpint | 81: I/O pin 3 J602
|
||||
.long _badmfpint | 82: SCC-DMA
|
||||
.long _badmfpint | 83: modem port 2 - RI
|
||||
.long _badmfpint | 84: serial port 1 baudgen (Timer D)
|
||||
.long _badmfpint | 85: TCCLC SCC (Timer C)
|
||||
.long _badmfpint | 86: FDC Drive Ready
|
||||
.long mfp2_5380dm | 87: SCSI DMA
|
||||
.long _badmfpint | 88: Display enable (Timer B)
|
||||
.long _badmfpint | 89: serial port 1 - XMIT error
|
||||
.long _badmfpint | 90: serial port 1 - XMIT buffer empty
|
||||
.long _badmfpint | 91: serial port 1 - RCV error
|
||||
.long _badmfpint | 92: serial port 1 - RCV buffer full
|
||||
.long _badmfpint | 93: Timer A
|
||||
.long _badmfpint | 94: RTC
|
||||
.long mfp2_5380 | 95: SCSI 5380
|
||||
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
|
||||
ASVECTOR(mfp2_5380dm) | 87: SCSI DMA
|
||||
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
|
||||
ASVECTOR(mfp2_5380) | 95: SCSI 5380
|
||||
|
||||
/*
|
||||
* Interrupts from the 8530 SCC
|
||||
*/
|
||||
.long sccint | 96: SCC Tx empty channel B
|
||||
.long _badtrap | 97: Not used
|
||||
.long sccint | 98: SCC Ext./Status Channel B
|
||||
.long _badtrap | 99: Not used
|
||||
.long sccint | 100: SCC Rx Channel B
|
||||
.long _badtrap | 101: Not used
|
||||
.long sccint | 102: SCC Special Rx cond. Channel B
|
||||
.long _badtrap | 103: Not used
|
||||
.long sccint | 104: SCC Tx empty channel A
|
||||
.long _badtrap | 105: Not used
|
||||
.long sccint | 106: SCC Ext./Status Channel A
|
||||
.long _badtrap | 107: Not used
|
||||
.long sccint | 108: SCC Rx Channel A
|
||||
.long _badtrap | 109: Not used
|
||||
.long sccint | 110: SCC Special Rx cond. Channel A
|
||||
.long _badtrap | 111: Not used
|
||||
ASVECTOR(sccint) | 96: SCC Tx empty channel B
|
||||
VECTOR(badtrap) | 97: Not used
|
||||
ASVECTOR(sccint) | 98: SCC Ext./Status Channel B
|
||||
VECTOR(badtrap) | 99: Not used
|
||||
ASVECTOR(sccint) | 100: SCC Rx Channel B
|
||||
VECTOR(badtrap) | 101: Not used
|
||||
ASVECTOR(sccint) | 102: SCC Special Rx cond. Channel B
|
||||
VECTOR(badtrap) | 103: Not used
|
||||
ASVECTOR(sccint) | 104: SCC Tx empty channel A
|
||||
VECTOR(badtrap) | 105: Not used
|
||||
ASVECTOR(sccint) | 106: SCC Ext./Status Channel A
|
||||
VECTOR(badtrap) | 107: Not used
|
||||
ASVECTOR(sccint) | 108: SCC Rx Channel A
|
||||
VECTOR(badtrap) | 109: Not used
|
||||
ASVECTOR(sccint) | 110: SCC Special Rx cond. Channel A
|
||||
VECTOR(badtrap) | 111: Not used
|
||||
|
||||
#define BADTRAP16 .long _badtrap,_badtrap,_badtrap,_badtrap,\
|
||||
_badtrap,_badtrap,_badtrap,_badtrap,\
|
||||
_badtrap,_badtrap,_badtrap,_badtrap,\
|
||||
_badtrap,_badtrap,_badtrap,_badtrap
|
||||
#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
|
||||
|
Loading…
Reference in New Issue
Block a user