Вот, написал код на С, для проверки работы внешнего прерывания IRQ2.

char c;

main () {
c=3;
interrupt (SIGIRQ2, IRQ_Timer);
asm ("ICNTL=0x1F;");
memset(Prog_Flag_Comp_Sel_Ctrl, c, 1);

while (1) {
};

}

void IRQ_Timer(int code) {
if (c==3) c=0; else c=3;
memset(Prog_Flag_Data, c,1);
};

Эмулятор показывает нормальную работу, если вручную ставишь нужную единичку в IREQ. В железе подаю меандр на IRQ2, но работы прерывания не видно (по идее, синхронно должны моргать флаги 0,1,2). Что я забыл?