///////////////////////////////////////////////////////////
　　WinSMC / SONY SMC-777 Emulator
　　　　　　　　　　　　　　　　　　　　　　　佐藤 義弘
　　Version 0.17  2007/01/14
///////////////////////////////////////////////////////////

●はじめに
　このプログラムは、SONYのSMC-777をWindows上でエミュレートするための
　ものです。
　既に実機が無いため使用はあきらめていたのですが、どうしても昔のソフトを
　使いたくなり作ってしまいました。

●動作環境
　・MMXに対応したCPU

　・DirectX8以上のランタイムがインストール済み

　・Windows 98/Second Edition
　・Windows Me
　・Windows 2000
　・Windows XP
　　上記のいずれかのOSで動作します。他のOSでは動作検証をしていません。

　　Windows XPにて色化けする場合は、互換モードを「Win98/ME」にして起動
　　してみてください。

　・256色以上表示可能で、ビデオメモリを1MB以上搭載したビデオカード

　・DirectSound対応のサウンドカード（無くても可）

●インストール
　WinSMC.EXEを適当なフォルダにコピーします。そこと同じ場所にROMイメージ
　ファイルをコピーしてください。
　実行後、同フォルダにWinSMC.iniファイルが作成されます。

●アンインストール
　WinSMCをインストールしたフォルダの中身を全て削除すれば完了です。

●前準備
　まず、ROMイメージファイルを用意する必要があります。
　同封のFDイメージを使用して、実機からROMデータを取得してください。
　詳しい説明は「PC転送.TXT」の方に書いてありますのでそちらをご覧ください。
　ROMデータが取得出来ましたら、WinSMC.EXEと同じフォルダにコピーします。

●実行方法
　WinSMC.EXE を実行してください。

●メニュー操作
　　システム
　　　　リセット　　　　　　SMCをリセットします。
　　　　NMIリセット 　　　　NMI割り込みを発生させます。
　　　　状態保存　　　　　　現在の状態をファイルに保存します。
　　　　状態復帰　　　　　　保存したファイルからその時の状態に戻します。
　　　　設定　　　　　　　　各種設定画面を表示します。
　　　　保存して終了　　　　現在の状態を保存して終了します。次回起動時に復元します。
　　　　終了　　　　　　　　WinSMCを終了します。
　　ドライブ
　　　　FDD A 開く　　　　　AドライブのFDイメージを指定します。
　　　　　　　ｲｼﾞｪｸﾄ　　　　　　〃　　　　　　　 を取り出します。
　　　　　　　ﾌﾟﾛﾃｸﾄ　　　　　　〃　　　　　　　 のﾌﾟﾛﾃｸﾄをON/OFFします。
　　　　FDD B 開く　　　　　BドライブのFDイメージを指定します。
　　　　　　　ｲｼﾞｪｸﾄ　　　　　　〃　　　　　　　 を取り出します。
　　　　　　　ﾌﾟﾛﾃｸﾄ　　　　　　〃　　　　　　　 のﾌﾟﾛﾃｸﾄをON/OFFします。
　　表示
　　　　全画面切替　　　　　ウィンドウとフルスクリーンを切り替えます。
　　　　60FPS(1/1 FULL) 　　画面の更新間隔を指定します。
　　　　30FPS(1/2)　　　　　　〃
　　　　20FPS(1/3)　　　　　　〃
　　　　15FPS(1/4)　　　　　　〃
　　　　12FPS(1/5)　　　　　　〃
　　　　10FPS(1/6)　　　　　　〃
　　デバイス
　　　　ジョイスティック-1
　　　　　　ジョイスティック１　　　　１番目に認識したジョイスティックを使用
　　　　　　ジョイスティック２　　　　２番目に認識したジョイスティックを使用
　　　　　　マウス(ジョイスティック)　マウスをジョイスティックとして使用
　　　　ジョイスティック-2
　　　　　　ジョイスティック１　　　　１番目に認識したジョイスティックを使用
　　　　　　ジョイスティック２　　　　２番目に認識したジョイスティックを使用
　　　　　　マウス(ジョイスティック)　マウスをジョイスティックとして使用
　　　　　　マウス　　　　　　　　　　MSXマウスのON/OFFを切り換えます。
　　　　貼り付け　　　　　　クリップボードからキー入力します。
　　　　貼り付け停止　　　　クリップボードからキー入力を一時停止します。
　　　　貼り付け再開　　　　クリップボードからのキー入力一時停止を再開します。
　　　　4MHz　　　　　　　　CPUの速度を変更します。
　　　　5MHz　　　　　　　　　〃
　　　　6MHz　　　　　　　　　〃
　　　　8MHz　　　　　　　　　〃
　　　　10MHz 　　　　　　　　〃
　　　　12MHz 　　　　　　　　〃
　　　　NoWait　　　　　　　ウェイト無しで実行します。
　　その他
　　　　画面セーブ(表示ｻｲｽﾞ)　画面をBITMAPで保存します。640×400ドット
　　　　画面セーブ(実ｻｲｽﾞ)　　画面をBITMAPで保存します。320×200ドット
　　　　クロック表示　　　　　キャプションのクロック表示のON/OFF
　　　　フレーム表示　　　　　キャプションのフレーム表示のON/OFF
　　　　データ出力　　　　　　レジスタ、RAMの状態を保存します。
　　　　プリンタ出力　　　　　プリンタへの出力をファイルに保存します。
　　　　トレース　　　　　　　実行結果をアセンブラ出力します。
　　　　メモリダンプ　　　　　メモリ内容をウィンドウ表示します。
　　　　アセンブラ表示　　　　メモリ内容を逆アセンブルして表示します。
　　ヘルプ
　　　　バージョン情報　　　　バージョン画面を表示します。

　フルスクリーンの場合、画面上部で右クリックする事により、メニューが
　表示されます。

●キー操作
　・[F7]  : 前回のCPU速度と現在の速度を切り替える。
　・[F8]  : SMCをリセットします。
　・[F9]  : 画面をBITMAPで保存します。
　・[F10] : ウィンドウとフルスクリーンを切り替えます。
　・[F11] : フルスクリーン時、メニューを表示します。
　・[F12] : マウスの使用をON/OFFします。
　・ALT+1〜9       : ファイル履歴の該当する番号をAドライブへ挿入する
　・ALT+SHIFT+1〜9 : ファイル履歴の該当する番号をBドライブへ挿入する

●キー配置
　基本的にSMCと合わせてあります。そのため、キートップの表示と違う文字が
　表示される場合があります。

　　 SMC　　　　　　　 WIN(SMC配列) 　　 WIN(WIN配列)
　　￣￣￣　　　　　　￣￣￣￣￣￣￣　　￣￣￣￣￣￣￣
　　ESC 　　　　　　　ESC [漢字]　　　　　←
　　CTRL　　　　　　　TAB 　　　　　　　左CTRL 右CTRL
　　TAB 　　　　　　　左CTRL [無変換] 　TAB [無変換]
　　HELP　　　　　　　右CTRL [変換] 　　[変換]
　　INS 　　　　　　　Insert　　　　　　　←
　　DEL 　　　　　　　Delete　　　　　　　←
　　HOME　　　　　　　Home　　　　　　　　←
　　CLR 　　　　　　　End 　　　　　　　　←
　　CAPLOCK 　　　　　Caps Lock 　　　　　←
　　ｶﾅLOCK　　　　　　[カナ]　　　　　　　←
　　ｶﾅ文字　　　　　　50音配列　　　　　JIS配列

●LED表示
　設定画面にて「画面にLED情報を表示する」のチェックボックスをONにしている
　場合、画面左下(または左上)にLEDが４つ表示されます。
　それぞれ、左(上)から以下の通りです。
　・Ａドライブのアクセスランプ
　・Ｂドライブのアクセスランプ
　・CAPLOCKの状態
　・カナLOCKの状態

　また、キーボード上にもLEDの状態が反映されます。
　・CAPLOCK  : キーボード上のCapsLockのLED
　・カナLOCK : キーボード上のScrollLockのLED

●設定画面
　メニューから「設定」を選択した場合、各種設定を行うことが出来ます。
　〔設定〕タブ
　　←→ マウス移動速度
　　　　Windows上でマウスの移動量に対するSMCでの比率を指定します
　　□キーボードをWindowsのキー配列にする
　　　　キーボードの配列をSMC用の配列ではなくWindows配列にします
　　□ローマ字カナ変換を行う
　　　　カナLOCK時、ローマ字でカナを入力します
　　□ディスクアクセスの処理時間を増やす
　　　　ディスクアクセスをした場合に疑似的に処理を遅くします
　　□画面セーブにボーダー領域を含める
　　　　画面をセーブする時にボーダー領域もビットマップで保存します
　　□画面にLED情報を表示する
　　　　画面左下または左上にLEDの状態を表示します
　　□起動時にスプラッシュ画面を表示する
　　　　WinSMC起動時に画面中央にスプラッシュ画面を表示します
　　□起動時に強制的に256色モードに変更する
　　　　WinSMC起動時に画面モードを256色モードにします
　　□全画面で640×400モードを使用する
　　　　全画面に切り替えた時に、640×480ではなく640×400モードにします。
　　　　液晶モニタなどでは表示できないかも知れません。
　　□全画面で現在の画面色数を使用する
　　　　全画面に切り替えた時に、256色ではなく現在の画面の色数を使用します。
　　□ディスクの履歴を簡易表示する
　　　　使用ディスクの履歴にフルパスファイル名でなく、タイトル名を使います。
　　□サーフェスメモリをシステムメモリに作成する
　　　　サーフェス用のメモリをビデオメモリではなく、システムメモリ上に作成します。
　　　　画面表示が遅い場合にチェックしてみてください。ただし、さらに遅くなる場合も
　　　　あります。

　〔サウンド〕タブ
　　←→ PSG音量
　　　　PSG音源の音量を指定します
　　←→ BEEP音量
　　　　BEEPの音量を指定します
　　←→ FDD音量
　　　　FDアクセス音の音量を指定します
　　□サウンドを使用しない
　　　　サウンドボードを使用しません
　　□BEEP音を出力しない
　　　　BEEP音を鳴らさないようにします
　　□FDD音を出力しない
　　　　FDアクセス音を鳴らさないようにします
　　□BEEP音の鳴らし方を変える
　　　　BEEP音の鳴り方を少し変えます。BEEP音のノイズが気になる場合にチェックして
　　　　ください。環境によってはほとんど変化はありません。
　　□起動時のDirectSound初期化失敗を警告する
　　　　サウンドボードが無い場合などに警告表示をします

　〔ジョイスティック〕タブ
　　JoyStick1　　ジョイスティック１として使用する機器を選択します
　　Btn1 　　　　ボタン１に割り当てるスイッチを指定します
　　Btn2 　　　　ボタン２に割り当てるスイッチを指定します
　　JoyStick2　　ジョイスティック２として使用する機器を選択します
　　Btn1 　　　　ボタン１に割り当てるスイッチを指定します
　　Btn2 　　　　ボタン２に割り当てるスイッチを指定します
　　キー割付　　 ジョイスティックに任意のキーを割り付けます。
　　　　　　　　 キーを割り付けてもジョイスティックの機能は無効になりません。

　〔ジョイスティック キー設定〕ウィンドウ
　　↑←→↓　　 上下左右の方向に対してキーを割り付けます。
　　ボタン(4つ)　使用出来るボタンから任意の４つを選択します。
　　　　　　　　 また、それぞれのボタンに対して割り付けるキーを選択します。

●メモリダンプウィンドウ
　メニューの「その他」から「メモリダンプ」を選択すると表示されます。
　表示はRAMの内容になります。右クリックで以下のメニューが選択できます。
　・データ変更　　指定のアドレスのデータを書き換えられます。
　・アドレス入力　表示するアドレスを直接指定できます。
　・閉じる　　　　メモリダンプウィンドウを閉じます。
　その他、カーソルキー、HOME、END、PageUp、PageDownキーが使えます。

●アセンブラ表示ウィンドウ
　メニューの「その他」から「アセンブラ表示」を選択すると表示されます。
　表示は現在のPCレジスタのアドレスからとなります。
　右クリックで以下のメニューが選択できます。
　・アドレス入力　表示するアドレスを直接指定できます。
　・閉じる　　　　メモリダンプウィンドウを閉じます。
　その他、カーソルキー、HOME、END、PageUp、PageDownキーが使えます。

●FDイメージについて
　WinSMCでは、1dditt等のツールで作成される拡張子1DDと、セクタ長が256バイトの
　データをベタでならべた拡張子IMGをサポートしています。
　IMGフォーマットでは 256バイト×16セクタ×70トラックもしくは
　256バイト×16セクタ×80トラック分のデータとなります。
　イメージファイルの指定は、メニューもしくはウィンドウへのDrag&Dropで指定
　します。また、1DDファイルにWinSMC.EXEを関連付ける事によって、1DDファイルの
　ダブルクリック等でＡドライブに挿入した状態で起動します。
　その他、コマンドラインにファイルを指定することによっても指定できます。
　最初のファイルがＡドライブ、次のファイルがＢドライブに指定されます。

●圧縮ファイルについて
　ZIP形式、及びLHA形式で圧縮されたFDイメージに対応しています。
　これらのファイルを選択した場合、メニューのタイトル表示欄には (ZIP)(LHA)の文字が
　付加されます。
　書庫で最初に見つかったファイルが対象となりますので、複数のFDイメージファイルを
　同一書庫にアーカイブしても、使用できるのは一つだけです。
　書庫ファイルを選択した場合、ディスク内容を変更しても書庫ファイルへの書き戻しは
　行っていません。セーブ等を行っても書庫ファイルには反映されませんので注意してください。
　ファイル選択時、もしくは起動時に一瞬解凍用のウィンドウが表示されますが、気にしないで
　ください。
　なお、使用の際は UNZIP32.DLL もしくは UNLHA32.DLL が必要となります。

  UNZIP32.DLL : http://www.csdinc.co.jp/archiver/lib/unzip32.html
  UNLHA32.DLL : http://www2.nsknet.or.jp/~micco/micindex.html

●状態の保存・復帰について
　状態ファイルの拡張子はデフォルトで「SM7」となっています。この拡張子と
　WinSMC.EXEを関連付ける事で、SM7ファイルのダブルクリックで起動と復帰を行います。
　保存に関しては、ディスクアクセス中は実行できません。また、設定情報やメニューの
　選択状態も保存されません。
　復帰時にFDイメージが見つからない場合はファイル選択ダイアログが表示されるので、
　該当するファイルを選択してください。
　「保存して終了」した場合はWinSMC.EXEと同じ場所に「AUTOSAVE.SM7」が出来ます。
　次回起動時の一回のみ、このファイルを元に状態を復帰させます。

●FDDアクセス音について
　以下のファイルを用意する事で、FDDにアクセスする際に擬似的に音を鳴らす事が出来ます。
　・FDD_SEEK.WAV ：シーク音
　・FDD_RW.WAV   ：読み書き音
　用意できる場合、WinSMC.EXEと同じフォルダに置いてください。起動時にこれらのファイルが
　無かった場合はアクセス音は鳴りません。
　良い音ができた方は、是非ご連絡ください。よろしければWinSMCに同封して配布させて
　頂きたいです。

●プリンタ出力について
　現在は出力結果をファイルに保存する事のみ可能です。制御コードを含めた出力すべて
　が保存されます。
　将来はESC/P、PC-PR201、NM系を選択してbitmapイメージに出力したいのですが、
　これらの制御コードが分かりません。どなたか資料等をお持ちの方はご連絡ください。

●未実装の機能
　・テープレコーダーインターフェース
　・その他拡張インターフェース

●ライセンス
　このプログラムはフリーソフトウェアとします。

●免責事項
　このプログラムを使用した事によって生じたいかなる結果に対しても、
　作者は責任を負いません。

●著作権・配布条件
　このプログラムの著作権は、佐藤義弘が所有します。
　転載、再配布、コピー等は自由です。ただしプログラム内容の改変は
　しないでください。

●Special Thanks
　このプログラムを作成するにあたり、以下のソフトのソースコードを参考に
　させていただきました。どうもありがとうございました。
　・FDC部分
　　　FM-7 Emulator「XM7」: ＰＩ．氏
　・PSG部分
　　　MZ700 Emulator「mz700win」: Takeshi Maruyama氏（まるくん）
　・その他いろいろ
　　　X1 Emulator「X millennium」: ぷにゅ氏
　　　X1 Emulator「WinX1」: kenjo氏

　そして、ベータ版の動作検証をしてくれた Bobsaitoさん、ちゃださん、
　ソルティレージュさん、ぱっくさん、RinRinさん、私一人ではとても困難な
　作業を引き受けてくださり本当にありがとうございました。

