mirror of https://github.com/nmlgc/ReC98.git
144 lines
4.2 KiB
PHP
144 lines
4.2 KiB
PHP
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
|