void sndStart() { SndIniDt sys_ini; /* システム起動用データ格納領域 */ SND_INI_PRG_ADR(sys_ini) = (Uint16 *)0x22002400; /* 68Kプログラム格納先頭アドレス設定 */ SND_INI_PRG_SZ(sys_ini) = (Uint16 *)0x4fc8; /* 68Kプログラムサイズ設定 */ SND_INI_ARA_ADR(sys_ini) = (Uint16 *)0x22004400; /* サウンドエリアマップ格納先頭アドレス設定 */ SND_INI_ARA_SZ(sys_ini) = 0x0550; /* サウンドエリアマップサイズ(ワード指定)設定 */ SND_Init(&sys_ini); /* サウンドシステム起動 */ ... }
void sndCnt() { sndStart(); /* サウンドシステム起動(上記項目参照) */ SND_ChgMap(2); /* サウンドエリアマップ変更 */ SND_MoveData((Uint16 *)0x22005000, 0xffff, SND_KD_SEQ, 2); /* サウンドデータ転送(シーケンス) */ SND_MoveData((Uint16 *)0x22005500, 0xffff, SND_KD_TONE, 2); /* サウンドデータ転送(音色) */ SND_SetTlVl(15); /* 全体音量の設定 */ SND_StartSeq(0, 2, 5, 0); /* シーケンス開始 */ ... }
void sndHantei() { SndSeqStat status; /* シーケンスステータス格納領域定義 */ ... SND_GetSeqStat(&status, 0); /* シーケンスステータス取得 */ if(SND_SEQ_STAT_MODE(stauts) == SND_MD_STOP){ /* 発音管理番号0のシーケンスがstopかどうか?*/ SND_StartSeq(0, 2, 6, 0); /* シーケンス開始 */ } }