X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Finterrupts.c;h=49ea0cdc488a81017170096921be0bea8aee2481;hp=61cf1afd93ebe88f03976f646736058486031eb7;hb=a409cb5b36482767f766ec9efc5dbecaa2274660;hpb=916c8dd1dfa2414ae8b58ab1e3d477b24c553815 diff --git a/betty/interrupts.c b/betty/interrupts.c index 61cf1af..49ea0cd 100644 --- a/betty/interrupts.c +++ b/betty/interrupts.c @@ -7,16 +7,103 @@ #include "interrupts.h" +// 'module global' interrupt variable +static t_interrupt interrupt; + /* * functions */ -void interrupt_set_default_callback(t_interrupt *ir,void *callback) { +void interrupt_init(void) { + + memset(&interrupt,0,sizeof(t_interrupt)); + VICSoftIntClear=0xff; + VICIntEnClear=0xff; + VICDefVectAddr=0; +} + +void interrupt_set_default_callback(u32 callback_addr) { + + VICDefVectAddr=callback_addr; +} + +void interrupt_set_soft_callback(void (*callback)(void)) { + + interrupt->default_soft_callback=callback; +} + +void interrupt_soft_clear(u8 src_number) { + + VICSoftIntClear=(1<default_callback=callback; + addr=&VICVectAddr0; + cntl=&VICVectCntl0; + + for(cnt=0;cnt3) + return; + + if(wakeup) + EXTWAKE=(EXTWAKE&0xf)|(1<