FDDデータをWAVEに変換



今まで(2000年9月以前),私のHP上で公開しているMSX用のプログラムデータはFDD専用となっていたので,FDD未搭載のMSXではデータが読みとれませんでした。そこで,FDD用として作成されたデータをカセットインターフェースからでも読みとれるようにWAVE化する方法を考えたので,その方法について説明します。


ダウンロードのページへ

私の自作プログラムもこの方法にてWAVEファイル化ました。必要
なかたはこちらのページからダウンロードするようにお願いします。


私からのコメント

私のMSXパソコン(FS-A1WSX,FDD搭載)はカセットインターフェースを搭載していないため,実際にWAVEデータをロードして確認することはできません。もし正常に読みとりができない場合は,メールか,掲示板にて私のほうまでお知らせいただければ幸いです。また,「FDDデータ→WAVE」変換について書かれているページを知っているというかたも同様にお願いします。




FDD用データをWAVE化する手順

以下の方法は「MSX2テクニカルハンドブック」等の資料をもとにFDD
データからWAVEファイルを作成するまでの手順をまとめたものです。


FDD用データをMSXエミュレータで読みとる

テープイメージとしてデータを保存する

テープイメージのヘッダーを一部削除する

「P6DatRec」にてWAVEファイルに変換する

WAVEファイルに音声データを挿入し完了


  1. MSXのFDDで読みとれるデータ,またはMSXエミュレータ用のディスクイメージを用意します。

  2. MSXエミュレータ(RuMSX)にて1.のデータをロードします。

    BASICの場合 LOAD"ファイル名"[Enter]
    マシン語の場合 BLOAD"CAS:ファイル名"[Enter]

  3. 読みとったデータをテープイメージとしてセーブします。

    BASICの場合 CSAVE"ファイル名"[Enter]
    マシン語の場合 BSAVE"CAS:ファイル名"[Enter]

  4. エミュレータを終了し,「.CAS」という拡張子のファイルができていることを確認します。

  5. 生成された「.CAS」ファイルの拡張子を「.P6」に変更します。

  6. 「.P6」ファイルをバイナリエディタで開きます。

  7. 0h〜7h番地と18h〜1Fh番地の2か所にある以下のテープイメージ用のヘッダー(赤色の部分)を削除し,セーブします。

    1F A6 DE BA CC 13 7D 74 D3 D3 D3 D3 D3 D3 D3 D3
    D3 D3 4F 43 48 49 20 20 1F A6 DE BA CC 13 7D 74
    2C 80 0A 00 ・・・(このデータは一例です)

  8. 7.でセーブしたファイルから,「P6DatRec」にてWAVEファイルを生成します。(「P6DatRec」の入手方法及び,使用方法は作者の森川浩氏のHPにあります)

  9. 8.で生成されたWAVEファイルをバイナリエディタで開きます。

  10. 4h〜6h番地と28h〜2Ah番地の2か所にあるデータ(赤色の部分)を読みとり,それぞれDB5Ahを加算します。

    045555h+DB5Ah=0530AFh,045531h+DB5Ah=05308B
    このデータを上書きしておきます。

    52 49 46 46 55 55 04 00 57 41 56 45 66 6D 74 20
    10 00 00 00 01 00 01 00 11 2B 00 00 11 2B 00 00
    01 00 08 00 64 61 74 61 31 55 04 00 80 80 80 80
    80 80 80 80 ・・・(このデータは一例です)

    52 49 46 46 AF 30 05 00 57 41 56 45 66 6D 74 20
    10 00 00 00 01 00 01 00 11 2B 00 00 11 2B 00 00
    01 00 08 00 64 61 74 61 8B 30 05 00 80 80 80 80
    80 80 80 80 ・・・(このデータは一例です)

  11. 以下のファイルを13B4h番地に挿入します。

    29694.DAT(解凍後29,694byte:ダウンロード可)
    (約2.7秒の2.4kHz信号データ)

  12. 以下のファイルを13B6Dh番地に挿入します。

    26460.DAT(解凍後26,460byte:ダウンロード可)
    (1.2秒の無音+1.2秒の2.4kHz信号データ)

  13. WAVEデータを上書き保存し,完成となります。


WAVEファイルをMSXで読みとる方法

以下にAT互換機を使用した方法について説明します。

必要なもの

AT互換機(サウンドカード必須),MSXパソコン(カセットインターフェース必
須),データレコーダ,カセットテープ,ケーブル類。サウンドカードの出力を
直接MSXに接続する場合は,データレコーダ,カセットテープは不要です。

使用方法

  1. まず再生したいWAVEファイルを用意します。私の自作プログラムを使用する場合はダウンロードのページにある圧縮ファイル(sil_wav0.lzh等)を解凍しておきます。

  2. AT互換機のスピーカ出力端子とデータレコーダのマイク入力端子をケーブルで接続します。データレコーダを使用しない場合は,AT互換機のスピーカ出力端子を直接MSXのカセット入力に接続し,MSXのCLOADを実行後,以下手順4.→8.の順に操作します。

  3. データレコーダの録音ボタンを押し,カセットテープへの録音を開始します。

  4. AT互換機からメディアプレイヤーなどで必要なWAVEファイルを再生します。「数字パニック-落ちもの版-」の場合「OCHI.WAV」「OCHID.WAV」の両方を順に再生します。

  5. 必要なファイルの再生が全て終了したら,データレコーダの停止ボタンを押します。

  6. テープを巻き戻してデータレコーダをMSXパソコンに接続します。

  7. MSXを起動後,CLOAD[Enter]などと入力し,テープを再生します。

  8. BASICプログラムのロードが完了したらRUN[Enter]と入力します。

  9. プログラムによっては,BASICプログラムからマシン語プログラムを自動的にロードするものもあります。(「数字パニック-落ちもの版-」など)


MSXカセットファイルのフォーマットについて
(参考にしたもの:MSX2テクニカルハンドブック・アスキー出版)

<バイナリファイルのフォーマット>

ロングヘッダ
2.4kHz/6.7秒
D3h×10個
(BASICの場合)
D0h×10個
(マシン語の場合)
ファイル名
6バイト
無音
1.2秒
ショートヘッダ
2.4kHz/1.7秒
プログラム
本体
00h
×7個


<1バイトの構成>

0
スタートビット
D0 D1 D2 D3 D4 D5 D6 D7 1
ストップビット
1
ストップビット

「P6DatRec」にて生成されるデータはストップビットが3ビットとなる
が,ストップビットは3ビット以上でも問題なく動作することを確認済み


<ビットデータと周波数の関係>

1.2kHz波形×1・・・データ「0」を表す
2.4kHz波形×2・・・データ「1」を表す




シルゴンハーゲンのホームページ・MSX編へ
MSX編 トップへ戻る
シルゴンハーゲンのホームページ・メインへ
ホームページ トップへ戻る