/*Datei: sio3int.c */ #include "sio1.h" extern volatile unsigned long count; extern volatile int got_int; extern int sioadr[]; extern int comindex; extern int test[]; void interrupt shandler () { register int x; count++; got_int = 1; do { x = inportb (sioadr[comindex] + IIR); if (x & 1) break; switch (x >> 1) { case 0: test[0]++; break; case 1: test[1]++; break; case 2: test[2]++; /* data received */ x = inportb(sioadr[comindex] + DATA); break; case 3: test[3]++; break; } } while (1); outportb (OCW2,0x20); /* non specific EOI */ }