@sqward fajne podejście z taskami.
u mnie właśnie przerwanie końca odtwarzania sampla ('Przerwanie_MONO') przełącza task na drugi który ładuje GEMDOSem nowe dane sampli, który to potem wraca do głównego procesu.
Przerwanie_MONO:
move.w #$2700,SR
bclr.b #MFP_MONO,MFP_ISRA.w
; zamiana buforow
move.l Bufor,D0
move.l Bufor+4,Bufor
move.l D0,Bufor+4
move.l Bufor_Koniec,D0
move.l Bufor_Koniec+4,Bufor_Koniec
move.l D0,Bufor_Koniec+4
; nowy adres dzwięku
move.b Bufor_Koniec+3,SDMA_END+4
move.b Bufor_Koniec+2,SDMA_END+2
move.b Bufor_Koniec+1,SDMA_END
move.b Bufor+3,SDMA_START+4
move.b Bufor+2,SDMA_START+2
move.b Bufor+1,SDMA_START
move.w 0(SP),TMP_SR
move.l 2(SP),TMP_ADDR
move.w #$2300,0(SP)
move.l #TMP_Proc,2(SP)
rte
TMP_Proc:
; czytaj plik
move.l Bufor+4(PC),A0
move.l #Bufor_wielkosc,D0
bsr GEMDOS_Fread
cmp.l #Bufor_wielkosc,D0
bpl TMP_Koniec
ST Flaga_SDMA
TMP_Koniec:
TMP_SR EQU *+2
move.w #$2300,SR
TMP_ADDR EQU *+2
jmp *