/******************************************************************************\
**  Music example (uses the Extension) for Secal                              **
**  Requires Kickstart 2                                                      **
\******************************************************************************/


go main;									# EXECUTION STARTS AT THE BEGINNING OF THE
													# PROGRAM, GO TO THE MAIN CODE


include "ext/ext.inc";		# COMPILE THE HEADER INTERFACE FOR EXTENSION TOO
inclib "ext/ext.lib";			# USE EXT.LIB AS A LINK LIBRARY


main:											# MAIN ENTRY POINT
push d2\a2;								# SAVE MODIFIED NONVOLATILE REGISTERS

x_Init;										# INITIALIZE EXTENSION
if d0 then
	x_AudioStart(%1111);		# START AUDIO SUBSYSTEM
	if d0 then
		x_Mus_Load("data/mod.corn",%1111); a2:=a0;
												# LOAD AND INIT MUSIC, STRORE PTR IN A2
		if a2 then
			x_Mus_Play(a2,0);				# START PLAYING

			while [$dff016] and $400 do x_Delay(1);;
												# DIRTY CHECK FOR RIGHT MOUSE BUTTON

			for d2.uw:=$fc00 downto 0 step 1024 do	# VOLUME FADE LOOP
				x_Delay(1);						# LITTLE DELAY
				x_Mus_Modify(a2,-1,d2);			# MODIFY VOLUME ONLY
			;

			x_Mus_Stop(a2);				# STOP PLAYING
		;
	;
	x_Done;								# SHUT DOWN EXTENSION. THIS FUNCTION WILL ALSO FREE
												# EVERYTHING ALLOCATED THRU THE EXTENSION, WHICH WE
												# DIDN'T FREE ALLREADY (SCREENS, MUSIC, ANIMS, ETC.)
;

d0.l:=0;								# RETURN CODE FOR DOS

pop d2\a2;							# RESTORE NONVOLATILE REGISTERS
rts;										# RETURN

