Sound Blaster Pro II など に搭載されているFM音源ICです。
たぶん互換性があるであろう Sound Blaster 16 やそのエミュレータなどでも使用できると思われます。
DOSや自作系OS用のアプリを作成するための資料として自分用に整理中。
(以下書きかけです。間違っていたり誤記がある可能性があります)
サウンドカード | ベースポート |
Sound Blaster Pro II | 220h または 240h など(選択可) |
AdLib Gold | 388h |
※Sound Blaster Pro I など は YMF262では無く FM1812 が2つ使用されているそうです。
その場合、ベース+0~+1とベース+2~+3は両方ともFM1812のレジスタマップとなり2オペレータ18チャネルのみ利用可能と思われます。
I/Oポート番号 | アクセス | ポートの意味 |
ベース+0 | R | ステータスレジスタ |
W | プライマリ インデックスレジスタ | |
ベース+1 | W | プライマリ データレジスタ |
ベース+2 | W | セカンダリ インデックスレジスタ |
ベース+3 | W | セカンダリ データレジスタ |
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
IRQ | TF1 | TF2 | - | 0 | - |
アドレス (hex) | プライマリ | セカンダリ | |||||||||||||||
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ||
01h | LSI TEST | - | LSI TEST | ||||||||||||||
- | WM | - | |||||||||||||||
02h | TIMER 1 | - | |||||||||||||||
03h | TIMER 2 | - | |||||||||||||||
04h | RST | MT1 | MT2 | - | ST2 | ST1 | - | 4 OPERATOR MODE | |||||||||
12 | 11 | 10 | 3 | 2 | 1 | ||||||||||||
05h | - | - | NEW | ||||||||||||||
08h | - | NTS | - | - | |||||||||||||
20-35 | AM | VB | EGT | KSR | MULTI | AM | VB | EGT | KSR | MULTI | |||||||
40-55 | KSL | TL | KSL | TL | |||||||||||||
60-75 | AR | DR | AR | DR | |||||||||||||
80-95 | SL | RR | SL | RR | |||||||||||||
A0-A8 | Freq Number(L) | Freq Number(L) | |||||||||||||||
B0-B8 | - | KON | BLOCK | FNum(H) | - | KON | BLOCK | FNum(H) | |||||||||
BD | DAM | DVB | RYT | BD | SD | TOM | TC | HH | - | ||||||||
C0-C8 | CH | FB | CNT | CH | FB | CNT | |||||||||||
D | C | B | A | D | C | B | A | ||||||||||
E0-F5 | - | WS | - | WS | |||||||||||||
アドレス (hex) | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | |
プライマリ | セカンダリ |
チャネル | コントロールポート | スロット | スロットポート |
1 | A0 B0 C0 | 1 | 20 40 60 80 E0 |
4 | 23 43 63 83 E3 | ||
2 | A1 B1 C1 | 2 | 21 41 61 81 E1 |
5 | 24 44 64 84 E4 | ||
3 | A2 B2 C2 | 3 | 22 42 62 82 E2 |
6 | 25 45 65 85 E5 | ||
4 | A3 B3 C3 | 7 | 28 48 68 88 E8 |
10 | 2B 4B 6B 8B EB | ||
5 | A4 B4 C4 | 8 | 29 49 69 89 E9 |
11 | 2C 4C 6C 8C EC | ||
6 | A5 B5 C5 | 9 | 2A 4A 6A 8A EA |
12 | 2D 4D 6D 8D ED | ||
7 | A6 B6 C6 | 13 | 30 50 70 90 F0 |
16 | 33 53 73 93 F3 | ||
8 | A7 B7 C7 | 14 | 31 51 71 91 F1 |
17 | 34 54 74 94 F4 | ||
9 | A8 B8 C8 | 15 | 32 52 72 92 F2 |
18 | 35 55 75 95 F5 |
チャネル | コントロールポート | スロット | スロットポート |
1 | A0 B0 C0 C3 | 1 | 20 40 60 80 E0 |
4 | 23 43 63 83 E3 | ||
7 | 28 48 68 88 E8 | ||
10 | 2B 4B 6B 8B EB | ||
2 | A1 B1 C1 C4 | 2 | 21 41 61 81 E1 |
5 | 24 44 64 84 E4 | ||
8 | 29 49 69 89 E9 | ||
11 | 2C 4C 6C 8C EC | ||
3 | A2 B2 C2 C5 | 3 | 22 42 62 82 E2 |
6 | 25 45 65 85 E5 | ||
9 | 2A 4A 6A 8A EA | ||
12 | 2D 4D 6D 8D ED |
チャネル | スロット | 楽器 |
7 | 13 | バスドラム |
16 | ||
8 | 14 | ハイハット |
17 | スネアドラム | |
9 | 15 | タムタム |
18 | シンバル |
CNT | アルゴリズム (→出力) | 図 |
0 | Op.1 → Op.2 → | |
1 | Op.1 → Op.2 → |
CNT | アルゴリズム (→出力) | 図 | |
+0 | +3 | ||
0 | 0 | Op.1 → Op.2 → Op.3 → Op.4 → | |
0 | 1 | Op.1 → Op.2 → Op.3 → Op.4 → | |
1 | 0 | Op.1 → Op.2 → Op.3 → Op.4 → | |
1 | 1 | Op.1 → Op.2 → Op.3 → Op.4 → |
WMに1を書き込むと使用可。
AdLib公式のOPL2存在チェック方法:
※1: ステータスレジスタの値をE0hでANDして未使用のビットをマスクした方が良いかも知れません。
※2: いくつかのSound Blaster互換のカードでは動作しないかも知れません。
NEWに1を書き込み4 OPERATER MODEに対応するチャネルのビットを立てて書き込みます。
チャネル1~3,10~12を4オペレータモードにするとチャネル4~6,13~15がチャネル1~3,10~12のオペレータの一部になり、チャネル4~6,13~15は使用できなくなります。
ご意見やご批判などお待ちしております。
また、スパムなどは無条件で対処させていただきます。
コメント | お名前 | NameLink | |