tapeload.exe for Win32 version 0.13a

Programmed by Takeshi Maruyama.（まるくん）



はじめに
--------
　このプログラムは、MZ-700/1500のテープを読み込み、ファイル化するものです。
作成されたデータは、簡単な加工でMZ-700エミュレータ等で使用する事が出来ます。


What's New
----------
・コンパイラをWatcom C++ 11.0Jから Microsoft Visual C++ 6.0 SP3に変更
  （前バージョンと機能的には変更がありません）

・ソースリストを添付。tameload.exeを作るために参考にしたRussel Marks氏の
  mzget.cの使用許諾がＧＰＬであるため、tapeload.cppもＧＰＬに従って
  取り扱ってください。


必要動作環境
------------
・Ｗｉｎｄｏｗｓ９５／９８が　動作する環境（ＮＴは未確認です）

・Ｐｅｎｔｉｕｍ１００ＭＨｚ以降のＣＰＵ（４８６マシンでは動作保証致しません）

・Windowsが認識出来る、22.05KHz 8bitモノラルデータとしてサンプリング可能な
　サウンドカード（SoundBlaster16など）

・３２ＭＢ以上のメインメモリ
　（１６ＭＢで動作するかは未確認です）


作者の動作環境
--------------
ＰＣ		Celeron 300AMHz (450MHz over clock(^^;)) (SDRAM 128MB)
ＯＳ		Windows98 Second Edition (Japanese) / DirectX 7.0a
ＶＩＤＥＯ	S3 Savage4 SDRAM-32MB
ＳＯＵＮＤ	YAMAHA YMF744


使い方
------

▼サウンドカードの外部入力端子から直接ロードするには

　お手持ちのデータレコーダを、お使いのサウンドカードのLine-In端子に
オーディオケーブルで接続して下さい。
　MS-DOS プロンプトで、tapeload.exeを実行すると、

Now Searching...

　と表示されますので、データレコーダの再生ボタンを押してください。
データを認識すると、'done gapck' 'done tmark' 'FOUND ....'などの
システムメッセージが表示されます。

　ロードが終わると、header.dat,out.datという２つのファイルが作成されます。

　mz700winで使用するデータを作成するには、MS-DOS プロンプト上で

COPY /b header.dat+out.dat mzfile.mzt

　などとして連結して下さい．

　ロード中に何かキーを押すと、ロードは中止されＤＯＳプロンプトに戻ります．


▼S-BASIC,HuBASICのパッチ
　お手持ちのS-BASIC,HuBASIC,SP-5030 V1.0Aを吸い出したファイル(*.mzt,*.m12)の
「ヘッダ部分」に以下のパッチを当てることにより、BASIC上でファイルアクセスが
可能になります。

■ S-BASIC 1Z-007Bの場合
00000040: 50 41 54 3A 21 12 0C ED F4 03 ED F4 04 ED F4 01 
00000050: ED F4 02 FF FF 00 00 00 00 00 00 00 00 00 00 00 

■ HuBASIC の場合
00000040: 50 41 54 3A 3B 12 0C ED F4 07 ED F4 08 ED F4 05 
00000050: ED F4 06 FF FF 00 00 00 00 00 00 00 00 00 00 00 

■ SP-5030 V1.0A の場合
00000040: 50 41 54 3A 49 40 03 ED F0 01 69 40 03 ED F0 02 
00000050: FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

■ MZ-1500 QD-BASIC MZ-5Z001の場合
00000040: 50 41 54 3A BD 3E 03 ED F2 03 FF FF 00 00 00 00 

　自前でパッチを当てるほかにも、すでにパッチ済みの128バイトのファイルヘッダで
ある、1Z007B.HED (S-BASIC用), HUBAS700.HED (HuBASIC用, 
SP5030A.HED (SP-5030 V1.0A用）をアーカイブ内のtapeload\ 以下に含めてあります。
tapeloadで吸い出す際に、header.dat の代わりに使用できますのでご利用ください。


▼MZ-1500用BASIC MZ-5Z001 (BASICプログラム)読み込み時の注意

　MZ-1500用BASICプログラムファイルのヘッダ部の先頭１バイト目が $05 に
なっているようですが、そこを $02 に書き換えないと、BASIC上で正しく認識
出来ませんのでご注意ください。


▼ＷＡＶファイルとして記録されたMZテープの音声データからロードするには

　MS-DOS プロンプトで、tapeload.exeを実行する際に、

　tapeload WAVファイル名.wav（拡張子省略可）

　のように、WAVファイル名を指定して下さい。
  WAVファイルは、22050Hz,8bit,モノラルで録音されたデータでなければいけません。
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ただし、フォーマットがちがっていても、warningが出るだけです。
  その場合、-wオプション（データ読み取り単位時間の指定）を適切に指定しないと
  ロードは出来ないと思います。44100Hzの場合、-w14前後を試してみて下さい。


オプション
----------
 -?	プログラムの説明を見る
 -l[j|e]主なメッセージを日本語(j)／英語(e)で出力する
 -mn	音声データバッファサイズの指定（範囲=1〜32 / Default=16)
 -r	音声データの位相を反転して解釈する
 -b	ロード中に、ビットデータを表示する (0=. 1=*)
 -v	ロード中に、ダンプデータを表示する
 -dn	無音とみなす敷居値（範囲=1〜127 / Default=32)
 -wn	データ読み取り単位時間（範囲=1〜16 / Default=7)

 
 データを認識しないときは？
 --------------------------
 　うまくロード出来ない時は、-bオプションを使ってみてください。
 無音の時に、'*'がたくさん出るようならば、-dの値を大きくしてみて下さい。
 逆に、音が入っている時に'.'しか出ないようならば、-dの値を小さくしてみて下さい。
 
 　ヘッダの認識の時にCheckSumErrorが出るなどで安定して読めないときは、
 -rオプションを使用してみて下さい。
 
 　データを読み終わった時にCheckSumErrorが出てしまうときは、
 テープの走向速度がずれている可能性があります。-wの値をデフォルト値から
 すこしづつずらして試してみてください。
 
 　ロード途中に"WAV Buffer Full!"などのエラーメッセージが出て止まってしまう
 時は、-mオプションの数値を増やしてみてください。
 　メモリが少ない場合は、テープを一旦WAVファイルとして録音して
 　WAVファイルからロードすると、うまくいくと思います。
 
 　ミニコンポやラジカセはなるべく使用せずに、パソコン専用のデータレコーダを
 使用すると、ロード成功率は高いです。
 

その他注意
----------
　このプログラムは、ある程度以上の長さのデータを読み込めません。
読み込み処理のためのバッファを、mallocでベタで確保しているからです。
　ロード途中にバッファが足りなくなって止まってしまう 時は、-mオプションの
 数値を増やしてみてください。

　録音バッファをリングバッファ的に使う方法がわからなかったもので…(^_^;)
　そのように出来れば、使用メモリも少なくて済むのですが…。

　どなたか良い方法をご存じでしたら、ご教授いただければ助かります。


転載など
--------
　tapeload.exeはフリーソフトです。転載なども自由です。
　転載報告などの必要もありません。ご自由にお使いください。

　本アーカイブに含まれるプログラムは、全て無保証です。
　相性などの問題でうまく動作しない機種があったとしても、作者はプログラムを
修正する義務は無いものとします。
　また、このプログラムの使用により生じた全ての損害に関して、作者は責任及び
義務を負いません。


その他
------
　本プログラムは、個人的な研究目的で作成されたもので、違法コピーの幇助を
意図するものではありません。コンバートしたＲＯＭイメージやファイルなどは、
所有者個人の責任で使用し、通信、あるいは手渡しなどで、不特定多数に配布し
ないようにして下さい。そのような事が起こると、本プログラムのバージョン
アップや開発、配布が続けられなくなってしまう可能性も出てきます。


参考資料
--------
・MZ-700 Owner's Manual(シャープ)
　ＲＯＭモニタ１Ｚ−００９Ａのソースリスト

・Russel Marks氏が公開されている、mz700em添付のmzget.cのソースリスト


History
-------
2000-02-02	Version 0.13a
		・コンパイラをVisual C++ 6.0J SP3に変更。
		  ソースファイルの添付

1998-09-23	Version 0.13
		・オプション-lを追加。英語メッセージを追加。
		（ただし割とデタラメ(^_^;)アドバイス下さい・・・）
		・WAVファイルからロード出来るようにした

1998-04-29	Version 0.12
		・オプション-mを追加

1998-04-01	Version 0.11
		・オプション-r,-wを追加
		・データロード時、CheckSumErrorが起きた時に、もう１回リトライ
		　するようにした

1998-03-26	Version 0.10
		・ファースト・リリース


連絡先
------
E-MAIL : takeshi.maruyama@nifty.com
Web Page:http://homepage1.nifty.com/marukun/
