|
mxUnterbrechung.c |
/* mxUnterbrechung.c */
#include "mxUnterbrechung.h"
#include "mxVektor.h"
#include "mxTrap.h"
#include "mxUhr.h"
#include "mxInterrupt.h"
#include "mxSystemDienst.h"
#include "mxCPUVerwaltung.h"
#include "mxAbbruch.h"
/* -------------------------------------------------------------------------------------------------------------------- */
int InitUnterbrechung(void)
{
int i;
SetzeInterruptVektor(cTrap0+cProzessWechselTrap, /* Annahmeroutinen einsetzen */
ProzesswechselTrap);
SetzeInterruptVektor(cTrap0+cSystemAufrufTrap, SystemAufrufTrap);
SetzeInterruptVektor(cTrap0+cSystemFehlerTrap, SystemFehlerTrap);
SetzeInterruptVektor(cUhrInterruptVektor, UhrUnterbrechung);
for (i = cBusErrorVektorNr; i <= cFormatErrorVektorNr; i++) {
SetzeInterruptVektor(i, Ausnahmen); /* Annahmeroutine fuer alle Exceptions */
}
SetzeInterruptVektor(cBusErrorVektorNr, BusAdrAusnahme);
SetzeInterruptVektor(cAddressErrorVektorNr, BusAdrAusnahme);
SetzeInterruptVektor(cDivZeroVektorNr, DivZero);
SetzeInterruptVektor(cIllegalInstructionVektorNr, IllInst);
SetzeInterruptVektor(cPrivilegeVektorNr, PrivViol);
SetzeInterruptVektor(cEmu1010VektorNr, Emu1010);
SetzeInterruptVektor(cEmu1111VektorNr, Emu1111);
asm(/*ANDI.W #0xf8ff,SR*/); /* IRQ's im Prozessor richtig maskieren */
InterruptZulassen(cUhrBit);
UhrAnstossen();
return TRUE;
} /* Init */
Bei Problemen mit der Seite bitte eine Mail an Marek
Converted with C2HTML V0.669 by Iluvatar
Prozeßdatenverarbeitung