So würde es in C aussehen, ein paar defines fehlen, die aber selbsterklärend sind. Übersetzen nach BASIC verbleibt als Hausaufgabe

Code:
void timer1_init()
{
#if defined (__AVR_AT90S2313__)
    // Timer1 ist Zähler
    TCCR1A = 0;
    // Timer1 läuft mit voller MCU clock
    TCCR1B = _BV (CS10) | _BV (CTC1);
#elif defined (__AVR_ATmega8__)
	 // Mode #4 für Timer1 (Manual S. 97)
	 // und volle MCU clock
    TCCR1A = 0;
    TCCR1B = _BV (WGM12) | _BV (CS10);
#else
#error Dont know how to setup timer1
#endif

	// PoutputCompare für gewünschte Timer1 Frequenz
	OCR1A = (unsigned short) ((unsigned long) F_CPU / INTERRUPTS_PER_SECOND-1);

	// OutputCompare-Interrupt für Timer 1
   TIMSK |= _BV (OCIE1A);
}

SIGNAL (SIG_OUTPUT_COMPARE1A)
{
}