/******************************************************************
		    SUPER MARIO KART 64 SOUND ROUTINES
			    AUDIO INCLUDERS
		    Programmed By Yoji Inagaki (NCL, EAD)
		    Programmed By Taro Bando   (NCL, EAD)
 *******************************************************************/
/*********************************************
	    external labels & functions
 *********************************************/

extern void	Nas_InitAudio(void);
#ifndef _NO_RSP_TASK_EXT_
extern RSPTask	*Nas_AudioMain(void);
#endif

extern void Na_System_Start(u32);
extern void Na_Seq_Start(u16);
extern void Na_Fan_Start(u16);
extern void Na_kwprint_set(void);
extern void Na_Pass_Test(void);
extern void Na_Seq_Fadeout(u8);
extern void Na_PlyTrg_Start(u8, u32);
extern void Na_PlyLevel_Start(u8, u32);
extern void Na_PlyLevel_Stop(u8, u32);
extern void Na_PlyBridge_Start(u8, u32);
extern void Na_PlyBridge_Stop(u8, u32);
extern void Na_PlyVoice_Start(u8, u32);
extern void Na_PlyEng_Start(u8);
extern void Na_PlyEng_Stop(u8);
extern void Na_EnmTrg_Start(f32 *,f32 *, u32);
extern void Na_EnmTrg_Stop(f32 *, u32);
extern void Na_EnmLevel_Start(u8);
extern void Na_EnmLevel_Stop(u8);
extern void Na_EnmMuteki_Start(u8);
extern void Na_EnmMuteki_Stop(u8);
extern void Na_SceneLevel_Start(f32 *,f32 *, u32);
extern void Na_SceneLevel_Stop(f32 *, u32);
extern void Na_SceneLevel_Stop(f32 *, u32);

extern void Na_PauseSet(u8);
extern void Na_ChangeSoundMode(u8,u8);
extern void Na_Fanfare_Start(u8);
extern void Na_GoalFanfare_Set(u16, u16);

extern void Na_StarBGM_Start(u8);
extern void Na_StarBGM_Stop(u8);
extern void Na_PlyThunder_Start(u8);
extern void Na_PlyThunder_Stop(void);
extern void Na_EnmThunder_Start(u8);
extern void Na_EnmThunder_Stop(u8);
extern void Na_PlyObake_Start(u8);
extern void Na_PlyObake_Stop(u8);

extern void Na_SeMute_Goal(u8);
extern void Na_SeMute_Off(u8);
extern void Na_SeMute_Title(void);
extern void Na_SeMute_Title_Off(void);
extern void Na_PanDeforume(void);

extern void Na_PlyEcho_On(u8, s8);
extern void Na_PlyEcho_Off(u8);
extern void Na_EnmEcho_On(u8, s8);
extern void Na_EnmEcho_Off(u8);

extern void Nai_SetFxHandleVolume(u8, u8, u16);	// SE Handle , Target Volume , timer
extern void Nai_FxFlagEntry(u32 , f32 *, u8 , f32 *, f32 *, s8 *);

extern void Nai_SeqFlagEntry(u32 );
extern void Nas_AudioInput(void);
extern void Nai_SeqBufFlagCheck(void);
extern u16 Nai_GetPlayingSeqFlag(u8 );
extern void Nai_InitInterface(void);
extern void Nai_StopAllHandleFx(u8);
extern void Nai_StopAllObjHandleFx(u8, f32 *);
extern void Nai_StopAllObjFx(f32 *);
extern void Nai_StopFx(u32);
extern void Nai_FxSetLockFlag(u16 );
extern void Nai_StopObjFlagFx(f32 *,u32 );
//extern void Na_AllSoundFadeOut(u8);
extern void Na_SE_Fadeout(u8);
extern void Na_PlyDash_Start(u8);
extern void Na_EnmVoice_Start(u8, u32);
extern void Na_PlyLand_Start(u8, f32);
extern void Na_PlyCrush_Start(u8, f32);
extern void Na_MusicVolume(u8);
extern void Na_SeMute_Hyoushou(void);
extern void Na_Fourth_Init(void);
extern void Na_Fourth_Routine(void);

/*********************************************
	    external work
 *********************************************/
extern f32 _dummy_zero_f[3];
extern f32 _dummy_one;
extern f32 _dummy_two;
extern f32 _dummy_low;
extern u8 _dummy_zero_u8;
extern s8 _dummy_zero_s8;


/*********************************************
	    define sequence macro
 *********************************************/

#define Na_SeqStart(h, f, t)		Nai_SeqFlagEntry(0x00000000 | ((u8)h << 24) | ((u8)t << 16) | (u16)f )
#define Na_SeqStop(h, t)		Nai_SeqFlagEntry(0x100000ff | ((u8)h << 24) | ((u8)t << 16) )
#define Na_SeqEntry(h, f, t)		Nai_SeqFlagEntry(0x20000000 | ((u8)h << 24) | ((u8)t << 16) | (u16)f )
#define Na_SeqFree(h, f)		Nai_SeqFlagEntry(0x30000000 | ((u8)h << 24) | (u16)f )
#define Na_SeqVolMove(h, v, t)		Nai_SeqFlagEntry(0x40000000 | ((u8)h << 24) | ((u8)t << 16) | (u8)v )
#define Na_SeqVolRecover(h, t)		Nai_SeqFlagEntry(0x4000007f | ((u8)h << 24) | ((u8)t << 16) )
//#define Na_SeqVolRecover(h, t)	Nai_SeqFlagEntry(0x50000000 | ((u8)h << 24) | ((u8)t << 16) )
#define Na_SeqTuneMove(h, p, t)		Nai_SeqFlagEntry(0x50000000 | ((u8)h << 24) | ((u8)t << 16) | (u16)p )
#define Na_SeqTuneRecover(h, t)		Nai_SeqFlagEntry(0x50000000 | ((u8)h << 24) | ((u8)t << 16) | 1000 )

#define Na_SeqSubEVolMove(h, s, v, t)	Nai_SeqFlagEntry(0x60000000 | ((u8)h << 24) | ((u8)t << 16) | ((u8)s << 8) | (u8)v )
#define Na_SeqPortWrite(h, p, d)	Nai_SeqFlagEntry(0x70000000 | ((u8)h << 24) | ((u8)p << 16) | (u8)d )
#define Na_SeqSubPortWrite(h, s, p, d)	Nai_SeqFlagEntry(0x80000000 | ((u8)h << 24) | ((u8)p << 16) | ((u8)s << 8) | (u8)d )
#define Na_SeqPortLockSet(h, b)		Nai_SeqFlagEntry(0x90000000 | ((u8)h << 24) | (u16)b )
#define Na_SeqSubMuteSet(h, b)		Nai_SeqFlagEntry(0xA0000000 | ((u8)h << 24) | (u16)b )
//#define Na_SeqTempoChange(h, tp, t)	Nai_SeqFlagEntry(0xB0000000 | ((u8)h << 24) | ((u8)t << 16) | (u16)tp )
#define Na_SeqTempoChangeDirect(h, tp, t)	Nai_SeqFlagEntry(0xB0000000 | ((u8)h << 24) | ((u8)t << 16) | (u16)tp )
#define Na_SeqTempoChangeAdd(h, tp, t)		Nai_SeqFlagEntry(0xB0001000 | ((u8)h << 24) | ((u8)t << 16) | (u16)tp )
#define Na_SeqTempoChangeSub(h, tp, t)		Nai_SeqFlagEntry(0xB0002000 | ((u8)h << 24) | ((u8)t << 16) | (u16)tp )
#define Na_SeqTempoChangeMul(h, tp, t)		Nai_SeqFlagEntry(0xB0003000 | ((u8)h << 24) | ((u8)t << 16) | (u16)tp )
#define Na_SeqTempoChangeRecover(h, t)		Nai_SeqFlagEntry(0xB0004000 | ((u8)h << 24) | ((u8)t << 16) )

#define Na_SeqEndCheckSet(h, f)		Nai_SeqFlagEntry(0xC0000000 | ((u8)h << 24) | (u32) f )
#define Na_SeqECheck_SeqStart(h1, h2, f)	Nai_SeqFlagEntry(0xC0500000 | ((u8)h1 << 24) | ((u8)h2 << 16) | (u16) f )
#define Na_SeqECheck_TempoChangeMul(h1, h2, tpr, t)	Nai_SeqFlagEntry(0xC0300000 | ((u8)h1 << 24) | ((u8)h2 << 16) | ((u8)t << 8) | (u8) tpr )
#define Na_SeqECheck_MuteOff(h1, h2, t)	Nai_SeqFlagEntry(0xC0000000 | ((u8)h1 << 24) | ((u8)h2 << 16) | ((u8)t << 8))
#define Na_SeqECheck_SeqFree(h1)	Nai_SeqFlagEntry(0xC0100000 | ((u8)h1 << 24))
#define Na_SeqECheck_SeqRestart(h1, h2)	Nai_SeqFlagEntry(0xC0200000 | ((u8)h1 << 24) | ((u8)h2 << 16))
#define Na_SeqECheck_TempoChangeRecover(h1, h2, t)	Nai_SeqFlagEntry(0xC0400000 | ((u8)h1 << 24) | ((u8)h2 << 16) | ((u8)t << 8))
#define Na_SeqECheck_SeqTimerSet(h1, t)	Nai_SeqFlagEntry(0xC0600000 | ((u8)h1 << 24) | ((u8)t << 8) )
#define Na_SeqECheck_BufClear(h1)	Nai_SeqFlagEntry(0xC0F00000 | ((u8)h1 << 24))
#define Na_SoundOutModeSet(m)		Nai_SeqFlagEntry(0xe0000000 | (u8)m )
#define Na_BgmNonEntrySet(f)		Nai_SeqFlagEntry(0xe0000100 | (u16)f )
#define Na_SpecChange(s, n)		Nai_SeqFlagEntry(0xf0000000 | ((u8)s << 8)  | (u8)n )


/*********************************************
	    end check flag
 *********************************************/
#define NA_ECMD_SEQ0_MUTE_OFF	0x000400
#define NA_ECMD_SEQ_RELEASE	0x100000
#define NA_ECMD_SEQ_RESTART	0x200000
#define NA_ECMD_SEQ_TEMPOMOVE	0x30a005
#define NA_ECMD_SEQ_TEMPORECOVER   0x400005


/*********************************************
	    Groop Track Handle
 *********************************************/
#define BGM_GROUP_TRACK		0
#define FAN_GROUP_TRACK		1
#define SE_GROUP_TRACK		2


/*********************************************
	    SE Handle
 *********************************************/
#define SEHD_PLAYERLEVEL	0
#define SEHD_TRIGGER		1
#define SEHD_VOICE			2
#define SEHD_ENEMYLEVEL		3
#define SEHD_SYSTEM			4
#define SEHD_SCENELEVEL		5


/********************************
	BGM FLAGS
 ********************************/
#define NA_SEQ_SE		0x0000
#define TITLE_BGM		0x0001
#define SELECT_BGM		0x0002
#define CIRCUIT_BGM		0x0003
#define COUNTRY_BGM		0x0004
#define MOUNTAIN_BGM	0x0005
#define BEACH_BGM		0x0006
#define OBAKE_BGM		0x0007
#define SNOW_BGM		0x0008
#define CASTLE_BGM		0x0009
#define DIRT_BGM		0x000a
#define GRID_BGM		0x000b
#define FINALLAP_FAN	0x000c
#define GOALIN_A_BGM	0x000d
#define GOALIN_B_BGM	0x000e
#define GOALIN_C_BGM	0x000f
#define RESULT_BGM		0x0010
#define STAR_BGM		0x0011
#define RAINBOW_BGM		0x0012
#define JUNGLE_BGM		0x0013
#define GAMEOVER_BGM	0x0014
#define HIGHWAY_BGM		0x0015
#define TIMEGRID_BGM	0x0016
#define VSRESULT_BGM	0x0017
#define LOSTRESULT_BGM	0x0018
#define BATTLE_BGM		0x0019
#define PRIZE_A_BGM		0x001a
#define PRIZE_B_BGM		0x001b
#define ENDING_BGM		0x001c
#define PRIZE_C_BGM		0x001d

/********************************
	SE FLAGS
 ********************************/
/*  Player Engine, Level  */
#define SE_ENGINE_MARIO	    0x0104ff00
#define SE_ENGINE_LUIZI	    0x0104ff01
#define SE_ENGINE_YOSSY	    0x0104ff02
#define SE_ENGINE_KINOP	    0x0104ff03
#define SE_ENGINE_DONKY	    0x0104ff04
#define SE_ENGINE_WARIO	    0x0104ff05
#define SE_ENGINE_PEACH	    0x0104ff06
#define SE_ENGINE_KUPPA	    0x0104ff07

#define SE_BRAKE			0x0100f908
#define SE_SLIP				0x0100f009
#define SE_DRIFT			0x0100f40a
#define SE_GRASS_C			0x0100f00b
#define SE_GRASS_L			0x0100f00c
#define SE_GRASS_R			0x0100f00d
#define SE_WATER_C			0x0100f00e
#define SE_WATER_L			0x0100f00f
#define SE_WATER_R			0x0100f010
#define SE_SAND_TRAP_C		0x0100f011
#define SE_SAND_TRAP_L		0x0100f012
#define SE_SAND_TRAP_R		0x0100f013

#define SE_ROULETTE			0x0100fe1c
#define SE_RAPID_ACC		0x0100f81d
#define SE_WOOD				0x0100f01e
#define SE_STONE			0x0100f01f
#define SE_TURIBASHI		0x0100f020
#define SE_SNOW				0x0100f021
#define SE_SPIN_TURN		0x0100f822
#define SE_KIBASHI			0x0100f023
#define SE_FUWAFUWA			0x0100f024
#define SE_BABLE			0x0100f025
#define SE_PLY_ENG_BARIBARI	0x0100f926
#define SE_PLY_ENG_BARI4	0x01008026
#define SE_ICE				0x0100f027
#define SE_REVERSE			0x0100fa28

#define SE_DIRT_TRAP_C		0x0100f029
#define SE_DIRT_TRAP_L		0x0100f02a
#define SE_DIRT_TRAP_R		0x0100f02b

#define SE_MUTEKI_BGM		0x0100ff2c
#define SE_JUNGLE_LEVEL		0x0170802d

#define SE_RAILWAY			0x01008046
#define SE_ITEM_DECIDE_L    0x0100fe47

#define SE_WET_SNOW_C		0x0100f048
#define SE_WET_SNOW_L		0x0100f049
#define SE_WET_SNOW_R		0x0100f04a
#define SE_JYUGEMU_LEVEL	0x0100fa4b
#define SE_OBAKE_LEV		0x0100fa4c


/*  Triger  */
/*  Enemy Triger  */
#define SE_MINI_JUMP	    0x19008000
#define SE_ENEMY_CRUSH	    0x19008001
#define SE_HANE_JUMP	    0x19008002
#define SE_GOAL_IN		    0x1900f103
#define SE_KAME_HASSHA	    0x19008004
#define SE_BIG_CRUSH	    0x19009005
#define SE_ITEMBOX		    0x19008406
#define SE_CHOROPU		    0x19018007
#define SE_DIVE_WATER		0x19008008
#define SE_CHAKUCHI_M		0x1900a209
#define SE_CHAKUCHI_L		0x1900a60a
#define SE_DASH				0x1900a40b
#define SE_THUNDER			0x1900f00c
#define SE_KITEKI			0x1901800d
#define SE_KITEKI2			0x1901800e
#define SE_DOSSUN		    0x1900800f
#define SE_KAME_HIT		    0x19018010
#define SE_SLIPSTREEM	    0x19008011
#define SE_BANANA		    0x19008012
#define SE_THUNDER_PAN		0x1900f013
#define SE_ENM_THROW		0x19018014
#define SE_2ND_LAP			0x1900f015
#define SE_FUMIKIRI			0x19017016
#define SE_PENGUIN			0x19007017
#define SE_TREE				0x19007018
#define SE_WALL				0x19007019
#define SE_GARD				0x1900701a
#define SE_TESURI			0x1900701b
#define SE_DIVE_YOUGAN		0x1900801c
#define SE_SHARBET			0x1900701d
#define SE_OVER_DRIFT		0x1900851e
#define SE_UEKOMI			0x1900701f
#define SE_CRUSH00			0x19007020
#define SE_CRUSH01			0x19007021
#define SE_CRUSH02			0x19007022
#define SE_CRUSH03			0x19007023
#define SE_CRUSH04			0x19007024
#define SE_CRUSH05			0x19007025
#define SE_CRUSH06			0x19007026
#define SE_CRUSH07			0x19007027
#define SE_CRUSH08			0x19007028
#define SE_CRUSH09			0x19007029
#define SE_CRUSH10			0x1900702a
#define SE_CRUSH11			0x1900702b
#define SE_CRUSH12			0x1900702c
#define SE_CRUSH13			0x1900702d
#define SE_CRUSH14			0x1900702e
#define SE_CRUSH15			0x1900702f
#define SE_CRUSH16			0x19007030
#define SE_CRUSH17			0x19007031
#define SE_CRUSH18			0x19007032
#define SE_CRUSH19			0x19007033
#define SE_CRUSH20			0x19007034
#define SE_CRUSH21			0x19007035
#define SE_CRUSH22			0x19007036
#define SE_CRUSH23			0x19007037
#define SE_CRUSH24			0x19007038
#define SE_CRUSH25			0x19007039
#define SE_FINALLAP_BGM		0x1900ff3a
#define SE_HORN1			0x1901703b
#define SE_HORN2			0x1901703c
#define SE_HORN3			0x1901703d
#define SE_HORN4			0x1901703e
#define SE_HORN5			0x1901703f
#define SE_HORN6			0x19017040
#define SE_HORN7			0x19017041
#define SE_HORN8			0x19017042
#define SE_KAMOME			0x19017043
#define SE_KOUMORI			0x19017044
#define SE_WARAU			0x19018045
#define SE_WARAU_SLIDE		0x19036045
#define SE_PENGUIN_CRUSH	0x1900a046
#define SE_KISEN			0x19018047
#define SE_KISEN2			0x19018048
#define SE_KOPENGUIN		0x19007049
#define SE_DOSSUN_CRUSH		0x1901a24a
#define SE_HARAHORO			0x1901904b
#define SE_DOSSUN_HIT		0x1900a04c
#define SE_COU				0x1901904d
#define SE_KANOKE			0x1901904e
#define SE_CAMERA_LONG		0x1900904f
#define SE_CAMERA_SHORT		0x19009050
#define SE_FUUSEN_OUT		0x19009051
#define SE_PAKKUN_CRUSH		0x1900a052
#define SE_BANANA_OUT		0x19019053
#define SE_KAME_OUT		    0x19008054
#define SE_FREEZE			0x1900a055
#define SE_ICE_CRUSH	    0x1900a056
#define SE_WANWAN			0x19018057
#define SE_HAZURE			0x1900a058
#define SE_OBAKE_TRG		0x19009e59
#define SE_TERESA			0x1900705a

/*  Voice  */
#define SE_VOICE_SHOT	    0x29008000
#define SE_VOICE_GOGO	    0x29008001
#define SE_VOICE_GOGO2	    0x29008002
#define SE_VOICE_SPIN	    0x29008003
#define SE_VOICE_FALL	    0x29008004
#define SE_VOICE_DAMAGE	    0x29008005
#define SE_VOICE_HIT	    0x29008006
#define SE_VOICE_GOALIN	    0x29008007
#define SE_VOICE_LUCKY	    0x29008008
#define SE_ENM_VOICE_LUCKY	0x29008008
#define SE_ENM_VOICE_THROW	0x29008009
#define SE_ENM_VOICE_SPIN	0x2900800a
#define SE_ENM_VOICE_DAMAGE	0x2900800b
#define SE_VOICE_JUMP		0x2900800c
#define SE_VOICE_YAHHO		0x2900800d
#define SE_ENM_VOICE_OVERTAKE	0x2900800d
#define SE_VOICE_DECIDE	    0x2900800e

/*  Voice Offset  */
#define SE_MARIO			0x00000000
#define SE_LUIZI			0x00000010
#define SE_YOSSY			0x00000020
#define SE_KINOP			0x00000030
#define SE_DONKY			0x00000040
#define SE_WARIO			0x00000050
#define SE_PEACH			0x00000060
#define SE_KUPPA			0x00000070

/*  enemy Engine, Level  */
#define SE_ENM_ENG_MARIO    0x31028000
#define SE_ENM_ENG_LUIZI    0x31028001
#define SE_ENM_ENG_YOSSY    0x31028002
#define SE_ENM_ENG_KINOP    0x31028003
#define SE_ENM_ENG_DONKY    0x31028004
#define SE_ENM_ENG_WARIO    0x31028005
#define SE_ENM_ENG_PEACH    0x31028006
#define SE_ENM_ENG_KUPPA    0x31028007
#define SE_ENM_MUTEKI		0x31029008

/*  System  */
#define SE_CURSOL			0x49008000
#define SE_DECIDE			0x49008001
#define SE_CANCEL			0x49008002
#define SE_RED_SIGNAL	    0x49008003
#define SE_GREEN_SIGNAL	    0x49008004
#define SE_PAUSE_ON			0x49008005
#define SE_PAUSE_OFF		0x49008006
#define SE_BUBU				0x4900ff07
#define SE_LOGO				0x49018008
#define SE_ThisIsMarioKart	0x49009009
#define SE_MarioGrandprix	0x4900900a
#define SE_TimeAttack		0x4900900b
#define SE_Versus			0x4900900c
#define SE_Battle			0x4900900d
#define SE_SelectLevel		0x4900900e
#define SE_OK				0x4900900f
#define SE_Option			0x49009010
#define SE_Data				0x49009011
#define SE_SelectYourPlayer	0x49009012
#define SE_SelectMap		0x49009013
#define SE_Congratulations	0x49009014
#define SE_WIPE_RESULT		0x49008015
#define SE_MENU_OK			0x49008016
#define SE_COIN				0x49008017
#define SE_KARABUKASHI1		0x49008018
#define SE_KARABUKASHI2		0x49008019
#define SE_MENU_OK_TITLE	0x4900801a
#define SE_MENU_OK_QUIT		0x4900801b
#define SE_MAP_CHANGE		0x4900801c
#define SE_BGM_MUTE			0x4900801c
#define SE_ERASE_DATA		0x4900801d
#define SE_HANABI			0x4900801e
#define SE_PUKUPUKU_BIGGER	0x4900801f
#define SE_PUKUPUKU_DOWN	0x49008020
#define SE_PUKUPUKU_FIRE	0x49008021
#define SE_DODAI_UP			0x49008022
#define SE_STAR_BURST		0x49008023
#define SE_STEREO			0x49008024
#define SE_HEADPHONE		0x49008025
#define SE_THE_END			0x49008026
#define SE_KARABUKASHI1_J	0x49008027
#define SE_KARABUKASHI2_J	0x49008028
#define SE_MONO				0x49008029
#define SE_EEEE				0x4900802a

//#define SE_		0x490080

/*  Scene Level  */
/*  Enm etc. Level */
#define SE_KISHA_LEVEL		0x51018000
#define SE_WATER_FALL		0x51028001
#define SE_BUS_LEVEL		0x51018002
#define SE_TRUCK_LEVEL		0x51018003
#define SE_TRAILER_LEVEL	0x51018004
#define SE_COUPE_LEVEL		0x51018005
#define SE_KOUMORI_LEVEL	0x51028006
#define SE_ZUSSIN_SLIDE		0x51038007
#define SE_TOGEGAME_LEVEL	0x51018008
#define SE_KUPPA_FIRE		0x51038009
#define SE_KOKUPPA_FIRE		0x5102800a
#define SE_KANSEI			0x5103700b
#define SE_THUNDER_LEV		0x5101c00c


/* Output Mode Define */
#define WIDE_MODE		0
#define HEADPHONE_MODE	1
#define STEREO_MODE		2
#define MONO_MODE		3

/* Echo Volume Define */
#define ECHO_TUNNEL	85
#define ECHO_ROOM	65
#define ECHO_WALL	30

/* BGM Volume Define */
#define FULL_VOLUME 127
#define HARF_VOLUME	75
#define ZERO_VOLUME	0

/*********************************************
	    define macro
 *********************************************/

//#define Na_System_Start(f)		Nai_FxFlagEntry(f, &_dummy_zero_f[0], 4, &_dummy_one, &_dummy_one, &_dummy_zero_s8);
//#define Na_System_Start(f)
//#define Na_Seq_Start(n)		Na_SeqStart(BGM_GROUP_TRACK, n, 1)
//#define Na_Fan_Start(n)		Na_SeqStart(FAN_GROUP_TRACK, n, 1)
#define Na_Seq_Stop()		Na_SeqStop(BGM_GROUP_TRACK, 1)
#define Na_Fan_Stop()		Na_SeqStop(FAN_GROUP_TRACK, 1)
//#define Na_Seq_Fadeout(n)	Na_AllSoundFadeOut(n)
#define Na_SeSeq_Start()	Nai_InitInterface()

/*----------------------------------------------------------------------*/
