typedef unsigned char byte;
volatile byte* portb=(byte*)0x1004;
volatile byte* tmsk2=(byte*)0x1024;
volatile byte* tflg2=(byte*)0x1025;

volatile byte x=0;
volatile byte y=0;

void rtti_isr(void) __attribute__((interrupt));

void rtti_isr(void) {
	++x;
	++y;
	*tflg2=0x40;
}

int main() {
	*tmsk2|=0x40;
	*portb=0x00;
	while (1) {
		asm ("sei");
		if (x!=y)
			++*portb;
		asm ("cli");
	}
	return 0;		
}

typedef void (*isr)(void);

#define E (isr)0xffff 

extern void _start(void);

isr vectors[32] __attribute__ ((section (".vectors"))) = {
	E, E, E, E, E, E, E, E,
	E, E, E, E, E, E, E, E,
	E, E, E, E, E, E, E, E,
	rtti_isr, E, E, E, E, E, E, _start
};
