BGM_STAT_PLAY equ 1 ;リターンコード BGM_STAT_MUTE equ 0 BGM_STAT_REPT equ 1 BGM_STAT_1TIM equ 0 BGM_STAT_ON equ 1 BGM_STAT_OFF equ 0 BGM_MES_ON equ 1 ;パラメータ BGM_MES_OFF equ 0 BGM_MUSIC equ 1 BGM_SOUND_ equ 2 ; ↑'BGM_SOUND'より変更 BGM_COMPLETE equ NoError ; エラーナンバー BGM_FILE_ERR equ FileNotFound BGM_FORMAT_ERR equ InvalidFormat BGM_OVERFLOW equ InsufficientMemory BGM_TOOMANY equ InvalidData BGM_NO_MUSIC equ InvalidData BGM_NOT_PLAY equ GeneralFailure BGM_NOT_STOP equ GeneralFailure BGM_EXTENT_ERR equ InvalidData ON equ 1 OFF equ 0 TRUE equ 1 FALSE equ 0 FINISH equ 1 NOTFIN equ 0 SEND equ 0 VEND equ 0 BEEP_SW equ 37h ;ポートアドレス・設定値 BEEP_ON equ 06h BEEP_OFF equ 07h BEEP_CNT equ 3fdbh BEEP_MODE equ 3fdfh BEEP_CNT_AT equ 42h BEEP_MODE_AT equ 43h INTCTRL equ 00h EOI equ 20h IMR equ 02h TIMERMASK equ 01h TIMER_CNT equ 71h TIMER_SET equ 77h CLOCK_CHK equ 42h PMAX equ 3 ;パート数 ALL_PART equ 7 ;演奏終了チェック用 BUFMAX equ 4096 ;1パートのバッファ長 SBUFMAX equ 256 ;効果音1音のバッファ長 MINNOTE equ 32 ;最小音符 MINLCNT equ 1 ;最小カウントデータ DEFTEMPO equ 120 ;デフォルトテンポ TEMPOMAX equ 240 ;最大テンポ TEMPOMIN equ 30 ;最小テンポ DEFOCT equ 4 ;デフォルトオクターブ DEFLEN equ 4 ;デフォルト音長 DEFLCNT equ 8 ;デフォルト音長カウント値 DIVNUM equ 8 ;1オクターブの音数 REST equ 'H' ;休符 UNDF equ 100 ;未定義音符 MMAX equ 16 ;最大曲数 SMAX equ 16 ;最大効果音数 TIMER equ 1 ;タイマ = 1ms TVAL8ORG equ 1997 ;タイマ設定値 8MHz(1msec) TVAL10ORG equ 2458 ;タイマ設定値 10MHz(1msec) TVALATORG_RTC equ 16 ;タイマ設定値 8192Hz*2(AT互換機) (1msec) TVALATORG equ 1193 ;タイマ設定値 1193.18K(AT互換機) (1msec) TVAL8ORG2 equ 19968 ;タイマ設定値 8MHz(10msec) TVAL10ORG2 equ 24576 ;タイマ設定値 10MHz(10msec) ;TVALATORG2 equ 41 ;タイマ設定値 4096Hz(AT互換機) (10msec) ;TVALATORG2 equ 11931 ;タイマ設定値 1193.18K(AT互換機) (10msec) TCNTMAX equ 20 ;割り込み何回に 1回処理するか ; ;ステータス構造体 ; SBSTAT struc bmusic dw ? ;演奏処理 ON/OFF bsound dw ? ;効果音処理 ON/OFF bplay dw ? ;演奏中か否か beffect dw ? ;効果音出力中か否か brepeat dw ? ;リピート演奏か否か bmnum dw ? ;登録曲数 brnum dw ? ;セレクト中曲番号 btempo dw ? ;現在のテンポ bsnum dw ? ;登録効果音数 bfnum dw ? ;セレクト中効果音番号 SBSTAT ends ; ;グローバルデータ構造体 ; SGLB struc simr dw ? ;interrupt mask register ; ↑'imr'より変更 tval dw ? ;タイマ設定値 tp dw ? ;テンポ rflg dw ? ;BGM ON/OFF pnum dw ? ;パート数 pcnt dw ? ;パートカウンタ fin dw ? ;パート終了フラグ repsw dw ? ;リピート ON/OFF ; ↑'rep'より変更 tcnt dw ? ;処理カウンタ(4回に 1回処理) bufsiz dw ? ;楽譜バッファのサイズ buflast dw ? ;楽譜バッファのラスト mnum dw ? ;登録曲数 mcnt dw ? ;セレクト中曲番号 track dw MMAX dup(?) ;曲のトラックナンバー pmask dw ? ;パートマスク情報 ; ↑'mask'より変更 mtp dw MMAX dup(?) ;曲ごとのテンポ情報 effect dw ? ;効果音 ON/OFF snum dw ? ;登録効果音数 scnt dw ? ;セレクト中効果音番号 music dw ? ;演奏処理 ON/OFF sound dw ? ;効果音処理 ON/OFF init dw ? ;イニシャライズ実行フラグ clockbase dd ? ;tempo120時のタイマカウント SGLB ends ; ;パート構造体 ; SPART struc pptr dd ? ;楽譜バッファポインタ ; ↑'ptr'より変更 mbuf dd ? ;楽譜バッファ note dw ? ;現在の音符 oct dw ? ;現在のオクターブ len dw ? ;現在の音長 dflen dw ? ;デフォルトの音長 lcnt dw ? ;音長カウンタ msk dw ? ;パートマスク ON/OFF ; ↑'mask'より変更 tnt dw ? ;テヌート ON/OFF SPART ends ; ;効果音構造体 ; SESOUND struc sptr dd ? ;効果音データポインタ sbuf dd ? ;効果音データバッファ SESOUND ends