QUASI88 マニュアル 名称 QUASI88 このソフトは、 NEC PC-8801mkIISR のエミュレータです。 書式 quasi88 [-option] [image-file [image-No] [image-file [image-No]]] 解説 QUASI88 は引数のうち、- で始まるものをオプションとみなします。 - で始まらないものを、イメージファイルのファイル名とみなします。 最初に出てきたイメージファイルは、ドライブ 1: に、次に出てきた イメージファイルは ドライブ 2: にセットされます。 イメージファイルが複数のイメージを含んでいる場合、ファイル名の 直後にイメージの番号をつけて、イメージを指定出来ます。 イメージ番号は先頭から、1、2、3 ………となります。省略時は、1 が 指定されたものとみなされます。 イメージファイルが複数のイメージを含んでいる場合で、ファイルを ひとつしか指定しなかった時、イメージ番号を2個続けて指定することで ドライブ 1: 、2: の両方にイメージが指定できます。 また、イメージ番号を全く指定しなかった時は、イメージ番号 1 が、 ドライブ 1: に、イメージ番号 2 がドライブ 2: にセットされます。 QUASI88 では、ドライブは、1: と 2: の 2台しかサポートしていない ため、3個以上のイメージを指定した場合は、無視されます。 また、イメージが指定されなかったドライブには、ディスクが入って いないとみなされます。 なお、イメージの数は、1個のファイル内に最大32個までです。 この個数よりも多くのイメージを含むファイルの場合、32個目以降の イメージを選択することが出来ません。また、ファイルに壊れたイメージ が含まれている場合も、その壊れたイメージ以降のイメージを選択する ことが出来ません。これらの状態を検知した場合、後述する -verbose オプションが適切に設定されていれば、警告メッセージが表示されます。 例) a.d88、b.d88 は単一イメージのファイル、 x.d88、y.d88 は複数イメージを持つファイルとします。 % quasi88 a.d88 → ドライブ 1: = a.d88 ドライブ 2: = 空 % quasi88 a.d88 b.d88 → ドライブ 1: = a.d88 ドライブ 2: = b.d88 % quasi88 x.d88 → ドライブ 1: = x.d88 1番目のイメージ ドライブ 2: = x.d88 2番目のイメージ % quasi88 x.d88 3 → ドライブ 1: = x.d88 3番目のイメージ ドライブ 2: = 空 % quasi88 x.d88 2 4 → ドライブ 1: = x.d88 2番目のイメージ ドライブ 2: = x.d88 4番目のイメージ % quasi88 x.d88 y.d88 → ドライブ 1: = x.d88 1番目のイメージ ドライブ 2: = y.d88 1番目のイメージ % quasi88 x.d88 3 y.d88 → ドライブ 1: = x.d88 3番目のイメージ ドライブ 2: = y.d88 1番目のイメージ % quasi88 x.d88 y.d88 3 → ドライブ 1: = x.d88 1番目のイメージ ドライブ 2: = y.d88 3番目のイメージ % quasi88 x.d88 4 y.d88 2 → ドライブ 1: = x.d88 4番目のイメージ ドライブ 2: = y.d88 2番目のイメージ オプション QUASI88 の起動時に以下のオプションを指定できます。 排他的な機能の指定をするオプションについては、複数指定した場合は、 最後に指定したものが有効になります。 【 PC-8801に関する設定 】 -v2 V2 モードで起動します -v1h V1H モードで起動します -v1s V1S モードで起動します -n N-BASIC モードで起動します 省略時は、ROM のバージョンにより自動的に選択されます。 PC-8801/mkII … -v1s PC-8801mkIISR以降 … -v2 -4mhz CPU クロックモード 4MHz で起動します -8mhz CPU クロックモード 8MHz で起動します 省略時は、-4mhz です。 なお、-4mhz を指定した場合は、-clock 3.9936 が暗黙のうちに 指定されます。同様に -8mhz を指定した場合は、-clock 7.9872 が暗黙のうちに指定されます。 -sd サウンドボード をエミュレートします -sd2 サウンドボードII をエミュレートします 省略時は、-sd です。 注意) -sd2 オプションは十分なデバッグがされていません。 -dipsw ディップスイッチを設定します は、0〜65535 または、0x0000〜0xffff の値を指定します。 値の意味は N88-BASIC の NEW ON コマンドの引数と同じです。 省略時は、-dipsw 0x391a です。 -baudrate ボーレートを設定します は、75、150、300、600、1200、2400、4800、9600、19200 の いずれかです。 省略時は、-baudrate 1200 です。 -romboot ROM BASIC から起動します -diskboot DISK から起動します 省略時は、ディスクイメージファイルが指定されている場合は、 -diskboot、ファイルが指定されていない時は、-romboot です。 -extram 拡張 RAM ボード を 枚 エミュレートします -noextram 拡張 RAM ボード を エミュレートしません 拡張RAMボードは 128KB 単位でエミュレートされます。 指定可能な n とメモリサイズは、以下の通りです。 n=0 … 拡張 RAM ボード なし n=1 … 128KB n=2 … 256KB (128KB × 2) n=3 … 384KB (128KB × 3) n=4 … 512KB (128KB × 4) n=8 … 1024KB (1MB) n=9 … 1152KB (1MB + 128KB) n=10 … 1280KB (1MB + 128KB × 2) n=16 … 2048KB (1MB × 2) 省略時は、-noextram (-extram 0 と同じ) です。 注意) このオプションは十分なデバッグがされていません。 -jisho 辞書ROM をエミュレートします -nojisho 辞書ROM をエミュレートしません 省略時は、-nojisho です。 注意) このオプションは全くデバッグがされていません。 動作確認をされた方は、作者まで是非連絡ください。 -nomouse マウス・ジョイスティックともエミュレートしません -mouse マウス (バスマウス) をエミュレートします -joymouse マウスを疑似ジョイスティックモードでエミュレートします -joystick ジョイスティックをエミュレートします マウスとジョイスティックは同時に指定できません。 ジョイスティックは一部のシステムに対してのみ使用可能です。 -mouse の場合、マウスの動きが反映されます。 -joymouse の場合、マウスの移動方向が反映されます。 -joystick の場合、ジョイスティックの入力が反映されます。 -use_joy オプションも参照してください。 省略時は、-nomouse です。 -analog アナログパレットをエミュレートします -digital デジタルパレットをエミュレートします 省略時は、-analog です。 -24k モニター周波数 24kHz をエミュレートします -15k モニター周波数 15kHz をエミュレートします 省略時は、-24k です。 注意) このオプションは、ダミーです。どちらのオプションを 指定しても、モニター周波数 24kHz として内部処理されます。 (設定は I/O ポート 40H からの入力値のみに反映されます) -pcg PCG-8100 をエミュレートします -nopcg PCG-8100 をエミュレートしません 省略時は、-nopcg です。 注意) PCG-8100 のサウンドには対応していません。 N-BASIC モードでの使用が前提です。 -tapeload ロード用のテープイメージファイルを設定します 設定可能なファイルは、 CMT形式 ないし T88形式 の テープイメージファイルです。 -tapesave セーブ用のテープイメージファイルを設定します テープイメージの形式は、CMT形式 のみです。 ファイルには追記されます。 -serialmouse シリアルマウスをエミュレートします -noserialmouse シリアルマウスをエミュレートしません シリアルマウスをエミュレートする場合は、同時に -baudrate 1200 オプションを指定することを推奨します。 省略時は、-noserialmouse です。 注意) このオプションは、実験中です。 【 エミュレート性能に関する設定 】 -cpu サブCPU の駆動タイミングを設定します PC-8801 は、通常の CPU (以下、メインCPU) の他に、ディスク 制御専用の CPU (以下、サブCPU) を持っています。QUASI88 は、 通常はメインCPUのみをエミュレートし、必要な時のみサブCPUを エミュレートさせることにより、負荷を軽減させています。 n=0 … ディスク処理中はメインCPUを停止して、サブCPUのみを エミュレートします。 n=1 … ディスク処理中は、メインCPUとサブCPUを交互に エミュレートします。 n=2 … ディスク処理中かどうかにかかわらず、常にメインCPUと サブCPUを同時にエミュレートします。 -cpu 0 で大抵のアプリケーションは動くはずです。これで動かない 場合は、-cpu 1、-cpu 2 で試してみて下さい。 処理速度は -cpu 0 の時が最も高速になります。 省略時は、-cpu 0 です。 -fdc_wait FDC処理にウエイトをいれます -fdc_nowait FDC処理にウエイトをいれません FDC処理にウェイトをいれると、処理速度が遅くなります。 -cpu 1、-cpu 2 のいずれを指定しても動作しないアプリケーション の場合、-fdc_wait を指定すると動作する場合があります。 省略時は、-fdc_nowait です。 -clock メインCPUのクロック周波数を設定します はクロック周波数(MHz)で 0.1 〜 100.0 の範囲(小数)で 設定します。 省略時は、-clock 3.9936 です。 注意) -4mhz が指定されている場合は、-clock 3.9936 が、 -8mhz が指定されている場合は、-clock 7.9872 が暗黙の うちに指定されます。 -speed QUASI88 の処理速度と、実時間との比率を設定します。 は比率(パーセント)で、5〜5000 の範囲で設定します。 100 の場合、実機と等速、 5 の場合、実機の 5% の速度、 5000 の場合は実機の 50倍の速度でエミュレートします。 (速度比に応じて、サウンドのテンポも変化します。) 省略時は、-speed 100 です。 -wait ウェイトありにします -nowait ウエイトなしにします -nowait 指定時は、 -speed の設定に関係なく、常に最高速度で エミュレートします。(サウンドのテンポがおかしくなります。) 省略時は、-wait です。 -boost エミュレート速度を 倍にします は倍率で 1〜100 の範囲で設定します。 倍率に応じて速度が速くなりますが、サウンドのテンポはもとの 速さのままです。(アプリケーションによって例外があります) 注意) このオプションは、実験中です。 サウンドにノイズが乗りやすくなります。 省略時は -boost 1 です。 -cmt_intr テープのロード処理に割り込みを使用します -cmt_poll テープのロード処理に割り込みを使用しません N88-BASIC ではテープのロード処理に必ず割り込みを使用する ので、 -cmt_intr オプションが必須です。 N-BASIC ではどちらでのオプションでもテープのロード処理が 可能ですが、-cmt_poll のほうが圧倒的に高速にロードできます。 省略時は、-cmt_intr です。 -cmt_speed テープのロード速度(ボーレート)を設定します の値を大きくすると、テープのロードが速くなります。 通常は 600 か 1200 を指定しますが、アプリケーションに よっては、4800 や 9600 を指定しても正常に動作するようです。 省略時は、-cmt_speed 0 (自動で600/1200を切り替え)です。 -hsbasic BASIC処理を高速動作させます -nohsbasic 通常動作とします BASIC の PAINT や LINE ルーチンの処理中、割込処理や画面描画 をスキップさせることで、BASIC処理の高速化を図ります。 省略時は、-nohsbasic です。 -mem_wait メモリウェイトを入れます -mem_nowait メモリウェイトを入れません メモリウェイトをエミュレートします。 が、かなり中途半端な実装なので正確さは全然期待できません。 省略時は、 -mem_nowait です。 -setver ROMイメージのバージョンを強制的に変更します には、0〜9 の値を設定します。 V1モード起動時に表示される バージョンの、ver 1.x の x の部分が強制的に変更されます。 n=0〜2 PC-8801 n=3 PC-8801mkII n=4 PC-8801mkIISR n=5〜7 PC-8801FR/MR/TR n=8 PC-8801FH/MH n=9 PC-8801FA/MA/FE/MA2/FE2/MC バージョンをチェックするアプリケーションに対して役に立つかも。 -exchange ディスクの疑似入れ換え機能を有効にします -noexchange ディスクの疑似入れ換え機能を無効にします -exchange オプションをつけると、ディスクイメージの入れ替え後、 直後の一度目のディスクアクセスをディスクなしと判定させます。 ディスク入れ替えを自動検出するアプリケーションに対し有効です。 省略時は、-noexchange です。 【 表示に関する設定 】 -frameskip 画面描画の間隔を指定します PC-8801 では 1秒間に約60回、画面描画が行なわれますが、この オプションで描画の回数を間引くことができます。 n= 1 の時は、秒間 60フレーム、 n= 2 の時は、秒間 30フレーム、 n= 6 の時は、秒間 10フレーム、 n=15 の時は、秒間 4フレーム n=60 の時は、秒間 1フレーム、………というふうになります。 省略時は、-frameskip 1 です。(秒間 60 フレーム相当です) -autoskip オートフレームスキップを使用します -noautoskip オートフレームスキップを使用しません オートフレームスキップを使用した場合、描画が間に合わない時 に限り、画面描画をスキップするようになります。なお、描画が 間に合うに場合は、-frameskip で指定した値で描画します。 省略時は、-autoskip です。 -full 画面サイズを標準 (640x400ドット) にします -half 画面サイズを半分 (320x200ドット) にします -double 画面サイズを倍 (1280x800ドット) にします 画面サイズを半分にすると、横方向の奇数ドットが間引かれます。 画面サイズを倍にすると、縦横方向のドットを倍に引き延ばします。 省略時は、-full です。 -fullscreen フルスクリーンで描画します -window ウインドウで描画します システムがサポートしている場合にのみ使用可能です。 省略時は、-window です。 -aspect フルスクリーン時の、画面の縦横比を指定します。 には、縦横比を小数で指定します。例えば 4:3モニターの 場合は 1.333、 16:9モニターの場合は 1.777 などとなります。 -fullscreen オプションも参照してください。 注意) このオプションは、実験中です。 多分、思い通りに機能しないと思います。 -width -height 画面のサイズを指定します。( * ドット ) -half/-full/-doubleで指定した画面サイズよりも大きな値を 指定することで、ボーダー部分を確保できます。 なお、は16の倍数、は2の倍数を指定して下さい。 (範囲外の場合は自動的に補正されます) -interp 画面サイズ半分(-half)時、色補完を行います -nointerp 画面サイズ半分(-half)時、色補完を行いません 省略時は、-interp です。 -skipline 1ラインおきに表示します (偶数ラインを描画しません) -interlace インタレース表示します -nointerlace ラインの隙間を埋めます (偶数ラインも描画します) -half 指定時および、400ライン表示時は無効です。 省略時は、-nointerlace です。 -show_mouse システムのマウスカーソルを表示します -hide_mouse システムのマウスカーソルを隠します -auto_mouse システムのマウスカーソルを自動的に隠します QUASI88の画面内に、システムのマウスカーソルを表示するか どうかを指定します。(メニューモードでは、常に表示されます) システムがサポートしている場合にのみ使用可能です。 マウスをグラブしている間は、マウスは常時隠されます。 -grab_mouse オプションも参照してください。 省略時は、-show_mouse です。 -grab_mouse マウスをグラブします -ungrab_mouse マウスをグラブしません -auto_grab マウスをクリックすると、グラブします QUASI88の画面内に、システムのマウスを閉じ込めます。 同時に、マウスカーソルも非表示となります。 グラブは、メニューモードに入ると一時的に解除されます。 システムがサポートしている場合にのみ使用可能です。 省略時は、-ungrab_mouse です。 -status ウインドウ下部にステータスを表示します -nostatus ウインドウ下部のステータスを非表示にします ステータスは、F11 によりいつでも表示/非表示の切替ができます。 省略時は、 -status です。 -status_fg ステータスの前景色を指定します -status_bg ステータスの背景色を指定します col は 色を rgb で指定します。赤なら 0xff0000 です。 次のように指定すると、ベージュになっておすすめです。(なにが?) 『-status_fg 0x000000 -status_bg 0xe0c0a0』 -statusimage ステータスにイメージ名を表示します -nostatusimage ステータスにイメージ名を表示しません 省略時は、-nostatusimage です。 ●以下のオプションは、 X11バージョンで有効です -cmap X11 のカラーマップの種類を設定します n=0 の時、起動時に共有カラーセルを確保します。 n=1 の時、起動時にプライベートカラーセルを確保します。 n=2 の時、描画のたびに、カラーセルを確保します。 省略時は、n=0 を試し、確保に失敗したら、n=1 を試し、それでも 確保に失敗したら n=2 となります。 -shm MIT-SHM を使用します -noshm MIT-SHM を使用しません MIT-SHM は、システムがサポートしている場合にのみ使用可能です。 MIT-SHM が使用不能な場合 (MIT-SHMの初期化に失敗した場合も含む) は、MIT-SHM を使用せずに処理を続行します。 省略時は、-shm です。 -dga DGA を使用し、フルスクリーンで描画します -nodga DGA を使用しません DGA は、システムがサポートしている場合にのみ使用可能です。 このオプションは -fullscreen/-window のエイリアス(別名)です。 省略時は、-nodga です。 注意) -dga オプションの使用には root権限が必要な上に、十分な 動作検証がされていないので、お勧めできません。この オプションを使用したい場合は、そのことを考慮ください。 -xv XVideo を使用します -noxv XVideo を使用しません XVideo は、システムがサポートしている場合にのみ使用可能です。 XVideo を使用すると、フルスクリーン描画が可能となります。 省略時は、-noxv です。 注意) このオプションは、実験中です。 正しく機能しないことがあります。 -xdnd XDND (ドラッグアンドドロップ) を有効にします -noxdnd XDND (ドラッグアンドドロップ) を無効にします XDNDを有効した場合、ファイルマネージャなどからファイルを QUASI88 の画面上にドラッグアンドドロップしたとき、 そのファイルをディスクイメージとして開きます。またこの時、 QUASI88 は自動的にリセットします。 省略時は、-xdnd です。 注意) XDND の実装には、いまひとつ自信がありません。 動作不審な場合は、無効にしてください。 -show_fps ウインドウタイトルに、 FPS を表示します -hide_fps ウインドウタイトルに、 FPS を表示しません 省略時は、-hide_fps です。 ●以下のオプションは、 SDLバージョンで有効です -hwsurface ハードウェアサーフェスを使用します -swsurface ソフトウェアサーフェスを使用します -hwsurface のほうが描画が速いかもしれません。 省略時は、-hwsurface です。 -doublebuf ダブルバッファを使用します -nodoublebuf ダブルバッファを使用しません -doublebuf だと画面のちらつきが低減されるという噂です。 省略時は、-nodoublebuf です。 -videodrv ビデオドライバを指定します これは、あらかじめ環境変数 SDL_VIDEODRIVER に をセット しておくのと同じ効果があります。 使用可能なビデオドライバは、SDLに依存します。 (UNIX の場合は、 x11, dga, svgalib など) (Windows の場合は、 windib, directx など) (Classic Mac OS の場合は、 toolbox, DSp など) 省略時の設定は、SDLのバージョンに依存します。 -show_fps ウインドウタイトルに、 FPS を表示します -hide_fps ウインドウタイトルに、 FPS を表示しません 省略時は、-hide_fps です。 【 サウンド出力に関する設定 】 サウンド出力機能のオプションは、サウンドの使用がコンパイル時に有効に なっている場合のみ有効です。 -sd オプション指定時は、YM2203音源相当のサウンドが出力されます。 -sd2オプション指定時は、YM2608音源相当のサウンドが出力されます。 また、オプションに関わらず、BEEP音相当のサウンドが出力されます。 サウンド出力機能は、XMAME から移植しています。XMAME のドキュメントも 参照してください。 -sound サウンド機能をオンします -snd 〃 -nosound サウンド機能をオフします -nosnd 〃 サウンド機能をオフすると、サウンド機能が一切使えなくなります が、処理速度・メモリ消費量は改善されます。 省略時は、-sound です。 -audio サウンドデバイスから出力します -ao 〃 -noaudio サウンドデバイスから出力しません -noao 〃 サウンドデバイスから出力しない場合でも、サウンド機能は動作する ため、サウンド出力保存などの機能は利用可能です。 省略時は、-audio です。 -samples サンプル音を使用します -sam 〃 -nosamples サンプル音を使用しません -nosam 〃 省略時は、-nosamples です。 -fmgen FM Sound Generator (fmgen) を使用します -nofmgen FM Sound Generator (fmgen) を使用しません fmgen は fmgenの使用がコンパイル時に有効になっていている 場合にのみ有効です。また、-fmgen 指定時は -fmgenvol が有効に なり、-fmvol, -psgvol, -rhythmvol, -adpcmvol は無視されます。 省略時は、-nofmgen です。 -samplefreq サンプリング再生周波数を指定します。 -sf は、Hz で 8000〜48000 の値を指定します。 システムによっては指定通りの設定とはならない場合があります。 省略時は、-samplefreq 44100 です。 -fmvol FM 音源の音出力レベルを設定します は、0〜100 [%] の値を設定します。 省略時は、-fmvol 100 です。 -psgvol PSG音源の音出力レベルを設定します は、0〜100 [%] の値を設定します。 省略時は、-psgvol 20 です。 -beepvol BEEP音の出力レベルを設定します は、0〜100 [%] の値を設定します。 省略時は、-beepvol 60 です。 -fmgenvol fmgen 使用時の音の出力レベルを設定します は、0〜100 [%] の値を設定します。 省略時は、-fmgenvol 100 です。 -samplevol サンプル音の出力レベルを設定します は、0〜100 [%] の値を設定します。 省略時は、-samplevol 50 です。 -rhythmvol リズム音の出力レベルを設定します は、0〜200 [%] の値を設定します。 実際の出力レベルは、-fmvol により影響されます。 注意) -sd2 が指定されている場合のみ、機能します。 省略時は、-rhythmvol 100 です。 -adpcmvol ADPCM音源の出力レベルを設定します は、0〜200 [%] の値を設定します。 実際の出力レベルは、-fmvol により影響されます。 注意) -sd2 が指定されている場合のみ、機能します。 省略時は、-adpcmvol 100 です。 -close メニューモードではサウンドデバイスを解放します -noclose メニューモードでもサウンドデバイスを解放しません メニューモードや一時停止中にサウンドデバイスを解放する (close) かどうかを設定します。使用するシステムによっては、-close を 指定した場合、メニューモードから戻った後にサウンドが鳴らなく なることがあります。 システムによっては、このオプションは無効です。 省略時は、-noclose です。 ●以下のオプションは、 X11バージョンで有効です -volume ボリュームをデシベルで設定します。 -v は、-32(音量小)〜0(音量大) の値を指定します。 実際の音量は、-fmvol、-psgvol、-beepvol などにも影響されます。 システムによっては、このオプションは無効です。 省略時は、??? -bufsize サウンドバッファのフレーム数を設定します -bs は、1.0〜30.0 の値を指定します。 省略時は、-bufsize 3.0 です。 -audiodevice オーディオデバイスを指定します -ad 〃 省略時は、DSPプラグインにより自動的に設定されます。 -mixerdevice ミキサーデバイスを指定します -md 〃 省略時は、ミキサープラグインにより自動的に設定されます。 -dsp-plugin DSP プラグインを指定します -dp 〃 省略時は、システムにより自動的に設定されます。 -list-dsp-plugins DSPプラグインの一覧を表示します。 -ldp 〃 使用可能な DSPプラグイン一覧を表示し、QUASI88 を終了します。 -timer タイマベースのサウンドを使用します。 -ti 〃 -notimer タイマベースのサウンドを使用しません。 -noti 〃 通常は、必要に応じて、システムが自動的に設定します。 -sound-mixer-plugin ミキサー プラグインを指定します -smp 〃 省略時は、システムにより自動的に設定されます。 -list-mixer-plugins ミキサープラグインの一覧を表示します。 -lmp 〃 使用可能なミキサープラグイン一覧を表示し QUASI88 を終了します。 -bufnum サウンドストリームのバッファの数を指定します -bn は、1〜16 の値を設定します。 値を 4 以上にすると、サウンドノイズが低減されるかもしれません。 -bufsize は、サウンドデバイスのバッファのサイズ設定なので、 デバイス (ハードウェア) によっては、設定が無視される場合が ありますが、 -bufnum は、内部バッファのサイズ設定なので、 必ず有効となります。 省略時は、-bufnum 3 です。 注意) このオプションは、実験中です。 4以上の値では、サウンド出力にずれが生じるかもしれません。 ●以下のオプションは、 SDLバージョンで有効です -sdlbufsize サウンドバッファのサイズを設定します は、512, 1024, 2048, 4096, 8192, 16384 のいずれかです。 (2のべき乗の値を設定してください) 値が小さいとノイズが発生しやすくなります。 値が大きいとサウンド出力のずれが大きくなります。 省略時は、-sdlbufsize 2048 です。 -audiodrv オーディオドライバを指定します これは、あらかじめ環境変数 SDL_AUDIODRIVER に をセット しておくのと同じ効果があります。 使用可能なオーディオ、SDLに依存します。 (UNIX の場合は、 dsp, esd, alsa など) (Windows の場合は、 waveout, dsound など?) (Classic Mac OS の場合は、 sndmgr, coreaudio など?) 省略時の設定は、SDLのバージョンに依存します。 ●その他のオプション その他にも、オプションがある場合があります。 -help オプションを付けると、使用可能なオプションがすべて 表示されます。 【 キーなどの入力に関する設定 】 -tenkey フルキーの 0〜9 をテンキーの 0〜9 に見立てます -notenkey -tenkey の指定を解除します。 -numlock ソフトウェア Num Lock を オンします 詳細は、下記の キー操作 の項目を参照下さい。 -nonumlock -numlock の指定を解除します。 -cursor カーソルキーをテンキーの 2,4,6,8 に割り当てます また、[\],[右 Shift] も、7,9 に割り当てます -nocursor -cursor の指定を解除します。 -mousekey マウスの移動を、テンキーの 2,4,6,8 に割り当てます。 また、マウスの左右ボタンも、x,z に割り当てます。 -nomousekey -mousekey の指定を解除します。 -joykey ジョイスティック入力を、テンキーの 2,4,6,8 および x,z に割り当てます -nojoykey -joykey の指定を解除します。 -use_joy オプションも参照してください。 -f6 ファンクションキー F6 に、機能を割り当てます -f7 ファンクションキー F7 に、機能を割り当てます -f9 ファンクションキー F8 に、機能を割り当てます -f9 ファンクションキー F9 に、機能を割り当てます -f10 ファンクションキーF10 に、機能を割り当てます には、以下の文字列を指定します。 (文字列は、大文字でも小文字でも構いません) FRATE-UP オプション -frameskip の n の値を大きくし ます。(1→2→3→4→5→6→10→12→15→30→60→) FRATE-DOWN オプション -frameskip の n の値を小さくし ます。(60→30→15→12→10→6→5→4→3→2→1→) VOLUME-UP ボリュームを上げます VOLUME-DOWN ボリュームを下げます PAUSE 一時停止します ( ESCキーを押せば解除 ) RESIZE 画面サイズを切替えます (HALF→FULL→DOUBLE→) FULLSCREEN フルスクリーンと切替えます NOWAIT ウエイトの有無を切替えます (-nowait) SPEED-UP 速度比(%) を 5ポイント上げます SPEED-DOWN 速度比(%) を 5ポイント下げます MAX-SPEED 速度比(%) を -fn_max_speed の設定値にします MAX-CLOCK CPUクロックを -fn_max_clock の設定値にします MAX-BOOST ブースト値を -fn_max_boost の設定値にします SNAPSHOT スクリーンスナップショットを保存します IMAGE-NEXT1 ドライブ 1: に設定されているイメージファイルの イメージを、次のイメージに変更します IMAGE-PREV1 ドライブ 1: に設定されているイメージファイルの イメージを、前のイメージに変更します IMAGE-NEXT2 ドライブ 2: に設定されているイメージファイルの イメージを、次のイメージに変更します IMAGE-PREV2 ドライブ 2: に設定されているイメージファイルの イメージを、前のイメージに変更します NUMLOCK ソフトウェア Num Lock キーに割り当てます RESET リセットキーに割り当てます KANA カナキーに割り当てます ROMAJI カナキー(ローマ字入力)に割り当てます CAPS CAPSキーに割り当てます STATUS ステータスを表示します (F11には割り当て済み) MENU メニューモードになります (F12には割り当て済み) -fn_max_speed -f6〜-f10 MAX-SPEED の設定値を設定します -fn_max_clock -f6〜-f10 MAX-CLOCK の設定値を設定します -fn_max_boost -f6〜-f10 MAX-BOOST の設定値を設定します -romaji ローマ字カナ変換の規則を設定します n=0 の時、egg に似た変換規則になります。 n=1 の時、MS-IME に似た変換規則になります。 n=2 の時、ATOK に似た変換規則になります。 省略時は、n=0 です。 -kanjikey ファンクションキー F6〜F10 を、PC-8801FH/MH 以降で 拡張された漢字変換などのキーに割り当てます -joyswap ジョイスティックのボタン A と B を入れ替えます -use_joy オプションも参照してください。 -mouseswap マウスのボタン 左 と 右 を入れ替えます QUASI88 にてマウスを使用する設定になっている場合のみ有効です。 -mousespeed マウスの速度比を設定します は比率(パーセント)で、5〜400 の範囲で設定します。 システムによっては指定通りの設定とはならない場合があります。 省略時は、-speed 100 です。 -keyboard キーボードの種類を指定します。 n=0 の時、キー設定ファイルを読み込みます。 n=1 の時、日本語106キーボードとします。 n=2 の時、英語101キーボードとします。 システムによっては、このオプションは無効です。 省略時は、-keyboard 1 です。 -keyconf キーボード設定ファイルを指定します このファイルは -keyboard 0 指定時にのみ読み込まれます。 このオプションを省略した時の、ファイル名は、 キー設定ファイル の項目を参照ください。 システムによっては、このオプションは無効です。 -cmdkey コマンドキーで、メニューモードに移ります -nocmdkey コマンドキーで、メニューモードに移りません システムによっては、このオプションは無効です。 省略時は、-cmdkey です。 【 メニューモードに関する設定 】 -menu メニューモードで起動します -japanese メニューモードを日本語表記にします -english メニューモードを英語表記にします 英語表記は明らかにおかしいです。誰か翻訳してください (;_;) 省略時は、漢字ROMが存在する場合は日本語表記、存在しない場合は 英語表記になります。 -euc ファイル名表示を、日本語EUCコードで処理します -sjis ファイル名表示を、シフトJISコードで処理します -utf8 ファイル名表示を、UTF-8 コードで処理します UNIXの場合、省略時は -euc です。 それ以外は、省略時は -sjis です。 -bmp スクリーンスナップショットのフォーマットを BMP とします -ppm スクリーンスナップショットのフォーマットを PPM とします -raw スクリーンスナップショットのフォーマットを RAW とします 省略時は、-bmp です。 -swapdrv メニューモードの『ディスク』タブ画面で、ドライブの表示 位置を左右入れかえます。やっぱり ドライブ 1: は右側に 表示されるべき、という人向けのオプションです。 -menucursor メニューモード専用のマウスカーソルを表示します -nomenucursor メニューモード専用のマウスカーソルを表示しません マウスカーソルが正常に表示されないようなシステムの場合に、 指定してみてください。 省略時は、-nomenucursor です。 【 その他の設定 】 -romdir ROM用ディレクトリを設定します -diskdir ディスク用ディレクトリを設定します -tapedir テープ用ディレクトリを設定します -snapdir スナップショット保存先ディレクトリを設定します -statedir ステートファイル保存先ディレクトリを設定します -noconfig 起動時に、設定ファイルを読み込みません -compatrom P88SR.EXE (PC8801mk-2SR emulator) の ROM イメージファイルを使用します -resume 起動時にステートロードします デフォルトのステートファイルをロードします。 注意) ステートセーブ時の QUASI88 のバージョンと、復帰時の バージョンが異なる場合、エラーになります。 -resumefile 起動時にステートロードします で指定されたステートファイルをロードします。 注意) -resume オプションの注意も参照してください。 -use_joy システムのジョイスティックを使用します -nouse_joy システムのジョイスティックを使用しません ジョイスティックは一部のシステムに対してのみ使用可能です。 ジョイスティック関連のオプション (-joystick, -joyswapなど) は、 -use_joy を指定しないと意味がありません。 省略時は、-use_joy です。 -focus フォーカスがある時のみ、処理を続行します -nofocus フォーカスにかかわらず、処理を続行します -focus オプションをつけると、QUASI88 がフォーカスを得ている時 のみエミュレータを動かします。フォーカスを失っている間は、 エミュレータは一時停止します。 システムによっては、このオプションは無効です。 省略時は、-nofocus です。 -sleep ウェイト調整中はシステムを sleep します -nosleep ウェイト調整中はシステムを sleep しません -sleep オプションをつけると、システムの負荷が減ります。 システムによっては、このオプションは無効です。 省略時は、-sleep です。 -ro 読み込み専用でイメージファイルを開きます -rw 読み書き可能でイメージファイルを開きます 省略時は、-rw です。 -ignore_ro 読み込み専用で開いたイメージの扱いを変更します -noignore_ro 読み込み専用で開いたイメージの扱いを元に戻します 通常、読み込み専用で開いたディスクイメージは、ライトプロテクト された状態と同じに扱われますが、オプション -ignore_ro を指定し た場合はディスクイメージ自身の属性に従います。 また、 -ignore_ro の指定時に、読み込み専用で開いたディスク イメージに書き込みを行った場合、書き込み自体は行われませんが 正常に書き込んだ場合と同じ応答を返すようにエミュレートします。 -diskimage ディスクイメージファイルを指定します 通常は、引数でイメージファイルを指定するので、このオプションを 使用することはないと思います。 環境設定ファイル(後述)で、ディスクイメージファイルを指定したい 場合に、使用してください。 -saveconfig QUASI88 の終了時に設定ファイルを更新します -nosaveconfig QUASI88 の終了時に設定ファイルを更新しません 省略時は、-nosaveconfig です。 【 デバッグ用の設定 … 通常使用することはないでしょう 】 -help ヘルプを表示して、QUASI88を終了します -verbose 冗長レベルを設定します デバッグ用のメッセージの表示を設定/抑制します。 1 … 起動プロセスのメッセージを表示します。 2 … 未定義の Z80 のコードが見つかると表示します。 4 … 未定義の I/O ポートのアクセスがあると表示します 8 … PIO の不正使用があると表示します 16 … FDC の処理中に警告があると表示します 32 … ウエイト計測中にエラーがあると表示します 64 … ステートセーブ処理のメッセージを表示します 128 … サウンド処理関連のメッセージを表示します には、上記の数字の合計を設定します。 n=0 の時は何も表示されず、n=255 の時はやたらと表示が増えます。 省略時は、-verbose 0 です。 -printer プリンタ出力用のファイルを設定します QUASI88 で、プリンタポートに出力されたデータを書き出すファイル を指定します。ファイルには追記されます。 省略時は、どこにも書き出しません。 注意) このオプションは、未検証です。 -serialout シリアル出力用のファイルを設定します QUASI88 で、シリアルポートに出力されたデータを書き出すファイル を指定します。ファイルには追記されます。 省略時は、どこにも書き出しません。 注意) このオプションは、未検証です。 -serialin シリアル入力用のファイルを設定します QUASI88 で、シリアルポートから入力するデータを読み出すファイル を指定します。 省略時は、どこからも読み出しません。 注意) このオプションは、未検証です。 -record キー入力を記録するファイルを指定します キー入力、ディスクイメージの交換記録などが、指定したファイルに 書き出されます。 省略時は、どこにも書き出しません。 注意) このオプションは、実験中です。 -playback キー入力を読み込むファイルを指定します 指定したファイルからキー入力、ディスクイメージの交換記録などを 読み込みます。( ここで 指定するファイルは、-record にて 書き出したファイルに限ります ) 省略時は、なにも読み出しません。 注意) このオプションの使用時には、-record を指定した時にともに 指定したオプション類を、同時に指定してください。 注意) このオプションは実験中で、まだ動作が不安定です。 -timestop QUASI88 の内蔵時計を、85/01/01 00:00:00 で停止させます なにに使うのでしょう? -vsync VSYNC の周期を設定します は、VSYNC 割り込みの生成周期(Hz)で 10.0 〜 240.0 の範囲 (小数)で設定します。 省略時は、-vsync 55.4 です。 -soundclock サウンドチップのクロックを設定します。 は、サウンド割込生成の基準となるサウンドチップの クロック周波数(MHz)で、0.1 〜 100.0 の範囲(小数)で設定します。 ( 一般には、値を大きくすると音楽のテンポが上がります。) 省略時は、-clock と同じく、-soundclock 3.9936 です。 -subload サブCPU処理時の、余計な処理の負荷を下げます。 は負荷の度合で、0 以上の値を指定します。 1 で最大負荷、数値が大きくなるにつれて、負荷が減ります。 また、0 を指定した場合は、負荷は無しになります。 負荷を減らすと、サウンドが途切れにくいなどのメリットがあり ますが、FDD状態表示が更新されないなどのささいな不具合が出ます。 なお、-cpu 0 ないし -cpu 1 オプション指定時のみ、有効です。 省略時は、-subload 6 です。 -cmt_wait T88形式テープイメージのリード時にウェイトを入れます -cmt_nowait T88形式テープイメージのリード時にウェイトを入れません 省略時は、-cmt_wait です。 -linear_ram 拡張RAMのバンク番号を、0から順に割り当てます -nolinear_ram 拡張RAMのバンク番号を、飛び飛びに割り当てます -extram オプションも参照してください。 省略時は、-linear_ram です。 -cmd_sing CMD SING を有効にします -no_cmd_sing CMD SING を無効にします 省略時は、-no_cmd_sing です。 -debug モニターモードを有効にします このオプションを指定すると、モニターモードへの移行ができます。 モニタモードの使用がコンパイル時に有効になっていない場合、 このオプションは無視されます。 -monitor モニターモードで起動します このオプションを指定すると、暗黙のうちに -debugが指定されます。 モニタモードの使用がコンパイル時に有効になっていない場合、 このオプションは無視されます。 -fdcdebug FDC のコマンド、トラック、セクタ情報を標準出力へ表示 モニタモードの使用がコンパイル時に有効になっていない場合、 このオプションは無視されます。 ROMイメージファイル QUASI88 は、起動時に ROMイメージファイルを、ROM用ディレクトリから 読み込みます。ROM用ディレクトリは、以下の規則で決定されます。 1) オプション -romdir が指定されている場合、そのディレクトリ 2) 1) が指定されていない場合は、環境変数 QUASI88_ROM_DIR で 設定されたディレクトリ 3) 1)・2) とも指定されていない場合は、コンパイル時に設定された ディレクトリ 読み込まれる ROM イメージファイルのファイル名は以下の通りです。 ファイル名は小文字でもかまいません。なお、読み込み時にエラーとなった 場合、-verbose オプションが指定してあれば警告メッセージが表示されます。 ファイル名 内容 (サイズ) N88.ROM N88 BASIC ROM (32KB) N88EXT0.ROM N88 BASIC 拡張ROM バンク 0 (8KB) N88EXT1.ROM N88 BASIC 拡張ROM バンク 1 (8KB) N88EXT2.ROM N88 BASIC 拡張ROM バンク 2 (8KB) N88EXT3.ROM N88 BASIC 拡張ROM バンク 3 (8KB) N88N.ROM N BASIC ROM (32KB) N88SUB.ROM サブCPU ROM (2KB) *1 N88KNJ1.ROM 漢字ROM第1水準 (128KB) *2 N88KNJ2.ROM 漢字ROM第2水準 (128KB) *2 N88JISHO.ROM 辞書ROM (512KB) *3 FONT.ROM フォントイメージ *4 *1) Mシリーズ(2HDドライブ搭載機) は 8KBとなります。 *2) 漢字ROMは、PC-8801 の一部の機種には実装されていません。 エミュレートするアプリケーションによっては不要です。 *3) 辞書ROMは MA/MA2/MC のみに実装されていますが、通常は不要です。 -jisho オプションを指定した時にのみ、読み込まれます。 *4) フォントイメージは必須ではありません。 フォントについて の項目も参照ください。 ※ M88 の ROMイメージファイルを使用することも可能です。 参考までに、M88 の ROMイメージファイル名は以下のとおりです。 (ファイル名は小文字でもかまいません) ファイル名 内容 N88.ROM N88 BASIC ROM N88_0.ROM N88 BASIC 拡張ROM バンク 0 N88_1.ROM N88 BASIC 拡張ROM バンク 1 N88_2.ROM N88 BASIC 拡張ROM バンク 2 N88_3.ROM N88 BASIC 拡張ROM バンク 3 N80.ROM N BASIC ROM DISK.ROM サブCPU ROM KANJI1.ROM 漢字ROM第1水準 KANJI2.ROM 漢字ROM第2水準 JISHO.ROM 辞書ROM -compatrom オプションが指定されている場合、P88SR.EXE の ROMイメージ ファイルから ROMイメージ を読み出します。ただし、この場合でも 漢字ROM・辞書ROM・フォントイメージのファイルは上記のディレクトリから 読み込まれます。 サウンドの使用、および fmgen がコンパイル時に有効になっている場合 で、 -sd2 オプションと -fmgen オプションを指定した場合、起動時に以下の ファイルを ROM用ディレクトリから読み込みます。 (ファイル名は小文字でもかまいません) ファイル名 内容 2608_BD.WAV バスドラム 2608_SD.WAV スネアドラム 2608_TOP.WAV トップシンバル 2608_HH.WAV ハイハット 2608_TOM.WAV タムタム 2608_RIM.WAV リムショット いずれもファイルは 44100Hz、モノラル、16bit PCM のWAV形式です。 ファイルが一つでも欠けていると、サウンドボードIIのリズム音源が 鳴りません。 なお、これらのファイルは、-nofmgen 指定時 (デフォルト) は不要です。 サウンドの使用がコンパイル時に有効になっている場合で、 -samples オプションを指定した場合、起動時に以下のファイルを ROM用ディレクトリ から読み込みます。(ファイル名は小文字でもかまいません) ファイル名 内容 MOTORON.WAV リレー音 MOTOROFF.WAV リレー音 SEEK.WAV FDD音 HEADUP.WAV FDD音 HEADDOWN.WAV FDD音 いずれもファイルは 44100Hz、モノラル、16bit PCM のWAV形式です。 なお、これらのファイルは、-nosamples 指定時 (デフォルト) は不要です。 フォントについて QUASI88 は画面の文字表示に、フォントイメージファイル 『FONT.ROM』 の データを使用します。このファイルが無い場合、漢字ROM第1水準のROM イメージファイル 『N88KNJ1.ROM』 からフォントデータを生成して使用 します。このファイルもない場合は、QUASI88自身に内蔵しているオリジナル フォントを使用することになります。 また、独自に作ったフォントイメージを使用したい場合は、ファイル名を 『FONT2.ROM』か『FONT3.ROM』にして保存しておけば、起動時に自動的に 読み込まれます。これらのフォントは、メニューモードの『画面』タブにて 切り替えることが可能です。通常は『FONT2.ROM』『FONT3.ROM』は存在しない と思われますが、この場合は QUASI88 に内蔵しているひらがなフォント、 透明フォント(^^;) が切り替え可能なフォントとして用意されます。 ディスクイメージファイル 引数にてイメージファイル名が指定されていた場合、QUASI88 は起動時に そのファイルを読み込みます。 A) 指定したファイル名が パス区切り (UNIX なら '/') を含む場合、 指定されたファイルを読み込みます。 B) 指定したファイル名が パス区切り (UNIX なら '/') を含まない場合、 DISK用ディレクトリから読み込みます。DISK用ディレクトリは、 以下の規則で決定されます。 1) オプション -diskdir が指定されている場合、そのディレクトリ 2) 1) が指定されていない場合は、環境変数 QUASI88_DISK_DIR で 設定されたディレクトリ 3) 1)・2) とも指定されていない場合は、コンパイル時に設定された ディレクトリ DISK用ディレクトリにファイルが無い場合は、カレントディレクトリ からファイルを読み込みます。 例) % quasi88 /local/image/a.d88 /local/image/a.d88 を読み込みます。 % quasi88 ../b.d88 ../b.d88 を読み込みます。 % quasi88 c.d88 -diskdir /home/image/ /home/image/c.d88 を読み込みます。ファイルが無い場合は、 カレントディレクトリの c.d88 を読み込みます。 % quasi88 d.d88 ${QUASI88_DISK_DIR} ディレクトリにある d.d88 を読み込みます。 ${QUASI88_DISK_DIR} が未定義ならば、コンパイル時に設定された ディレクトリにある d.d88 を読み込みます。ファイルが無い場合は、 カレントディレクトリの d.d88 を読み込みます。 ファイルが読めない場合はエラーを表示し、ドライブにはディスクが 入っていない状態で起動します。 ディスクイメージファイルのフォーマット QUASI88 で使用するディスクイメージファイルのフォーマットは、 P88SR.EXE (PC8801mk-2SR emulator) に準拠しているつもりです。 詳細は附属のドキュメント(ファイル名 FORMAT.TXT) を参照下さい。 設定ファイル 『環境設定ファイル』が存在すれば、起動時にそれを読み込みます。 また、起動時にディスクイメージファイル名(例えば、「xyz.d88」)を指定 した場合、『個別設定ファイル』が存在すれば、それも読み込みます。 設定ファイルの書式については、後述します。 UNIX の場合) 『環境設定ファイル』は、${HOME}/.quasi88/quasi88.rc です。 『個別設定ファイル』は、${HOME}/.quasi88/rc/xyz.rc のようになります。 なお、${HOME} はホームディレクトリです。 Windows の場合) 『環境設定ファイル』は、%QUASI88_HOME%\QUASI88.ini です。 『個別設定ファイル』は、%QUASI88_INI_DIR%\xyz.ini のようになります。 ( QUASI88_HOME 、 QUASI88_INI_DIR は環境変数です。未定義の場合は後述) Classic Mac OS の場合) 『環境設定ファイル』は、カレントフォルダの QUASI88.prefs です。 『個別設定ファイル』は、カレントフォルダの xyz.prefs のようになります キー操作 QUASI88は、106キーボードを前提にキー入力をエミュレートしています。 そのため、他のキーボードを使っている場合は、キーの刻印と QUASI88上での 入力が異なる場合があります。 101キーボードを使う場合は、 -keyboard 2 を指定すると、PC-8801 のキー 配列をほぼエミュレートできると思います。 (未検証です。また、システムによっては不可となります) なお、シフトの右左および、リターンキーのフルキー側/テンキー側の 区別はエミュレートされていません。 PC-8801の特殊なキーは、以下のキーで入力できます。(システムに よっては、入力できなかったり、ロックができなかったりします) PC-8801のキー 106キーボード 101キーボード ------------- ------------- ------------- STOP Pause Pause COPY PrintScreen PrintScreen HOME CLR Home Home HELP End End ROLL DOWN PageUp PageUp ROLL UP PageDown PageDown かな ScrollLock ScrollLock かな 左Win 左Win かな ひらがな GRAPH 左Alt 左Alt GRAPH オプション オプション 決定 無変換 変換 変換 全角 右Alt 右Alt 全角 半角全角 ろ(SHIFTの左) 右Ctrl また、 F11 と F12 は以下の機能に割り当てられています。 F11 ステータス表示。押すたびに表示/非表示が切り替わります F12 メニューモードへ移ります システムによっては、以下のキーにも機能が割り当てられています。 アプリケーションキー メニューモードへ移ります コマンドキー メニューモードへ移ります 起動時のオプションで、-kanjikey を指定した場合は、F6〜F10 が 以下のように割り当てられます。 F6 カナ F7 決定 F8 変換 F9 全角 F10 カナ (ローマ字入力モード) 起動時のオプションで、-numlock を指定した場合は、以下のキー が PC-8801 のテンキーに割り当てられます。(ソフトウェア Num Lock) PC-8801のキー 106キーボード 101キーボード ---------------- ------------- ------------- HOME HELP / = 5 6 - ^ 5 6 - = 7 8 9 + 7 8 9 0 7 8 9 0 4 5 6 - U I O P U I O P 1 2 3 * J K L ; J K L ; 0 , . RET M , . / M , . / また、ファンクションキーに ソフトウェア NumLock 機能を割り当てる ことができます。例えば、起動時に -f6 NUMLOCK を指定した場合、F6 キー を押下するたびに、ソフトウェア NumLock のオン・オフを切替えることが できます。 -kanjikey、-f6〜-f10 を同時に指定した場合、最後に指定した機能が有効に なります。 ●メニューモードについて F12キーを押すと、メニューモード(後述)に移行します。この時、 CAPSキーとカナキーを除く全てのキーが離された状態になります。 ●ローマ字入力モードについて ファンクションキーに ローマ字入力用カナキーを割り当てることができ ます。例えば、起動時に -f6 ROMAJI を指定した場合、F6 キーを押下する ことで、カナキーのオン・オフを切替えることができますが、オン状態の時 ローマ字によるカナ入力が可能となります。 ローマ字カナ変換は、一般的な規則に従います。また、-romaji オプショ ンを指定すれば、変換規則をいくつかのパターンから選択することができま す。(-romaji オプションの説明を参照) 以下に特殊な変換を示します。 @ → ゛ に変換される [ → ゜ に変換される / → ・ に変換される - → ー に変換される { → 「 に変換される } → 」 に変換される . → 、 に変換される , → 。 に変換される なお、ローマ字入力中に数字のキーや記号のキーは入力出来ません (テン キーは可)。スペースキーおよび、特殊機能キーは入力可能です。 キー設定ファイル -keyboard 0 指定時は、『キー設定ファイル』が存在すれば、起動時に それを読み込みます。 UNIX の場合) 『キー設定ファイル』は、${HOME}/.quasi88/keyconf.rc です。 なお、${HOME} はホームディレクトリです。 Windows の場合) 『キー設定ファイル』は、%QUASI88_HOME%\KEYCONF.ini です。 ( QUASI88_HOME 、 QUASI88_INI_DIR は環境変数です。未定義の場合は後述) Classic Mac OS の場合) 『キー設定ファイル』は、カレントフォルダの KEYCONF.prefs です。 なお、 -keyconf オプションを指定した場合、そこで指定したファイル名が 『キー設定ファイル』として読み込まれます。 システムによっては、キー設定ファイルは使用できません。 メニューモード F12キー(システムによっては、アプリケーションキーやコマンドキー)を 押すと、メニューモードに移行する事が出来ます。 このモードでは、マウスやタブ/カーソルキーを使って、各種設定の変更、 イメージの変更が可能です。 基本的な操作は以下の通りです。 ・マウス左クリック … フォーカスの移動および決定 ・タブキー … フォーカスの移動 ・スペース/リターンキー … 決定 ・カーソルキー … 一部のメニュー内でフォーカス移動 ・ファンクションキー … タブの変更 メニューモードには、以下の項目があります。 ・『リセット』タブ 現在のBASICモードが表示されます。 BASICモード、CPUクロック、サウンドボードの種別、などを変更して リセットすることができます。 ・『CPU』タブ -cpu オプションの変更ができます。(変更後はリセット推奨) CPUクロックの変更ができます。 (変更後はリセット推奨) 動作速度や、-fdc_wait、-hsbasic オプションの変更ができます。 ・『画面』タブ フレームレート (-frameskipオプション) や、-autoskip オプション、 画面サイズ、PCG-8100の有無、雑多な画面効果の設定ができます。 ・『音量』タブ 音量や FM音源、PSG音源、BEEP音のレベルなどを変更できます。 -fmgen、-samplefreq、-samples オプションなどが変更できます。 (変更後はリセット推奨) このタブは、サウンド出力が不可の場合は、表示されません。 ・『ディスク』タブ ディスクイメージファイルを開いたり、閉じたり、イメージを 交換したりできます。 イメージの名前、プロテクトの変更および、フォーマット、 アンフォーマットができます。 ブランクディスクイメージの作成および追加ができます。 ・『キー』タブ ファンクションキー F6〜F10 に各種機能や文字を設定できます。 カーソルキーに任意の文字キーを割り当てることができます。 すべてのキーの各々を、オン/オフ設定できます。 ・『マウス』タブ マウス (ジョイスティック) の接続を設定できます。 マウス/ジョイスティックに任意の文字キーを割り当てることが できます。 システムのマウスカーソルの表示状態を変えることができます。 ・『テープ』タブ テープイメージ (ロード用/セーブ用) ファイルを設定できます。 ・『その他』タブ ステートロード、ステートセーブができます。 スクリーンスナップショットの設定と実行ができます。 サウンド出力の保存ができます。 ・「設定保存」ボタン 現在の設定 (の一部) を、環境設定ファイルに出力します。 ・「ステータス」ボタン ウインドウ下部のステータスの表示・非表示を切り替えます。 ・「戻る」ボタン エミュレータに戻ります。 ・「終了」ボタン QUASI88を終了します。 ・「モニター」ボタン モニターモードに移行します。(移行可能な場合のみ、表示) モニターモード モニターモードとは、作者が QUASI88 のデバッグをする際に使用している モードです。よって一般の人は使い方を知る必要はありません。 この項目は興味のある人のみ、読んでください。 (注意:この項目の内容には、記述が古いものがあるかもしれません) QUASI88 に SIGINT シグナル (通常、端末からの Control-C 入力で発生) を送ると、通常時は強制終了します。しかし起動時に -debug オプションが 指定されていた場合は、 SIGINT シグナルによってモニターモードに移行 します。 ( -debug オプション指定時は、メニューモードからでもモニター モードへの移行が出来ます。) ただし、コンパイル時の設定でモニターモードの使用が有効になっていない 場合は、モニタモードには入れませんので注意してください。 モニターモードでは、コマンドラインから各種コマンドを指示することで、 QUASI88 の状態を調べたり、変更したりすることが可能です。 また、また、ディスク交換やファイル操作なども行なえます。 ・コマンドは全て小文字です。 ・コマンドによっては、引数が必要なものもあります。 ・引数には、大文字小文字の区別はありません。(ファイル名などは除く) ・引数に数値を指定する場合は、16進数の場合は先頭に 0x をつけます。 例) 15 … 10進数で 15 -50 … 10進数で -50 0x20 … 16進数で 0x20 (10進数で32) ・引数にアドレスを指定する場合は、0〜65535、または 0x0〜0xffff の値に限られます。 ・引数に入出力ポートを指定する場合は、0〜255、または 0x0〜0xff の値に限られます。 ・引数にドライブ番号を指定する場合は、1 または 2 の値に限られます ・引数にイメージ番号を指定する場合は、1 〜 32 の値に限られます。 ・引数が、サイズを意味する場合、数値の先頭に#をつけます。 この表記は、一部のコマンドで使用可能です。 なお、この場合は 0以下の値は使用できません。 例) #20 … 10進数で20 #0xff … 16進数で 0xff (10進数で255) #-5 … 0以下は使用不可 (エラーになります) 以下に、モニターモードで使用できるコマンドの書式を説明します。 [] で囲まれたものは、省略可能です。 help [] ヘルプを表示します。 ・には、ヘルプを表示させたいコマンド名を指定します。 ・引数を省略した場合、モニターモードで使用可能な全コマンドの 一覧が表示されます。 quit QUASI88 を終了します menu メニューモードに移行します go モニターモードを終了し、エミュレータに戻ります。 trace trace # trace CHANGE trace エミュレータを数ステップ、動かします。 ・ または # には、ステップ数を指定します。 ・CHANGE は、-cpu 0 または -cpu 1 の設定になっている場合に有効で、 CPU の処理が MAIN←→SUB と切り替わるまで、エミュレータを 動かします。 ・引数を全て省略した場合は、前回に指定したステップ数と同じと みなして、処理をします。 例) trace 100 … 100ステップ、エミュレートします trace #100 … 同上 trace CHANGE … CPUが切り替わるまで、エミュレートします trace … 前回の指定と同じ条件で、エミュレートします step step CALL step JP step REP step ALL 1 ステップだけ、エミュレータを動かします。 ・CALL は、CALL命令 (サブルーチン) の次の命令まで動かします。 ・JP は、DJNZ命令 (ループジャンプ) の次の命令まで動かします。 ・REP は、LDIR/LDDR/CPIR/CPDR/INIR/INDR/OTIR/OTDR (ブロック転送/ ブロック比較/連続入力/連続出力) の次の命令まで動かします。 ・ALL は、CALL JP REP の全てを指定したものと同じです。 注意) CALL/JP/REP/ALL は、内部で暗黙のうちに ブレークポイント #10 を使用します。 break [] [] [#] break [] [CLEAR] [#] break ブレークポイントを設定/解除します。 メイン、サブ別々に、各々10個までのブレークポイントが設定できます。 (ただし、10番目のブレークポイントはシステムが勝手に適時使用します) ブレークポイントの条件として以下の5種類があります。 PC … CPU の PC(プログラムカウンタ) が特定のアドレスまで 進んだ時点で、停止 READ … CPU が特定のアドレスから読み込んだ後に、停止 WRITE … CPU が特定のアドレスに 書き込んだ後に、停止 IN … CPU が特定の入力ポートから入力した後に、停止 OUT … CPU が特定の出力ポートに 出力した後に、停止 ・ には、CPUの種類と指定します。 MAIN または SUB。 省略時は、MAIN。 ・ には、上記の条件を指定します。 PC、READ、WRITE、IN、OUT、CLEAR のいずれか 省略時は、PC。 CLEAR を指定した場合は そのブレークポイントを解除します。 ・ または には、ブレークポイントとして設定するアドレス ないしは、入出力ポートを指定します。 に CLEAR を指定している場合は、 この引数はつけてはいけません。 ・# には、ブレークポイントを設定する番号を指定します。 #1 〜 #10 の、計10個が、メイン、サブ別々に使用できます。 省略時は、#1。 注意)#10 は、step コマンド使用時に、内部で使用される場合 があります。このため、#10 は勝手に破壊されるおそれが あるので、一般には使用しないほうがいいでしょう。 ・引数を全て省略した場合は、現在のブレークポイントの設定状況を 表示します。 例) break 0x1234 … メインCPU の PC が 0x1234 に達し たら、停止します。 #1 にその条件を設定をします。 break READ 0xe3c8 #2 … メインCPU が 0xe3c8 番地をリード したら停止します。 #2 にその条件を設定します。 break SUB IN 0xfa #7 … サブCPUが、出力ポート 0xfa に出力 したら停止します。 #7 にその条件を設定します。 break CLEAR … メインの #1 の設定をクリアします。 break SUB CLEAR #7 … サブの #7 の設定をクリアします。 break … 現在の設定をすべて表示します。 break clear #0 … すべての設定をクリアします。 この場合だけ、例外的に #0 と 指定してください。 read [] メモリから1バイト、読み込みます。 ・ には、メモリバンクを指定します。 MAIN … メインCPUに現在設定されているバンク ROM … N88 BASIC の ROM バンク RAM … メインCPU の RAM N … N BASIC の ROM バンク EXT0 … N88 BASIC 拡張 ROM バンク No. 0 EXT1 … N88 BASIC 拡張 ROM バンク No. 1 EXT2 … N88 BASIC 拡張 ROM バンク No. 2 EXT3 … N88 BASIC 拡張 ROM バンク No. 3 B … VRAM の Blue プレーン R … VRAM の Red プレーン G … VRAM の プレーン HIGH … 高速RAM SUB … サブCPUのメモリ 上記のいずれかを指定します。 省略時は、MAIN。 ・ には、メモリのアドレスを指定します。 例) read 0x3456 … メインメモリ 0x3456 をリードします。 read B 0xc000 … VRAM Blue プレーン 0xc000 をリードします read SUB 0x7ff … サブメモリ 0x7ff をリードします。 write [] メモリに1バイト、書き込みます。 ・ には、メモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 省略時は、MAIN。 ・ には、メモリのアドレスを指定します。 ・ には、書き込むデータを指定します。 例) write 0x3456 0xff … メインメモリ 0x3456 に、0xffを ライトします。 write B 0xc000 0 … VRAM Blue プレーン 0xc000 に、0を ライトします。 write SUB 0x7ff 1 … サブメモリ 0x7ff に 1 をライトします。 dump [] [] dump [] [#] メモリダンプを表示します。 ・ には、メモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 省略時は、MAIN。 ・ には、ダンプの開始アドレスを指定します ・ には、ダンプの終了アドレスを指定します。 省略時は、 + 255。 ・# には、ダンプするサイズを指定します。 省略時は、#256。 ・引数を全て省略した場合は、以前の続きが 256バイト、ダンプされます。 例) dump 0x8000 … メインメモリ 0x8000 番地から 256 バイトをダンプ dump HIGH 0xf000 0xffff … 高速RAM 0xf000 番地から 0xffff 番地までをダンプ dump EXT1 0x6000 #0x200 … 拡張 ROM No.1 の0x6000 番地から 0x200 バイトをダンプ dump … 前回指定したメモリバンクの 続きを 256 バイトダンプ dumpext [] [#] [] dumpext [] [#] [#] 拡張 RAM のダンプを表示します。 ・ には、EXT0、EXT1、EXT2、EXT3 のいずれかを指定します。 省略時は、EXT0。 ・# には、メモリカード番号を指定します。 0 〜 (-extramで指定した数-1) の範囲で指定します。 省略時は、0 ・ には、ダンプの開始アドレスを指定します ・ には、ダンプの終了アドレスを指定します。 省略時は、 + 255。 ・# には、ダンプするサイズを指定します。 省略時は、#256。 fill [] fill [] # メモリを指定の値を埋めます。 ・ には、メモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 省略時は、MAIN。 ・ には、開始アドレスを指定します ・ には、終了アドレスを指定します。 ・# には、サイズを指定します。 ・ には、埋めるデータを指定します。 例) fill 0xb600 0xfddd 0x76 … メインメモリ B600H番地〜BFFFH 番地まで、76Hで埋めます。 fill G 0xc000 #0x4000 0xff … VRAM Green プレーン を 0 で埋めます。 move [] [] move [] # [] メモリを移動させます。 ・ には、転送元のメモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 省略時は、MAIN。 ・ には、転送元の開始アドレスを指定します ・ には、転送元の終了アドレスを指定します。 ・# には、転送するサイズを指定します。 ・ には、転送先のメモリバンクを指定します。 省略時には、 と同じバンク。 ・ には、転送先のアドレスを指定します。 例) move 0x8000 0x83ff 0xa000 … メインメモリ 8000H番地〜83FFH 番地を、メインメモリ A000H番地 に転送します。 move B 0xc000 #0x4000 R 0xc000 … VRAM Blue プレーン の メモリを、VRAM Red プレーンに転送します。 search [ [[] ]] 特定の数値を検索します。 ・ には、検索する数値 (1バイト) を指定します。 ・ には、検索するメモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 省略時は、MAIN。 ・ には、検索の開始アドレスを指定します ・ には、検索の終了アドレスを指定します。 引数を省略した場合は、前回に指定した条件で検索します。 例) search 0xed RAM 0x1000 0x1fff … メインRAM 1000H番地〜1FFFH 番地内で、データが EDH に なっているアドレスを表示 します。 search 0xfd … 前回と同じ範囲で、データが FDH になって いるアドレスを表示します。 search … 前回と同じ条件で検索します。 in [] 入力ポートから、データを入力します。 ・ には、CPUの種類と指定します。 MAIN または SUB。 省略時は、MAIN。 ・ には、入力ポートの番号を指定します。 例) in 0x20 … メインCPU のポート 0x20 から入力します in SUB 0xfb … サブCPU のポート 0xfb から入力します out [] 出力ポートに、データを出力します。 ・ には、CPUの種類と指定します。 MAIN または SUB。 省略時は、MAIN。 ・ には、出力ポートの番号を指定します。 ・ には、出力するデータを指定します。 例) in 0x50 0 … メインCPU のポート 0x50 に、0 を出力 します。 in SUB 0ff 0x10 … サブCPU のポート 0xff に 0x10 を出力 します。 loadmem loadmem # ファイルの内容をメモリにロードします。 ・ には、ファイルの名前を指定します。 ・ には、ロードするメモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 ・ には、ロードの開始番地を指定します。 ・ には、ロードの終了番地を指定します。 ・# には、ロードするサイズ(バイト数)を指定します。 注) ファイルのサイズが指定サイズに満たない場合、残りのメモリ はそのままの状態になります。 例) loadmem file RAM 0 #65536 … ファイル file の内容を メインRAMにロードします。 savemem savemem # メモリの内容をファイルにセーブします。 ・ には、ファイルの名前を指定します。 ・ には、セーブするメモリバンクを指定します。 MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、 HIGH、SUB のいずれかを指定します。 ・ には、セーブの開始番地を指定します。 ・ には、セーブの終了番地を指定します。 ・# には、セーブするサイズ(バイト数)を指定します。 例) savemem file RAM 0 0x10000 … メインRAMの内容を、 ファイル file に出力します。 reset [] [] [] [] エミュレータをリセットします。 ・ には、リセットの際の BASIC モードを指定します。 V2 … V2モードでリセットします。 V1H … V1Hモードでリセットします。 V1S … V1Sモードでリセットします。 N … Nモードでリセットします。 上記のいずれかを指定します。 省略時は、モードを変更せずにリセット。 ・ には、リセットの際の CLOCK モードを指定します。 4MHZ … 8MHzモードでリセットします。 8MHZ … 4MHzモードでリセットします。 上記のいずれかを指定します。 省略時は、モードを変更せずにリセット。 ・ には、リセットの際のサウンドボートを指定します。 SD … サウンドボード を装着してリセットします。 SD2 … サウンドボードII を装着してリセットします。 上記のいずれかを指定します。 省略時は、サウンドボードを変更せずにリセット。 ・ には、リセットの際のディップスイッチ設定をしていします。 起動時の、-dipsw オプションと同じように、数値で指定 します。 省略時は、ディップスイッチを変更せずにリセット。 例) reset … リセットします。 reset V1S … V1S モードでリセットします。 reset 8MHZ … 8MHz モードでリセットします。 reset SD2 … サウンドボードIIを装着してリセットします。 reset 0x0006 … ディップスイッチを設定し、リセットします。 reg [[] [ ]] レジスタの内容の表示/変更を行ないます。 ・ には、CPUの種類と指定します。 MAIN または SUB。 省略時は、MAIN。 ・ には、レジスタの種類を指定します。 AF、BC、DE、HL、AF'、BC'、DE'、HL'、IX、IY、SP、PC、 I、R のいずれか。 ・ には、代入する値を指定します。 引数の省略時には、内容を表示します。 例) reg … レジスタの内容を表示します。 reg ALL … メイン、サブ両レジスタの内容を表示します。 reg HL 0xc000 … HL レジスタに、0xc000 をセットします。 disasm [[] [][#]] 逆アセンブルします。 ・ には、CPUの種類と指定します。 MAIN または SUB。 省略時は、MAIN。 ・ には、逆アセンブルの開始アドレスを指定します。 省略時は、前回アセンブルした最終アドレスの次の アドレス。ただし、モニターモードに入った直後は、 PC レジスタの指すアドレス。 ・# には、逆アセンブルするステップ数を指定します。 省略時は、16ステップ。 例) disasm … 現在の PC の位置、もしくは前回のdisasm の最終番地から、16ステップ逆アセンブル disasm #100 … 上記と同じ条件で、100ステップ逆 アセンブルします。 disasm SUB 0x400 … サブCPU 0x400番地から16ステップ逆 アセンブルします。 disasm # … 前回のdisasmの最終番地をクリアします。 つまり、次回 disasm 実行時は現在の PC 位置から逆アセンブルされます。 この場合だけ、例外的に # だけを指定 してください。 set [[ []]] show [] 内部変数の表示/変更を行ないます。 ・ には、変数名を指定します。 ・ には、代入する値を設定します。変更できない場合もあります。 注) 変数の内容の説明は省略します。ソースを参照ください。 redraw 画面を再描画します。 resize [] 画面サイズを変更します。 ・ には、画面サイズを指定します。 FULL、HALF、DOUBLE、FULLSCREEN、WINDOW のいずれか。 省略時には、画面サイズを、HALF → FULL → DOUBLE → HALF … と切り替えます。 例) resize … 画面サイズを切替えます resize HALF … 画面サイズを半分サイズにします。 resize FILLSCREEN … フルスクリーン表示します。 drive drive show drive empty [] drive eject [] drive set [] ドライブに設定されたイメージファイルに対し各種操作を行ないます。 には、ドライブの番号 ( 1 か 2 ) を指定します。 には、ファイル名を指定します。 には、イメージの番号 ( 1 〜 32 ) を指定します。 ・drive または drive show ディスクドライブの状態を表示します。 ドライブのアクセスランプの状態、 ドライブに入っているディスク情報が表示されます。 ・drive empty [] 指定ドライブに入っているディスクを、一時的にドライブに入って いない状態にします。 ドライブを省略した時は、全てのディスクに対して行ないます。 例) drive empty 1 … ドライブ 1: を空の状態にします。 drive empty … ドライブ 1:、2: を空の状態にします。 ・drive eject [] 指定ドライブに入っているディスクを抜きます。 ドライブを省略した時は、全てのディスクを抜きます。 例) drive eject 2 … ドライブ 2: のディスクを抜きます。 drive eject … ドライブ 1:、2: の両ディスクを抜きます。 ・drive set [] 指定ドライブにディスクがセットしてある場合は、ディスクを抜き ます。その後、指定したディスクイメージファイルをセットします。 その際、イメージの番号を指定できます。省略時は、1 です。 また、ファイル名に - (ハイフン) を与えた場合、現在ドライブに セットされているディスクイメージファイルが指定されたものと みなされます。 例) drive set 1 file_x … ドライブ 1: に file_x の1番目の イメージをセット drive set 2 file_y 3 … ドライブ 2: に file_y の3番目の イメージをセット drive set 1 - 2 … ドライブ 1: を 2番目のイメージに 変更 file show file create file protect file unprotect file format file unformat file rename イメージファイルに対し、各種操作を行ないます。 には、ファイル名を指定します。 には、イメージの番号 ( 1 〜 32 ) を指定します。 には、イメージ名 (16文字以内) を指定します。 ・file show イメージファイルの情報を表示します。 ・file create アンフォーマットディスクのイメージファイルを作成します。 既存のファイルを指定した場合は、ファイルの最後に付加されます。 ・file protect イメージファイルのプロテクトシールの設定を 「プロテクト状態」にします。 ・file unprotect イメージファイルのプロテクトシールの設定を 「アンプロテクト状態」にします。 ・file format イメージファイルに対し、N88 BASIC 標準のフォーマットを行ない ます。 ・file unformat イメージファイルを、アンフォーマット状態します。 ・file rename イメージファイルのイメージ名 (ファイル名ではない)を変更します。 イメージ名は16文字以内で、空白を含んではいけません。 (メニューモードでは、空白を含むイメージ名をつけることが可能) statesave [] ステートセーブします。 は、ステートファイル (状態を保存するファイル) の ファイル名です。省略時は、現在のデフォルトファイル名になります。 stateload [] ステートロードします。 は、ステートファイル (状態を保存するファイル) の ファイル名です。省略時は、現在のデフォルトファイル名になります。 snapshot スクリーンスナップショットを保存します。 保存するファイルのベース名、画像フォーマット、ファイル保存後の コマンド実行などは、メニューモードでの設定に従います。 loadfont フォントデータをファイルからロードします。 ・ には、ファイル名を指定します。 ・ には、データのフォーマットを 0〜2 で指定します。 0 は ROMイメージファイルのフォーマットです。 1 は X標準ツール bitmap のフォーマットです。 2 も 1 と同じです。 ・ には、フォントの種類 0〜3 で指定します。 0 は PCG有効時のフォントです。 1 は 標準のフォントです。 2 は 第2フォントです。 3 は 第3フォントです。 savefont フォントデータをファイルにセーブします。 ・ には、ファイル名を指定します。 ・ には、データのフォーマットを 0〜2 で指定します。 0 は ROMイメージファイルのフォーマットです。 1 は X標準ツール bitmap のフォーマットです。 2 も 1 と同じです。 ・ には、フォントの種類 0〜3 で指定します。 0 は PCG有効時のフォントです。 1 は 標準のフォントです。 2 は 第2フォントです。 3 は 第3フォントです。 fbreak [] [] [#] fbreak CLEAR [#] fbreak FDC 動作に対し、ブレークポイントを設定します。 ・ には、READ、WRITE、DIAG のいずれかを指定します。 CLEAR を指定した場合は そのブレークポイントを解除します。 ・ には、対象となるドライブ (1〜2) を指定します。 ・ には、対象となるトラック (0〜) を指定します。 ・ には、対象となるセクタ (1〜) を指定します。 省略時は、全セクタが対象となります。 ・# には、ブレークポイントを設定する番号を指定します。 #1 〜 #10 の、計10個が使用できます。 省略時は、#1。 ・引数を全て省略した場合は、現在のブレークポイントの設定状況を 表示します。 textscr TEXT VRAM の内容を標準出力に表示します。 loadbas [] BASIC のリストをファイルから入力します。 ・ には、ファイル名を指定します。 ・ には、 ASCII か BINARY を指定します。 省略時は、ASCII 。 savebas [ []] BASIC のリストをファイルに出力します。 ・ には、ファイル名を指定します。 省略時は、標準出力。 ・ には、 ASCII か BINARY を指定します。 省略時は、ASCII 。 tapeload [] ロード用テープイメージを設定します。 ・ には、ファイル名を指定します。 ファイル名を "-" とすると、ファイルをクローズします。 ファイル名を省略すると、現在のファイル名を表示します。 tapesave [] セーブ用テープイメージを設定します。 ・ には、ファイル名を指定します。 ファイル名を "-" とすると、ファイルをクローズします。 ファイル名を省略すると、現在のファイル名を表示します。 printer [] プリントアウトイメージを設定します。 ・ には、ファイル名を指定します。 ファイル名を "-" とすると、ファイルをクローズします。 ファイル名を省略すると、現在のファイル名を表示します。 serialin [] シリアル入力用イメージを設定します。 ・ には、ファイル名を指定します。 ファイル名を "-" とすると、ファイルをクローズします。 ファイル名を省略すると、現在のファイル名を表示します。 serialout [] シリアル出力用イメージを設定します。 ・ には、ファイル名を指定します。 ファイル名を "-" とすると、ファイルをクローズします。 ファイル名を省略すると、現在のファイル名を表示します。 コマンドの省略形 幾つかのコマンドには、省略形が用意されています。 ・? … help と同じ ・m … menu と同じ ・q … quit と同じ ・g … go と同じ ・t … trace と同じ ・s … step と同じ ・S … step ALL と同じ ・b … break と同じ 注意) モニターモードは QUASI88 のデバッグ用に作成されたものなので、 十分なバグチェックが行なわれておりません。 特に、作者が滅多に 使わないコマンドは、誤動作のおそれ大です。 ステートセーブ 任意の時点のエミュレート状態をステートファイルに書き出し(ステート セーブ)、好きなときにこれを読み出してその時点のエミュレート状態を 復元(ステートロード)することが出来ます。 ステートセーブ・ステートロードは、メニューモードにて実行できます。 また、コマンドラインから -resume、 -resumefile オプションを指定する ことで、起動時にステートロードすることもできます。 ステートファイルのファイル名は、ファイルベース名 + ".sta" になります。 なお、ファイルベース名は 『quasi88』 または、ディスクイメージファイル を開いている場合は、そのファイルのファイルベース名になります。 UNIX の場合) ステートファイル保存先ディレクトリは、 ~/.quasi88/state/ です。 環境変数 QUASI88_STATE_DIR が設定されている場合は、そのディレクトリ になります。 Windows の場合) ステートファイル保存先ディレクトリは、 %QUASI88_STATE_DIR% です。 ( QUASI88_STATE_DIR は環境変数です。未定義の場合は後述 ) Classic Mac OS の場合) ステートファイルが保存されるフォルダは、カレントフォルダの "STATE" サブフォルダです。 スクリーンスナップショット メニューモードの『その他』タブで、スクリーンスナップショットを保存 することが可能です。画像フォーマットは BMP、PPM、RAW のいずれかです。 保存されるファイル名は、ファイルベース名 + 4桁の連番 + サフィックス ( ".bmp"、".ppm" ) になります。なお、ファイルベース名は 『save』 または、ディスクイメージファイルを開いている場合は、そのファイルの ファイルベース名になります。 -f6 〜 -f10 オプションを使えば、ファンクションキーでスクリーンスナップ ショットが保存できるようになります。例えば、-f10 SNAPSHOT とすれば、 F10 キーでスナップショットが保存されます。 UNIX の場合) スクリーンショット保存先ディレクトリは、カレントディレクトリです。 環境変数 QUASI88_SNAP_DIR が設定されている場合は、そのディレクトリに なります。 スクリーンスナップショットを保存した直後に、任意のコマンドを自動で 実行することが可能です。 実行するコマンドはメニューモードにて設定しますが、この際、%a がファイル 名に、%b がファイル名からサフィックスを削除したものに置き換わります。 %文字 そのものは、%% としてください。 コマンドの設定例) pnmscale 0.5 %a | pnmtopng > %b.png 上の設定例では、スナップショットの保存後に、その画像を50%に 縮小した上で PNG 形式に変換します。 スナップショットの保存に失敗した場合は、コマンドは実行されません。 なお、コマンドは環境変数 QUASI88_SSS_CMD でも指定することが可能です。 注意) コンパイル時にコマンド実行不可を指定した場合、コマンド実行は 不可能になります。 Windows の場合) スクリーンショット保存先ディレクトリは、 %QUASI88_SNAP_DIR% です。 ( QUASI88_SNAP_DIR は環境変数です。未定義の場合は後述 ) Classic Mac OS の場合) スクリーンショットが保存されるフォルダは、カレントフォルダの "SNAP" サブフォルダです。 サウンド出力保存 メニューモードの『その他』タブで、サウンドの出力をファイルに保存する ことが可能です。出力フォーマットは WAV形式です。 保存されるファイル名、および保存先ディレクトリは、サフィックスが ".wav" であることを除けば、スクリーンスナップショットと同じです。 サウンドの使用がコンパイル時に有効になっている場合のみ有効です。 設定ファイルの書式 環境設定ファイル/個別設定ファイルの書式は、以下の通りです。 ・一行は、255文字以下でなくてはいけません ・ # 以降は、コメントとみなされます。 ・起動時のオプションと同じ書式で、設定内容を記述します。 ただし、1行に複数の設定をしたり、複数の行にまたがって設定したりは できません。 良い例) -v2 -frameskip 6 悪い例) -v1h -4mhz … 1行に複数の設定がある -dipsw 0x000a … 複数行にまたがって設定している ・設定内容は、スペースかタブで区切ります。 ・設定出来るのは、起動時のオプションと同じ内容のみです。 ただし、ディスクイメージファイルは記述できません。 ディスクイメージファイルを指定したい場合は、オプション -diskimage を使用してください。 ・設定内容にスペースやタブ、#、"、\ を含める場合は、その文字の直前に \ 文字を置きます。( \# のようにします。\文字 そのものは、\\ です) ・設定内容を " で囲むと、その囲まれた中でスペースやタブ、#、\ が 使えます。" で囲まれた中に、 " を含める場合は、"" としてください。 環境設定ファイルが存在する場合、このファイルの内容にそって QUASI88 の 設定がされたあと、コマンドラインのオプションを処理します。 つまり、環境設定ファイルと、コマンドラインとで同じオプションを指定して いた場合、コマンドラインのオプションの方が優先されることになります。 なお、起動時にオプションで -noconfig を指定した場合、環境設定ファイル は読み込まれません。 環境設定ファイルは、メニューモードで「設定保存」すると、一部が書き 換えられます。 キー設定ファイルの書式 (まだ書いていません) ディレクトリ QUASI88にて使用するディレクトリは以下のようになっており、いくつかは 環境変数や、オプションにて設定可能です。(オプションの設定が優先) 歴史的な事情(?)により、ややこしいことになっています。なんとかせねば。 UNIX の場合) 環境変数が HOME しか定義されていない場合 環境設定ファイル $HOME/.quasi88/quasi88.rc キー設定ファイル $HOME/.quasi88/keyconf.rc 個別設定ファイルのディレクトリ $HOME/.quasi88/rc/ ROM用ディレクトリ コンパイル時の設定による DISK用ディレクトリ コンパイル時の設定による TAPE用ディレクトリ コンパイル時の設定による スナップショット保存先ディレクトリ カレントディレクトリ ステートファイル保存先ディレクトリ $HOME/.quasi88/state/ 環境変数がいろいろと定義されている場合 ROM用ディレクトリ $QUASI88_ROM_DIR DISK用ディレクトリ $QUASI88_DISK_DIR TAPE用ディレクトリ $QUASI88_TAPE_DIR スナップショット保存先ディレクトリ $QUASI88_SNAP_DIR ステートファイル保存先ディレクトリ $QUASI88_STATE_DIR Windows の場合) 環境変数がなにも定義されていない場合 環境設定ファイル QUASI88.INI キー設定ファイル KEYCONF.INI 個別設定ファイルのディレクトリ INI ディレクトリ ROM用ディレクトリ ROM ディレクトリ DISK用ディレクトリ DISK ディレクトリ TAPE用ディレクトリ TAPE ディレクトリ スナップショット保存先ディレクトリ SNAP ディレクリト ステートファイル保存先ディレクトリ STATE ディレクトリ 環境変数 QUASI88_HOME が定義されていない場合 環境設定ファイル %QUASI88_HOME%\QUASI88.INI キー設定ファイル %QUASI88_HOME%\KEYCONF.INI 個別設定ファイルのディレクトリ %QUASI88_HOME%\INI ROM用ディレクトリ %QUASI88_HOME%\ROM DISK用ディレクトリ %QUASI88_HOME%\DISK TAPE用ディレクトリ %QUASI88_HOME%\TAPE スナップショット保存先ディレクトリ %QUASI88_HOME%\SNAP ステートファイル保存先ディレクトリ %QUASI88_HOME%\STATE その他の環境変数が定義されている場合 個別設定ファイルのディレクトリ %QUASI88_INI_DIR% ROM用ディレクトリ %QUASI88_ROM_DIR% DISK用ディレクトリ %QUASI88_DISK_DIR% TAPE用ディレクトリ %QUASI88_TAPE_DIR% スナップショット保存先ディレクトリ %QUASI88_SNAP_DIR% ステートファイル保存先ディレクトリ %QUASI88_STATE_DIR% Classic Mac OS の場合) 環境設定ファイル QUASI88.prefs キー設定ファイル KEYCONF.prefs 個別設定ファイルのディレクトリ カレントフォルダ ROM用ディレクトリ ROM フォルダ DISK用ディレクトリ DISK フォルダ TAPE用ディレクトリ TAPE フォルダ スナップショット保存先ディレクトリ SNAP フォルダ ステートファイル保存先ディレクトリ STATE フォルダ 制限等 現時点でエミュレートされていない部分を以下に挙げます。 ・割り込みの正確なタイミング ・サウンドボードIIのADPCM割り込みの一部 ・CRTC 関連の大部分 ・DMAC 関連の大部分 ・FDC のいくつかのコマンド ・2DD/2HD のディスク操作の大部分 ・カレンダクロックの時刻取得以外の機能 ・正確なウエイト ・その他、いろいろ エミュレートの完成度 そこそこ動きます。^_^; バグ キー入力の実装に問題があり、キーが押されっぱなしになることが あります。メニューモードに入る事で、この状態は解除できます。 ほかにもバグがあちこちに……… 今後の予定 ・高速化 ・エミュレート性能の向上 ・その他、いろいろ 作者 福永省三 http://www.eonet.ne.jp/~showtime/quasi88/ 著作権/免責 QUASI88 (サウンド出力処理部を除く)はフリーソフトウェアであり、 著作権は作者が保有しています。このソフトは無保証であり、このソフトを 使用した事によるいかなる損害も作者は一切の責任を負いません。 ライセンスに関しては、修正BSDライセンスに準ずるものとします。 QUASI88 のサウンド出力処理部は、MAME および、XMAME のソースコードを 使用しています。このソースは、各著作者が著作権を有します。 ライセンスに関しては、MAME および、XMAME のドキュメントを参照下さい。 QUASI88 のサウンド出力処理部のうち、FM音源ジェネレータには fmgen の ソースコードを使用しています。このソースは cisc氏が著作権を有します。 ライセンスに関しては、fmgen のドキュメントを参照ください。 謝辞 QUASI88 作成時に参考としたソースの作者の方々: fMSX の作者である Marat Fayzullin氏 QUASI88 のサウンド出力対応に、ソースを使用させて頂いた方々: MAME の作者である Nicola Salmoria氏 と MAME projectの方々 XMAME の作者である XMAME projectの方々 PC6001V の作者である ゆみたろ氏 fmgen の作者である cisc氏 QUASI88 へのパッチの提供や助言を下さった方々: 舟橋啓さん 笠松健一さん 引地さん floiさん gatoさん peachさん apaslothyさん その他、PC88エミュレータ用の各種ツールを作成/公開されている方々、 QUASI88 について紹介してくださっているサイトの方々、 そして QUASI88 の作成に協力、助言をくださったすべての皆様に、 心より感謝いたします。