' *** CONT_BRK.LST *** 2nd GFA-Manual, page 16-11 > PROCEDURE cont_song_break ' ' *** Interrupt song temporarily (key-click on again) ' *** Continue song later with: @cont_song_continue ' ' *** Global: cont.song.pointer% cont.song.register() [Cont_song_continue] ' LOCAL i DIM cont.song.register(15) cont.song.pointer%=XBIOS(32,L:-1) ! where are we? FOR i=0 TO 15 cont.song.register(i)=XBIOS(28,0,i) ! save the registers NEXT i SPOKE &H484,BSET(PEEK(&H484),0) ! key-click on EVERY STOP WAVE 0,0 ! silence RETURN ' *** > PROCEDURE cont_song_continue ' ' *** Continue song that was interrupted with Procedure Cont_song_break ' LOCAL i SPOKE &H484,BCLR(PEEK(&H484),0) ! key-click off FOR i=0 TO 15 ~XBIOS(28,cont.song.register(i),i OR 128) ! restore registers NEXT i IF cont.song.pointer%=0 ! song was just finished cont.song.pointer%=cont.song.adr% ENDIF EVERY 200 GOSUB cont_song ~XBIOS(32,L:cont.song.pointer%) ! continue the music ERASE cont.song.register() RETURN ' ********* '