
	日本Falcom	FMD98 (Total Sound Driver)
			解析資料

※この資料は、TAB=スペース8個分で記述されています。


■(1) 共通構造体
━━━━━━━━━━━━━━━
========================================
Address		type		内容
+-------+-------+-------+-------+-------


0x180D		byte		
0x180E		byte		
0x180F		byte		リズム音源　全体音量
0x1810		word		タイマー割り込み制御　周期用ダウンカウンタ
0x1812		word		
0x1814		word		
0x1816		word		
0x1818		word		
0x181A		byte		音符の定数	＝ 12	（１オクターブの音符数）
0x181B		byte		
0x181C		word		何かの定数	＝100
0x181E		byte		
0x181F		byte		
0x1820		byte		
0x1821		byte		
0x1822		word		音程LFOの定数	＝ 256
0x1824		word		音程の定数	＝ 0x1000 (4096)
0x1826		word		タイマー割り込み制御　SSレジスタ退避用
0x1828		word		タイマー割り込み制御　SPレジスタ退避用
0x182A		word		MIDI音源 I/O Address
0x182C		word		MIDI音源 I/O Address
0x182E		word		
0x1830		word		各音源　存在有無のflag
0x1832		word		Flags	
				bit 7(0x0040)	早送りon/off
				bit14(0x4000)	効果音　有無
				bit15(0x8000)	ＢＧＭ　有無
0x1834		word		（ＢＧＭ用）
0x1836		word		（効果音用）
0x1838		word		テンポ（ＢＧＭ用）
0x183A		word		テンポ（効果音用）

0x1840		word		
0x1842		word		

0x1848		byte		Joy stick Portの内容

0x184A		word		
0x184C		word		0x0100番地をfar callした時のaxレジスタ
0x184E		word		テンポ用のカウンタ（ＢＧＭ用）
0x1850		word		テンポ用のカウンタ（効果音用）
0x1852		word		
0x1854		word		
0x1856		word
0x1858		word

0x185C		word		
0x185E		word		
0x1860		word		

0x1864		word		0x94コマンドでアクセスされる
0x1866		char(16,0x45)	ＢＧＭ：チャンネル個別構造体
0x1CB6		char( 3,0x45)	効果音：チャンネル個別構造体


========================================




■(2) チャンネル個別構造体
━━━━━━━━━━━━━━━
　４６Ｂｙｔｅのワークをもち、ドライバーのセグメントに存在。
演奏　データは、１８Ｂ５ｈからはじまる４６Ｂｙｔｅ×１６ｃｈ。
効果音データは、１ＣＢ６ｈからはじまる４６Ｂｙｔｅ×　３ｃｈ。
========================================
Address	type	内容
+-------+-------+-------+-------+-------
di+00h	word	音源情報	0000h	FM(0x88h)	0002h	FM(0x8Ch)
				0004h	SSG		0006h	Drum
				0008h	MIDI		000Ah	BEEP
di+02h	word	チャンネル情報
di+04h	byte	チャンネル
di+05h	byte	ssg:Noise / Tone switch | Drum:Short
di+06h	word	演奏アドレス（0x0000の場合、シーケンス無し）
di+08h	word	bit 0	0:処理する／1:処理しない
		bit 1	音程関係の処理の有無
		bit 2	ポルタメント	on/off
		bit 3	音程LFO		on/off
		bit 4	1shot LFO	on/off
		bit 5	ゲートタイム処理がある時に'Hi'
		bit 6	エンベロープ	on/off
		bit 7	音量LFO		on/off
		bit 8	
		bit 9	音程LFO	switchでon時に'Hi'
		bit10	タイflag
		bit11	
		bit12	
		bit13	
		bit14	
		bit15	0:ＢＧＭ／1:効果音
di+0ah	word	音長カウンタ（ダウンカウンター）
di+0ch	byte	音量					（0x8Dコマンド 引数）
di+0dh	byte	（音量）
di+0eh	word	KeyOffタイミング			（0x87コマンド 引数）
di+10h	word	KeyOffタイミング（音長カウンタと一致で処理）
di+12h	word	音程（Deturn,LFO,P無し）（Note No. × 48）
di+14h	word	前に機器に出力した音程
di+16h	byte	Note Number	コマンド？		（0x00〜0x7FのKey No.）
di+17h	byte	
di+18h	word	ディチューン				（0x86コマンド 引数）
di+1ah	byte	FM:アルゴリズム
di+1bh	byte	音色番号				（0x90コマンド 引数）
di+1ch	byte	パンポット				（0x8Cコマンド 引数）
di+1dh	byte	
di+1eh	byte	音量LFO	Decay				（0x98コマンド 第1引数）
di+1fh	byte	音量LFO	Decay Down Counter
di+20h	byte	音量LFO	Depth1				（0x98コマンド 第3引数）
di+21h	byte	音量LFO	Depth2				（0x98コマンド 第4引数）
di+22h	byte	音量LFO	早さ				（0x98コマンド 第2引数）
di+23h	word	
di+25h	byte	音程LFO	Decay[ticks]			（0x88コマンド 第1引数）
di+26h	byte	音程LFO	Decay Down Counter
di+27h	byte	音程LFO	最大Depth			（0x88コマンド 第3引数）
di+28h	byte	音程LFO	速さ 0（遅い）〜255 （速い）	（0x88コマンド 第2引数）
di+29h	byte	音程LFO	波形（ 0:Tri.／1:Sin）		（0x88コマンド 第4引数）
di+2ah	word	音程LFO	経過時間（変位処理用）
di+2ch	word	ポルタメント　変化量（相対値）		（0x89コマンド時にset）
di+2eh	word	ポルタメント　開始時の残り音長		（0x89コマンド時にset）
di+30h	byte	1s LFO	Decay[ticks]			（0x95コマンド 第1引数）
di+31h	byte	1s LFO	Decay Down Counter
di+32h	word	1s LFO	Depth				（0x95コマンド 第2引数）
di+34h	word	1s LFO	現在の変位量
di+36h	byte	エンベロープ	First Level		（0x92コマンド 第1引数）
di+37h	byte	エンベロープ	Attack Rate		（0x92コマンド 第2引数）
di+38h	byte	エンベロープ	Decay Rate		（0x92コマンド 第3引数）
di+39h	byte	エンベロープ	Decat Level		（0x92コマンド 第4引数）
di+3ah	byte	エンベロープ	Sustain Rate		（0x92コマンド 第5引数）
di+3bh	byte	エンベロープ	Release Rate		（0x92コマンド 第6引数）
di+3ch	byte	エンベロープ	処理段階
di+3dh	word	エンベロープ	経過時間（処理用）
di+3fh	byte	エンベロープ	音量
di+40h	
di+41h	
di+42h	byte	Velocity				（0x96コマンド 引数　bit7=L時）
di+43h	byte	Velocity				（0x96コマンド 引数　bit7=H時）
di+44h	Byte	ＰＳＧノイズ周波数			（0x91コマンド 引数）
========================================
