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