Modyfikacja częstotliwości przerwań / ustawień TC jest ryzykowna, najlepiej jest przechwycić przerwanie, wywołać naszą prockę, a potem skoczyć do starej / systemowej obsługi przerwania. To jest jak w przykładzie z Maxymizera (tylko ten kod poniżej jest jakiś 'lewy').
Robiłem podobnie przy integracji replaya midi w BadMood na flaszkę.
Trzeba też uważać, żeby przerwanie TiC nie wyskoczyło zanim zakończy się poprzednie (jak wykonywanie przerwania będzie trwało zbyt długo, a miałem takie przypadki).
Co do włączania/modyfikacji TiC to zwykle maskuję wszystkie przerwania w sr, wyłączam TiC, ustawiam TiC i dopiero potem go włączam i przywracam sr.
Coś mniej więcej jak poniżej (ustawia TIC domyślnie na 200hz):
move.w sr,-(sp) ;save status register
or.w #$0700,sr ;turn off all interupts
stop TiC:
bclr.b #5,$fffffa15.w ;set interrupt mask B
ustawianie TiC:
move.l update,$114.w ;slap interrupt
move.b #246,$fffffa21.w ; set data
ori.b #80,$fffffa1b.w ; div mode
bset.b #5,$fffffa09.w ; enable TiC
bset.b #5,$fffffa15.w ; set interrupt mask B
;enable interrupts
move.w (sp)+,sr ;restore Status Register