QUASI88 マニュアル

名称
	QUASI88

	このソフトは、UNIX + X Window System の環境で動作する、
	PC-8801 のエミュレータです。

書式
	quasi88 [-option] [image-file [image-No] [image-file [imahe-No]]]

解説
	  QUASI88 は引数のうち、- で始まるものをオプションとみなします。
	- で始まらないものを、イメージファイルのファイル名とみなします。

	  最初に出てきたイメージファイルは、ドライブ 1: に、次に出てきた
	イメージファイルは ドライブ 2: にセットされます。

	  イメージファイルが、複数のイメージを含んでいる場合、ファイル名の
	直後にイメージの番号をつけて、イメージを指定出来ます。
	イメージ番号は先頭から、1、2、3 ………となります。省略時は、1 が
	指定されたものとみなされます。

	  イメージファイルが複数のイメージを含んでいる場合で、ファイルを
	ひとつしか指定しなかった時、イメージ番号を2個続けて指定すること
	により、ドライブ 1: 、2: に同時にイメージが指定できます。
	また、イメージ番号を全く指定しなかった時は、イメージ番号 1 が、
	ドライブ 1: に、イメージ番号 2 がドライブ 2: にセットされます。

	  ドライブは、1: と 2: の 2台しかないので、3個以上のイメージを指定
	した場合は、エラーとなります。
	また、イメージが指定されなかったドライブには、ディスクが入っていな
	いとみなされます。

          なお、イメージの数は、1個のファイル内に最大32個までです。
	(この個数は、コンパイル時に変更可能です)。この個数以上のイメージを
	含むファイルの場合、32個目以降のイメージを選択することが出来ません。
	また、ファイルに壊れたイメージが含まれている場合も、その壊れた
	イメージ以降のイメージを選択することが出来ません。
	  なお、これらの状態を検知した場合、後述する -verbose オプションが
	適切に設定されていれば、画面に警告メッセージが表示されます。


	例)	soft_a、soft_b は単一イメージのファイル、
		soft_x、soft_y は複数イメージを持つファイルとします。

	  % quasi88 soft_a	       → ドライブ 1: = soft_a
				          ドライブ 2: = 空

	  % quasi88 soft_a soft_b      → ドライブ 1: = soft_a
				          ドライブ 2: = soft_b

	  % quasi88 soft_x	       → ドライブ 1: = soft_x  1番目のイメージ
				          ドライブ 2: = soft_x  2番目のイメージ

	  % quasi88 soft_x 3	       → ドライブ 1: = soft_x  3番目のイメージ
				          ドライブ 2: = 空

	  % quasi88 soft_x 2 4	       → ドライブ 1: = soft_x  2番目のイメージ
				          ドライブ 2: = soft_x  4番目のイメージ

	  % quasi88 soft_x soft_y      → ドライブ 1: = soft_x  1番目のイメージ
				          ドライブ 2: = soft_y  1番目のイメージ

	  % quasi88 soft_x 3 soft_y    → ドライブ 1: = soft_x  3番目のイメージ
				          ドライブ 2: = soft_y  1番目のイメージ

	  % quasi88 soft_x soft_y 3    → ドライブ 1: = soft_x  1番目のイメージ
				          ドライブ 2: = soft_y  3番目のイメージ

	  % quasi88 soft_x 4 soft_y 2  → ドライブ 1: = soft_x  4番目のイメージ
				          ドライブ 2: = soft_y  2番目のイメージ

オプション
	  QUASI88 の起動時に以下のオプションを指定できます。
	オプション省略時の設定は、コンパイル時に設定できますので、以下の説明
	に出てくる省略時の説明は、あくまで標準の場合と考えて下さい。実際の
	省略時の設定は -help オプションをつけてQUASI88を起動した時に表示
	されます。
	  下記で、同一項目にまとめて説明しているオプション群については、
	複数指定した場合は、最後に指定したものが有効になります。

	<<PC-8801起動時の設定に関するもの>>

	-n		N-BASIC モードで起動します
	-v1s		V1S モードで起動します
	-v1h		V1H モードで起動します
	-v2		V2 モードで起動します
		省略時は、ROM のバージョンにより以下のようになります。
			PC-8801/mkII      … -v1s
			PC-8801mkIISR以降 … -v2

	-dipsw <x>	起動時のディップスイッチを設定します
		x は、0〜65535 または、0x0000〜0xffff の値を指定します。
		値の意味は N88-BASIC の NEW ON コマンドの引数と同じです。
		省略時は、0x391a です。

	-baudrate <bps>	起動時のボーレートを設定します
		bps は、75、150、300、600、1200、2400、4800、9600、19200 の
		いずれかです。
		省略時は、300 です。

	-romboot	ROM BASIC から起動します
	-diskboot	DISK から起動します
		省略時は、ディスクイメージファイルが指定されている場合は、
		-diskboot、ファイルが指定されていない時は、-romboot です。

	-4mhz		CPU クロック設定 を4MHz にして起動します
	-8mhz		CPU クロック設定 を8MHz にして起動します
		省略時は、-4mhz です。
		なお、-4mhz を指定した場合は、-clock 3.9936 が暗黙のうちに
		指定されます。同様に -8mhz を指定した場合は、-clock 7.9872
		が暗黙のうちに指定されます。

	-sd		サウンドボード を実装します
	-sd2		サウンドボードII を実装します
		省略時は、-sd です。
		サウンドボード II の、ADPCM関連の割り込みはサポートされて
		おりません。これらの割り込みを監視するソフトは正常に動作
		しないでしょう。
		注意) PC-8801/mkII の ROM を使用している場合 (ROM バージョン
		      が 1.0〜1.3の場合) は、-sd オプションは無効になります。
		      サウンド割り込みをエミュレートしたい場合は、-sd2 を
		      指定してください。
		注意) -sd2 オプションは十分なデバッグがされていません。
		注意) QUASI88 は YM2203 のサウンドしかサポートしていません。
		      -sd2 オプションを指定しても、サウンドボードII相当の
		      サウンドは出力されません。

	-extram	<n>	拡張 RAM ボード を n 枚 実装します
	-noextram	拡張 RAM ボード を実装しません
		拡張RAMボードの実装の有無、あるいは 実装枚数を指定します。
		拡張RAMボードは、128KB 単位で実装可能で、最大で 8枚 (1024KB)
		まで実装可能です。
		省略時は、-noextram です。
		なお、-extram 0 と -noextram は等価です。
		注意) このオプションは十分なデバッグがされていません。

	-jisho		辞書ROM を実装します
	-nojisho	辞書ROM を実装しません
		省略時は、-nojisho です。
		注意) このオプションは全くデバッグがされていません。
		      動作確認をされた方は、作者まで是非連絡ください。

	-printer <file>	プリンタ出力のファイルを設定します
		QUASI88 で、プリンタポートに出力されたデータを書き出すファイル
		を指定します。
		省略時は、どこにも書き出しません。
		注意) QUASI88 では、プリンタ出力はエミュレートしていません。

	-serialout <file>	シリアル出力のファイルを設定します
		QUASI88 で、シリアルポートに出力されたデータを書き出すファイル
		を指定します。
		省略時は、どこにも書き出しません。
		注意) QUASI88 では、シリアル出力はエミュレートしていません。

	-mouse		バスマウスを装着します
	-nomouse	バスマウスを装着しません
	-joymouse	バスマウスを疑似ジョイスティックモードで装着します
		X のマウスの動きをそのまま QUASI88 に伝えます。疑似ジョイ
		スティックモードの場合は、マウスの移動方向のみを QUASI88 に
		伝えます。
		省略時は、-nomouse です。

	-24k		モニター周波数 24kHz をエミュレートします
	-15k		モニター周波数 15kHz をエミュレートします
		省略時は、-24k です。
		注意) このオプションは、I/Oポート 40H の入力値に使用します。
		      どちらのオプションを指定しても、高解像度表示 (400ライン
		      表示) は可能です。

	-analog		アナログパレットをエミュレートします
	-digital	デジタルパレットをエミュレートします
		省略時は、-analog です。

	<<グラフィックに関するもの>>

	-frameskip <n>	画面描画の間隔を指定します
		PC8801 では 1秒間に60回、画面描画が行なわれますが、この
		オプションで描画の回数を間引くことができます。
		n= 1 の時は、秒間 60フレーム、 n = 2 の時は、秒間 30フレーム、
		n= 6 の時は、秒間 10フレーム、 n= 15 の時は、秒間  4フレーム
		n=60 の時は、秒間  1フレーム、………というふうになります。
		省略時は、n=12 です。(秒間 5 フレーム相当です)

	-full		画面サイズを標準 (640x400ドット) にします。
	-half		画面サイズを半分 (320x200ドット) にします。
	-double		画面サイズを倍  (1280x800ドット) にします。
		画面サイズを半分にすると、横方向の奇数ドットが間引かれます。
		画面サイズを倍にすると、縦横方向のドットを倍に引き延ばします。
		省略時は、-full です。

	-cmap <n>	カラーマップの種類を設定します
		n=0 の時、起動時に共有カラーセルを確保します。
		n=1 の時、起動時にプライベートカラーセルを確保します。
		n=2 の時、描画のたびに、カラーセルを確保します。
		省略時は、n=0 を試し、確保に失敗したら、n=1 を試し、それでも
		確保に失敗したら n=2 となります。

	-width <x>
	-height <y>	画面のサイズを指定 ( <x> * <y> ドット )します。
		-half/-full/-doubleで指定した画面サイズよりも大きな値を
		指定することで、ボーダー部分を確保できます。
		なお、<x>は8の倍数、<y>は2の倍数を指定して下さい。
		(勝手に補正されます)

	-shm		MIT-SHM を使用します
	-noshm		MIT-SHM を使用しません
		QUASI88の画面表示に、MIT-SHM を使用するかしないかを指定します。
		MIT-SHM は、コンパイル時に有効になっていて、かつ、システムが
		サポートしている場合にのみ、使用可能です。
		省略時は、-shm です。
		なお、コンパイル時に MIT-SHM が有効になっていない場合は、
		これらのオプションは指定できません。
		また、MIT-SHM の使用に失敗した場合は、自動的に -noshm 扱いと
		なります。

	-dga		XFree86-DGA を使用します
	-nodga		XFree86-DGA を使用しません
		DGA は、コンパイル時に有効になっていて、かつ、システムが
		サポートしている場合にのみ、使用可能です。
		省略時は、-nodga です。
		-dga オプションの使用は root権限が必要な上に、十分な動作
		検証がされていないので、お勧めできません。どうしても
		このオプションを使用したい場合は、そのことを考慮ください。

	-hide_mouse	X のマウスカーソルを表示しません
		QUASI88の画面内において、X のマウスカーソルを表示しなくします。

	-grab_mouse	マウスポインタをグラブします
		QUASI88の画面内に、X のマウスを閉じ込めます。
		役に立つオプションなのかどうか、作者は知りません。

	<<サウンドに関するもの>>
	サウンド関連のオプションは、サウンドがコンパイル時に有効になっていて、
	かつ、システムがサポートしている場合にのみ使用可能です。

	-sound		サウンドを出力します
	-nosound	サウンドを出力しません
		省略時は、-sound です。

	-vol <level>	ボリュームをデシベルで設定します。
		<level> は、-32(音量小)〜0(音量大) の値を指定します。
		実際の音量は、-fmvol、-psgvol、-beepvol にも影響されます。
		省略時は、-6 です。

	-fmvol <level>		FM 音源の音出力レベルを設定します
		<level> は、0〜100 [%] の値を設定します。
		省略時は、-fmvol 15 です。

	-psgvol <level>		PSG音源の音出力レベルを設定します
		<level> は、0〜100 [%] の値を設定します。
		省略時は、-psgvol 10 です。

	-beepvol <level>	BEEP音の出力レベルを設定します
		<level> は、0〜100 [%] の値を設定します。
		省略時は、-beepvol 10 です。

	-samplefreq <rate>	サンプリング再生周波数を指定します。
		rate は、Hz で 8000〜480000 の値を指定します。
		システムによっては指定通りの設定とはならない場合があります。
		省略時は、22050 です。

	-8bit		サウンド出力を 8bit に設定します
	-16bit		サウンド出力を16bit に設定します
		システムによっては指定通りの設定とはならない場合があります。
		省略時は、-8bit です。

	-mono		サウンド出力をモノラルに設定します
	-stereo		サウンド出力をステレオに設定します
		システムによっては指定通りの設定とはならない場合があります。
		省略時は、-mono です。

	-fragsize <size>	サウンドの Fragments の サイズを設定します
		<size> には、2の巾乗 ( 512,1024,2048など )でサイズを指定
		してください。
		省略時は、512 です。

	-numfrags <num>		サウンドの Fragments の 数を指定します
		省略時は、5 です。
		※ -fragsize、-numfrags は FreeBSD/Linux のサウンドシステム
		   に対し有効です。その他のOSでは、単に内部ワークのバッファ
		   サイズの指定となります。

	-audiodevice <dev>	オーディオデバイスを指定します
		省略時は、/dev/dsp です。
		※ -audiodevice は、 FreeBSD/Linux のサウンドシステムに対して
		   有効です。

	<<その他の設定>>

	-compatrom <file>	P88SR.EXE (PC8801mk-2SR emulator) のROM
				イメージファイルを使用します

	-setver <n>	ROMイメージのバージョンを強制的に変更します
		n には、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

	-tenkey		フルキーの 0〜9 をテンキーの 0〜9 に見立てます

	-cursor		カーソルキーをテンキーの 2,4,6,8 に割り当てます
			また、[\],[右 Shift] も、7,9 に割り当てます

	-f6 <FUNCTION>	ファンクションキー F6 に、機能<FUNCTION>を割り当てます
	-f7 <FUNCTION>	ファンクションキー F7 に、機能<FUNCTION>を割り当てます
	-f9 <FUNCTION>	ファンクションキー F8 に、機能<FUNCTION>を割り当てます
	-f9 <FUNCTION>	ファンクションキー F9 に、機能<FUNCTION>を割り当てます
	-f10 <FUNCTION>	ファンクションキーF10 に、機能<FUNCTION>を割り当てます
		FUNCTION には、以下の文字列を指定します。

		FRATE-UP	オプション -frameskip n の n の値を大きくし
				ます。(1→2→3→4→5→6→10→12→15→30→60)
		FRATE-DOWN	オプション -frameskip n の n の値を小さくし
				ます。(60→30→15→12→10→6→5→4→3→2→1)
		VOLUME-UP	ボリュームを上げます (サウンド有効時のみ)
		VOLUME-DOWN	ボリュームを下げます (サウンド有効時のみ)
		PAUSE		一時停止します ( ESCキーを押せば解除 )
		RESIZE		画面サイズを切替えます(HALF→FULL→DOUBLE→)
		NOWAIT		ウエイトの有無を切替えます (-nowait)
		SPEED-UP	ウエイトの周期を5Hzずつ上げます
		SPEED-DOWN	ウエイトの周期を5Hzずつ下げます
		MOUSE-HIDE	マウスの表示／非表示を切替えます (-hide_mouse)
		DGA		DGA/X11 の切替え (DGA有効時のみ)
		IMAGE-NEXT1	ドライブ 1: に設定されているイメージファイルの
				イメージを、次のイメージに変更します。
		IMAGE-PREV1	ドライブ 1: に設定されているイメージファイルの
				イメージを、前のイメージに変更します。
		IMAGE-NEXT2	ドライブ 2: に設定されているイメージファイルの
				イメージを、次のイメージに変更します。
		IMAGE-PREV2	ドライブ 2: に設定されているイメージファイルの
				イメージを、前のイメージに変更します。
		KANA		カナキーに割り当てます
		ROMAJI		カナキー（ローマ字入力）に割り当てます
		CAPS		CAPSキーに割り当てます
		KETTEI		決定キーに割り当てます
		HENKAN		変換キーに割り当てます
		ZENKAKU		全角キーに割り当てます
		PC		PCキーに割り当てます

	-menukey	ファンクションキー F6〜F10 を、QUASI88 の設定などの
			特殊なキーに割り当てます。
		詳細は、下記の キー操作 の項目を参照下さい。

	-kanjikey	ファンクションキー F6〜F10 を、PC-8801FH/MH 以降で
			拡張された漢字変換などのキーに割り当てます。
		詳細は、下記の キー操作 の項目を参照下さい。

	-subload <num>	サブCPU処理時の、余計な処理の負荷を下げます。
		num は負荷の度合で、0 以上の値を指定します。
		1 で最大負荷、数値が大きくなるにつれて、負荷が減ります。
		また、0 を指定した場合は、負荷は無しになります。
		負荷を減らすと、サウンドが途切れにくいなどのメリットがあり
		ますが、FDD情報が更新されないなどのささいな不具合が出ます。
		なお、-cpu 0 ないし -cpu 1 オプション指定時のみ、有効です。
		省略時は、num=6 です。

	<<エミュレートに関するもの>>

	-cpu <n>	CPU の切替えタイミングを設定します
		PC-8801 は、通常のCPU(以下、メインCPU)の他に、FDC制御専用の
		CPU(以下、サブCPU)を持っています。QUASI88 は、通常はメイン
		CPUのみをエミュレートし、必要な時のみ、サブCPUをエミュレート
		させることにより、負荷を軽減させています。

		n=0 の時、PIO のステータスフラグの読み込みの度に、
			  メインCPUとサブCPUの処理を切替えます。
		n=1 の時、メインCPUがPIOをアクセスした時点から、255ステップ間
			  メインCPUとサブCPUを交互に処理します。
		n=2 の時、メインCPUとサブCPUの処理は交互に行なわれます。
		n=3 の時、メインCPUとサブCPUの処理は交互に行なわれます。
			  ただし、連続して PIOから読み書きをした場合、一定
			  期間、ウエイトを入れます。

		通常は、n=0 で大抵のソフトは動くはずです。これで動かない時は、
		n=1 に、それでも動かなければ、n=2、n=3 で試してみて下さい。
		なお、処理速度は、n=0 が一番早いです。

		省略時は、n=0 です。

	-clock <mhz>		CPUのクロックを設定します
		Z80 CPU のクロック周波数を 0.1 〜 100.0 の間の値 (浮動小数値)
		で設定します。
		省略時は、-clock 3.9936 です。
		注意) -4mhz が指定されている場合は、-clock 3.9936 が、
		      -8mhz が指定されている場合は、-clock 7.9872 が暗黙の
		      うちに指定されます。
		注意) -cpu 2 および -cpu 3 指定時は、サブCPUも、このクロック
		      周波数になってしまいます。

	-vsync <hz>		VSYNC の周期を設定します
		VSYNC 割り込みの生成周期を 10 〜 240 の範囲で設定します。
		省略時は、-vsync 60 です。

	-soundclock <mhz>	サウンドチップのクロックを設定します。
		サウンド割込生成の基準となるサウンドチップのクロック周波数を
		0.1 〜 100.0 の間の値 (浮動小数値) で設定します。
		( 一般には、値を大きくすると音楽のテンポが上がります。)
		省略時は、-clock と同じく、3.9936 です。

	-waitfreq <hz>		ウエイトの同期合わせの周期を設定します
		QUASI88 の処理時間を実時間に合わせる際に、その同期をとる
		時間間隔を設定します。
		hz は、その周期で 10〜240 の値を指定します。
		通常は、-vsync と同じ値か、ウエイト同期の遅れを考慮して、若干
		大きめ (数％程度大きめ) の値を指定しておけば良いでしょう。
		省略時は、-waitfreq 60 です。

	-nowait		ウエイトなくします
		QUASI88 の処理時間と、実時間は同期しません。つまり、この
		オプションを指定すると、-waitfreq は意味をもちません。

	-load <num>	メインCPUの処理にウエイトをかけます
		num はウエイト値で、0 以上の値を指定します。
		1 で最大ウエイト、数値が大きくなるにつれて、ウエイトは少なく
		なります。6500程度で、実質ノーウエイトとなります。
		また、0 を指定した場合は、ウエイトなしになります。
		なお、ウエイトは、-cpu 0 および -cpu 1 の状態にのみ、有効で、
		-cpu 2 および -cpu 3 では、つねに最大ウエイトになります。
		省略時は、-wait 0 です。
		注意) このオプションは、今後無くなるかもしれません。
		注意) このオプションは、以前は -wait という名前でした。

	<<システムに関するもの>>

	-help		ヘルプを表示して、QUASI88を終了します
		各オプションの簡単な説明と、省略時の設定が表示されます。

	-verbose <n>	冗長レベルを設定します
		デバッグ用のメッセージの表示を設定/抑制します。
			  1 … 起動プロセスのメッセージを表示します。
			  2 … 未定義の Z80 のコードが見つかると表示します。
			  4 … 未定義の I/O ポートのアクセスがあると表示します
			  8 … PIO の不正使用があると表示します
			 16 … FDC の処理中にエラーがあると表示します
			 32 … ウエイト計測中にエラーがあると表示します
			128 … サウンド処理関連のメッセージを表示します
		n には、上記の数字の合計を設定します。
		n=0 の時は何も表示されず、n=255 の時はやたらと表示が増えます。
		省略時は、n=0 です。

	-logo		起動時にタイトルロゴを表示します
	-nologo		起動時にタイトルロゴを表示しません
		QUASI88起動時の、画面中央のタイトルロゴ表示を設定/抑制します。
		省略時は、-logo です。

	-english	メニューモードを英語表記にします。
		このオプションをつけると、メニューモードの表記がすべて英語
		(っぽい表記。誰か正確に翻訳しください。) になります。
		省略時は、漢字ROMが存在する場合は日本語表記、存在しない場合は
		英語表記になります。

	-focus		フォーカスウインドウである時のみ、処理を続行する。
		このオプションをつけると、QUASI88のウインドウがフォーカス
		ウインドであるときのみエミュレータを動かします。フォーカス
		を失っている間は、エミュレータは一時停止します。

	-menu		メニューモードで起動します

	-monitor	モニターモードで起動します
		このオプションを指定すると、暗黙のうちに -debugが指定されます。

	-debug		モニターモードを有効にします。
		このオプションを指定しないと、モニターモードへの移行ができま
		せん。

関連ファイル
	  QUASI88 は起動時に、環境変数 QUASI88_ROM_DIR に設定された
	ディレクトリから、ROMイメージファイルを読み込みます。
	 (この環境変数が設定されていない場合は、コンパイル時に指定した
	  ディレクトリから読み込みます。)

	  ファイル名は、以下のようになっています。

		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 (8KB)
		N88KNJ1.ROM	… 漢字ROM第1水準 (128KB)
		N88KNJ2.ROM	… 漢字ROM第2水準 (128KB)
		N88JISHO.ROM	… 辞書ROM (512KB)
		FONT.ROM	… フォントイメージ 

	これらのファイルがない場合、起動時にワーニングメッセージが表示され
	ます。(辞書ROMは、-jisho オプションを指定した時のみ、読み込まれます)

	FONT.ROM が無い場合、N88KNJ1.ROM があれば、その漢字ROMイメージを
	もとにフォントイメージを内部で作成し、それを使用します。
	N88KNJ1.ROM がなければ、QUASI88 に内蔵されているフォントを使用します。

	  -compatrom オプションが指定されている場合、P88SR.EXE のROMイメージ
	ファイルからROMイメージを読み出します。なお、この場合も
	N88KNJ1.ROM、N88KNJ2.ROM、N88JISHO.ROM、FONT.ROM の4つのROMイメージ
	ファイルは上記のディレクトリから読み込まれます。


	  起動時に、ディスクイメージファイルが指定されていた場合、以下の手順
	で、ファイルを開きます。
	  環境変数 QUASI88_DISK_DIR が設定されていてば、そのディレクトリで、
	ファイルを検索します (設定されていない場合は、コンパイル時に指定した
	ディレクトリで検索) 。そこに、ファイルが見つからなければ、カンレント
	ディレクトリで検索します。
	  ただし、ファイル名が、絶対パスや相対パスで指定されている場合
	(つまりファイル名にスラッシュ '/' が含まれている場合) は、環境変数
	QUASI88_DISK_DIR は無視されます。

		例) % quasi88 soft_a

			${QUASI88_DISK_DIR}/soft_a を開きます。 ファイルが
			なければ、カレントディレクトリの soft_a を開きます。

		    % quasi88 ../soft_b
		    
			../soft_b を開きます

		    % quasi88 /local/image/soft_c

			/local/image/soft_c を開きます

	  ファイルが見つからない場合はエラーを表示し、ドライブにはディスクが
	入っていない状態で起動します。

	  また、QUASI88 は環境設定ファイル .quasi88rc が ホームディレクトリ
	に存在する場合、それを読み込もうとします。環境設定ファイルについては、
	後述します。

ディスクイメージのフォーマット
	QUASI88 で使用するディスクイメージのフォーマットは、
	P88SR.EXE (PC8801mk-2SR emulator) に準拠しているつもりです。
	詳細は附属のドキュメント(ファイル名 FORMAT) を参照下さい。

キー操作
	  QUASI88 では、キーの割当が以下のようになっています。

		Home         HOME CLR
		End          HELP
		PageUP       ROLL UP
		PageDown     ROLL DOWN
		左Alt        GRAPH
		Pause        STOP
		PrintScreen  COPY

		無変換       決定
		変換         変換
		ひらがな     全角
		右Alt        PC

		F11      FDD情報表示。F11を押すたびに表示位置が変わります。
		F12      メニューモードへ移ります。

	  なお、シフトの右左および、リターンキーのフルキー側／テンキー側の
	区別はエミュレートされていません。

	  起動時のオプションで、-menukey を指定した場合は、F6〜F10 が
	以下のように割り当てられます。

		F6	起動時のオプション -frameskip n の n の値を大きくして
			いきます。(1→2→3→4→5→6→10→12→15→30→60)
		F7	起動時のオプション -frameskip n の n の値を小さくして
			いきます。(60→30→15→12→10→6→5→4→3→2→1)
		F8	サウンドボリュームを下げます (サウンド有効時のみ)
		F9	サウンドボリュームを上げます (サウンド有効時のみ)
		F10	一時停止 ( ESCキーを押せば解除 )

	  起動時のオプションで、-kanjikey を指定した場合は、F6〜F10 が
	以下のように割り当てられます。

		F6	カナ
		F7	決定
		F8	変換
		F9	全角
		F10	カナ (ローマ字入力モード)

	-menukey、-kanjikey、-f6〜-f10 を同時に指定した場合、最後に指定した
	機能が有効になります。

	・ローマ字入力モードについて
	  ファンクションキーのローマ字入力モードが割り当てられている場合、
	そのファンクションキー押下で、ローマ字入力モードになります。 このモード
	では、カナキーがロックされ、ローマ字によるカナ入力が可能になります。

	  ローマ字カナ変換は、一般的な規則に従います。
		ン 単独の入力は nn ではなく、n' です。
			例) kon'yaku → コンヤク
			    annai    → アンナイ
		xa xi xu xe xo は、 ァ ィ ゥ ェ ォ  に変換されます。
		xya   xyu  xyo は、 ャ    ュ    ョ  に変換されます。
		qa qi qu qe qo は、 ゛ ゜ ・ ッ ン  に変換されます。
		-  [  ]  ,  .  は、 ー 「 」 、 。  に変換されます。

	  数字のキーや、記号のキーは入力出来ません。(テンキーは可)
	  スペースキーおよび、特殊機能キーは入力可能です。

	再度、カナキーを押すことで、カナキーのロックが解除され、通常の
	入力モードに戻ります。

メニューモード
	F12キーを押すと、メニューモードに移行する事が出来ます。
	このモードでは、マウスやタブ／カーソルキーを使って、各種設定の変更、
	イメージの変更が可能です。
	基本的な操作は以下の通りです。

		・マウス左クリック       … フォーカスの移動および決定
		・タブキー               … フォーカスの移動
		・スペース／リターンキー … 決定
		・カーソルキー           … 一部のメニュー内でフォーカス移動
		・ファンクションキー     … タグの変更

	メニューモードには、以下の項目があります。
	なお、カッコ [] の中は、-english オプションをつけた場合の表記です。

	・戻る [ EXIT ]
	  エミュレータに戻ります。

	・終了 [ QUIT ]
	  QUASI88を終了します。

	・モニターモード [ MONITOR ]
	  モニターモードに移行します。
	  ( ただし、起動時に -debug オプションが指定されていた場合のみ )

	・『リセット』タグ [ RESET ]
	  BASICモードなどを設定し、リセットします。

	・『DIP-SW』タグ [ DIP-SW ]
	  ディップスイッチを設定します。この設定はリセット後に反映されます。

	・『CPU設定』タグ [ CPU ]
	  CPUのエミュレート条件を変更します。
	  CPUクロックを変更したときは、リセットしたほうがよいでしょう。

	・『画面表示』タグ [ GRAPH ]
	  画面表示の設定を変更します。

	・『音量』タグ [ VOLUME ]
	  音量の設定を変更します。
	  このタグは、サウンドがコンパイル時に有効になっていないと現れません。

	・『ディスク』タグ [ DISK ]
	  ディスクイメージを操作します。

	・『キー』タグ [ KEY ]
	  ファンクションキーの機能設定をします。

	・『その他』タグ [ MISC ]
	  その他の雑多な設定をします。

モニターモード
	QUASI88 に INT シグナルを送ると、通常時は QUASI88 は終了します。
	( 一般には、端末で Ctrl-C を押すと INT シグナルが送られます。)

	しかし、起動時に -debug オプションが指定されていた場合は、
	INT シグナルによってモニターモードに移行します。

	モニターモードでは、コマンドラインから各種コマンドを指示することで、
	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 [<cmd>]
	     ヘルプを表示します。
	   ・<cmd>には、ヘルプを表示させたいコマンド名を指定します。
	   ・引数を省略した場合、モニターモードで使用可能な全コマンドの
	     一覧が表示されます。

	quit
	     QUASI88 を終了します

	menu
	     メニューモードに移行します

	go
	     モニターモードを終了し、エミュレータに戻ります。

	trace <step>
	trace #<step>
	trace CHANGE
	trace
	     エミュレータを数ステップ、動かします。
	   ・<step> または #<step> には、ステップ数を指定します。
	   ・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 [<cpu>] [<action>] <addr|port> [#<No>]
	break [<cpu>] [CLEAR] [#<No>]
	break
	     ブレークポイントを設定／解除します。
	   メイン、サブ別々に、各々10個までのブレークポイントが設定できます。
	   (ただし、10番目のブレークポイントはシステムが勝手に適時使用します)
	   ブレークポイントの条件として以下の5種類があります。
	    	PC    … CPU の PC(プログラムカウンタ) が特定のアドレスまで
			 進んだ時点で、停止
		READ  … CPU が特定のアドレスから読み込んだ後に、停止
		WRITE … CPU が特定のアドレスに  書き込んだ後に、停止
		IN    … CPU が特定の入力ポートから入力した後に、停止
		OUT   … CPU が特定の出力ポートに  出力した後に、停止
	   ・<cpu> には、CPUの種類と指定します。
	           MAIN または SUB。
		   省略時は、MAIN。
	   ・<action> には、上記の条件を指定します。
                      PC、READ、WRITE、IN、OUT、CLEAR のいずれか
		      省略時は、PC。
		      CLEAR を指定した場合は そのブレークポイントを解除します。
	   ・<addr> または <port> には、ブレークポイントとして設定するアドレス
	                          ないしは、入出力ポートを指定します。
                                  <action> に CLEAR を指定している場合は、
				  この引数はつけてはいけません。
	   ・#<No> には、ブレークポイントを設定する番号を指定します。
	           #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                … 現在の設定をすべて表示します。

	read [<bank>] <addr>
	     メモリから1バイト、読み込みます。
	   ・<bank> には、メモリバンクを指定します。
			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。
	   ・<addr> には、メモリのアドレスを指定します。
		例) read 0x3456	   … メインメモリ 0x3456 をリードします。
		    read B 0xc000  … VRAM Blue プレーン 0xc000 をリードします
		    read SUB 0x7ff … サブメモリ 0x7ff をリードします。

	write [<bank>] <addr> <data>
	     メモリに1バイト、書き込みます。
	   ・<bank> には、メモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
		    省略時は、MAIN。
	   ・<addr> には、メモリのアドレスを指定します。
	   ・<data> には、書き込むデータを指定します。
		例) write 0x3456 0xff … メインメモリ 0x3456 に、0xffを
		                         ライトします。
		    write B 0xc000 0  … VRAM Blue プレーン 0xc000 に、0を
		                         ライトします。
		    write SUB 0x7ff 1 … サブメモリ 0x7ff に 1 をライトします。

	dump [<bank>] <start-addr> <end-addr>
	dump [<bank>] <start-addr> [#<size>]
	     メモリダンプを表示します。
	   ・<bank> には、メモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
		    省略時は、MAIN。
	   ・<start-addr> には、ダンプの開始アドレスを指定します
	   ・<end-addr> には、ダンプの終了アドレスを指定します。
			省略時は、<start-addr> + 255。
	   ・#<size> には、ダンプするサイズを指定します。
	   	 	省略時は、#256。
	   ・引数を全て省略した場合は、以前の続きが 256バイト、ダンプされます。
	       	例) dump 0x8000             … メインメモリ 0x8000 番地から 
		                               256 バイトをダンプ
		    dump HIGH 0xf000 0xffff … 高速RAM 0xf000 番地から 0xffff
		                               番地までをダンプ
		    dump EXT1 0x6000 #0x200 … 拡張 ROM No.1 の0x6000 番地から 
		                               0x200 バイトをダンプ
		    dump                    … 前回指定したメモリバンクの
		                               続きを 256 バイトダンプ

	fill [<bank>] <start-addr> <end-addr> <value>
	fill [<bank>] <start-addr> #<size>    <value>
	     メモリを指定の値を埋めます。
	   ・<bank> には、メモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
		    省略時は、MAIN。
	   ・<start-addr> には、開始アドレスを指定します
	   ・<end-addr> には、終了アドレスを指定します。
	   ・#<size> には、サイズを指定します。
	   ・<value> には、埋めるデータを指定します。
	    	例) fill 0xb600 0xfddd 0x76    … メインメモリ B600H番地〜BFFFH
						  番地まで、76Hで埋めます。
		    fill G 0xc000 #0x4000 0xff … VRAM Green プレーン を
		    				  0 で埋めます。

	move [<src-bank>] <src-addr> <end-addr> [<dist-bank>] <dist-addr>
	move [<src-bank>] <src-addr> #<size>    [<dist-bank>] <dist-addr>
	     メモリを移動させます。
	   ・<src-bank> には、転送元のメモリバンクを指定します。
		        MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		        HIGH、SUB のいずれかを指定します。
		        省略時は、MAIN。
	   ・<src-addr> には、転送元の開始アドレスを指定します
	   ・<end-addr> には、転送元の終了アドレスを指定します。
	   ・#<size> には、転送するサイズを指定します。
	   ・<dist-bank> には、転送先のメモリバンクを指定します。
	   		 省略時には、<src-bank> と同じバンク。
	   ・<dist-addr> には、転送先のアドレスを指定します。
		例) move 0x8000 0x83ff 0xa000 … メインメモリ 8000H番地〜83FFH
						 番地を、メインメモリ A000H番地
						 に転送します。
		    move B 0xc000 #0x4000 R 0xc000 … VRAM Blue プレーン の
		    				      メモリを、VRAM Red 
						      プレーンに転送します。

	search [<value> [[<bank>] <start-addr> <end-addr>]]
	     特定の数値を検索します。
	   ・<value> には、検索する数値 (1バイト) を指定します。
	   ・<bank> には、検索するメモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
		    省略時は、MAIN。
	   ・<start-addr> には、検索の開始アドレスを指定します
	   ・<end-addr>   には、検索の終了アドレスを指定します。
		引数を省略した場合は、前回に指定した条件で検索します。
		例) search 0xed RAM 0x1000 0x1fff … メインRAM 1000H番地〜1FFFH
						     番地内で、データが EDH に
						     なっているアドレスを表示
						     します。
		    search 0xfd … 前回と同じ範囲で、データが FDH になって
		    		   いるアドレスを表示します。
		    search … 前回と同じ条件で検索します。

	in [<cpu>] <port>
	     入力ポートから、データを入力します。
	   ・<cpu> には、CPUの種類と指定します。
	           MAIN または SUB。
		   省略時は、MAIN。
	   ・<port> には、入力ポートの番号を指定します。
	   	例) in 0x20     … メインCPU のポート 0x20 から入力します
		    in SUB 0xfb … サブCPU のポート 0xfb から入力します

	out [<cpu>] <port> <data>
	     出力ポートに、データを出力します。
	   ・<cpu> には、CPUの種類と指定します。
	           MAIN または SUB。
		   省略時は、MAIN。
	   ・<port> には、出力ポートの番号を指定します。
	   ・<data> には、出力するデータを指定します。
	   	例) in 0x50 0       … メインCPU のポート 0x50 に、0 を出力
		                       します。
		    in SUB 0ff 0x10 … サブCPU のポート 0xff に 0x10 を出力
		                       します。

	loadmem <filename> <bank> <start-addr> <end-addr>
	loadmem <filename> <bank> <start-addr> #<size>
	     ファイルの内容をメモリにロードします。
	   ・<filename> には、ファイルの名前を指定します。
	   ・<bank> には、ロードするメモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
	   ・<start-addr> には、ロードの開始番地を指定します。
	   ・<end-addr> には、ロードの終了番地を指定します。
	   ・#<size> には、ロードするサイズ(バイト数)を指定します。
		注) ファイルのサイズが指定サイズに満たない場合、残りのメモリ
		    はそのままの状態になります。
	   	例) loadmem file RAM 0 #65536 … ファイル file の内容を
						 メインRAMにロードします。

	savemem <filename> <bank> <start-addr> <end-addr>
	savemem <filename> <bank> <start-addr> #<size>
	     メモリの内容をファイルにセーブします。
	   ・<filename> には、ファイルの名前を指定します。
	   ・<bank> には、セーブするメモリバンクを指定します。
		    MAIN、ROM、RAM、N、EXT0、EXT1、EXT2、EXT3、B、R、G、
		    HIGH、SUB のいずれかを指定します。
	   ・<start-addr> には、セーブの開始番地を指定します。
	   ・<end-addr> には、セーブの終了番地を指定します。
	   ・#<size> には、セーブするサイズ(バイト数)を指定します。
	   	例) savemem file RAM 0 0x10000 … メインRAMの内容を、
						  ファイル file に出力します。

	reset [<mode>] [<dipsw>]
	     エミュレータをリセットします。
	   ・<mode> には、リセットの際の BASIC モードを指定します。
			V2  … V2モードでリセットします。
			V1H … V1Hモードでリセットします。
			V1S … V1Sモードでリセットします。
			N   … Nモードでリセットします。
		    上記のいずれかを指定します。
		    省略時は、モードを変更せずにリセット。
	   ・<dipsw> には、リセットの際のディップスイッチ設定をしていします。
	   	     起動時の、-dipsw オプションと同じように、数値で指定
		     します。
		     省略時は、ディップスイッチを変更せずにリセット。
	   	例) reset        … リセットします。
		    reset V1S    … V1S モードでリセットします。
		    reset 0x0006 … ディップスイッチを設定し、リセットします。

	reg [[<cpu>] [<name> <value>]]
	     レジスタの内容の表示／変更を行ないます。
	   ・<cpu> には、CPUの種類と指定します。
	           MAIN または SUB。
		   省略時は、MAIN。
	   ・<name> には、レジスタの種類を指定します。
	            AF、BC、DE、HL、AF'、BC'、DE'、HL'、IX、IY、SP、PC、
		    I、R のいずれか。
	   ・<value> には、代入する値を指定します。
		引数の省略時には、内容を表示します。
	   	例) reg           … レジスタの内容を表示します。
		    reg ALL       … メイン、サブ両レジスタの内容を表示します。
		    reg HL 0xc000 … HL レジスタに、0xc000 をセットします。

	disasm [[<cpu>] [<start-addr>][#<steps>]]
	     逆アセンブルします。
	   ・<cpu> には、CPUの種類と指定します。
	           MAIN または SUB。
		   省略時は、MAIN。
	   ・<start-addr> には、逆アセンブルの開始アドレスを指定します。
	                  省略時は、前回アセンブルした最終アドレスの次の
			  アドレス。ただし、モニターモードに入った直後は、
			  PC レジスタの指すアドレス。
	   ・#<steps> には、逆アセンブルするステップ数を指定します。
	              省略時は、16ステップ。
	   	例) disasm           … 現在の PC の位置、もしくは前回のdisasm
		                        の最終番地から、16ステップ逆アセンブル
		    disasm #100      … 上記と同じ条件で、100ステップ逆
		    			アセンブルします。
		    disasm SUB 0x400 … サブCPU 0x400番地から16ステップ逆
		    			アセンブルします。

	set [[<variabe-name> [<value>]]]
	show [<variabe-name>]
	     内部変数の表示／変更を行ないます。
	   ・<variabe-name> には、変数名を指定します。
	   ・<value> には、代入する値を設定します。
		注) 変数の内容の説明は省略します。ソースを参照ください。

	redraw
	     画面を再描画します。

	resize [<screen-size>]
	     画面サイズを変更します。
	   ・<screen-size> には、画面サイズを指定します。
	   		   FULL、HALF のいずれか。
			   省略時には、現在の画面サイズと反対のサイズに変更。
	   	例) resize      … 画面サイズを切替えます
		    resize HALF … 画面サイズを半分サイズにします。

	drive
	drive show
	drive empty [<drive_no>]
	drive eject [<drive_no>]
	drive set <drive_no> <filename> [<image_no>]
	     ドライブに設定されたイメージファイルに対し各種操作を行ないます。
	     <drive_no> には、ドライブの番号 ( 1 か 2 ) を指定します。
	     <filename> には、ファイル名を指定します。
	     <image_no> には、イメージの番号 ( 1 〜 32 ) を指定します。
	  ・drive      または
	    drive show
		ディスクドライブの状態を表示します。
		ドライブのアクセスランプの状態、
		ドライブに入っているディスク情報が表示されます。
	  ・drive empty [<drive_no>]
	  	指定ドライブに入っているディスクを、一時的にドライブに入って
		いない状態にします。
		ドライブを省略した時は、全てのディスクに対して行ないます。
		  例) drive empty 1 … ドライブ 1: を空の状態にします。
		      drive empty   … ドライブ 1:、2: を空の状態にします。
	  ・drive eject [<drive_no>]
	  	指定ドライブに入っているディスクを抜きます。
		ドライブを省略した時は、全てのディスクを抜きます。
		  例) drive eject 2 … ドライブ 2: のディスクを抜きます。
		      drive eject   … ドライブ 1:、2: の両ディスクを抜きます。
	  ・drive set <drive_no> <filename> [<image_no>]
		指定ドライブにディスクがセットしてある場合は、ディスクを抜き
		ます。その後、指定したディスクイメージファイルをセットします。
		その際、イメージの番号を指定できます。省略時は、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 <filename>
	file create <filename>
	file protect <filename> <image_no>
	file unprotect <filename> <image_no>
	file format <filename> <image_no>
	file unformat <filename> <image_no>
	file rename <filename> <image_no> <image_name>
	     イメージファイルに対し、各種操作を行ないます。
	     <filename> には、ファイル名を指定します。
	     <image_no> には、イメージの番号 ( 1 〜 32 ) を指定します。
	     <image_name> には、イメージ名 (16文字以内) を指定します。
	   ・file show <filename>
		イメージファイルの情報を表示します。
	   ・file create <filename>
		アンフォーマットディスクのイメージファイルを作成します。
		既存のファイルを指定した場合は、ファイルの最後に付加されます。
	   ・file protect <filename> <image_no>
		イメージファイルのプロテクトシールの設定を
		「プロテクト状態」にします。
	   ・file unprotect <filename> <image_no>
		イメージファイルのプロテクトシールの設定を
		「アンプロテクト状態」にします。
	   ・file format <filename> <image_no>
		イメージファイルに対し、N88 BASIC 標準のフォーマットを行ない
		ます。
	   ・file unformat <filename> <image_no>
		イメージファイルを、アンフォーマット状態します。
	   ・file rename <filename> <image_no> <image_name>
		イメージファイルのイメージ名 (ファイル名ではない)を変更します。
		イメージ名は16文字以内で、空白を含んではいけません。
		(メニューモードでは、空白を含むイメージ名をつけることが可能)

	コマンドの省略形
	     幾つかのコマンドには、省略形が用意されています。
	   ・?  … help  と同じ
	   ・m  … menu  と同じ
	   ・q  … quit  と同じ
	   ・g  … go    と同じ
	   ・t  … trace と同じ
	   ・s  … step  と同じ
	   ・S  … step ALL と同じ
	   ・b  … break と同じ

	注意
	    モニターモードは QUASI88 のデバッグ用に作成されたものなので、
	    十分なバグチェックが行なわれておりません。

環境設定ファイル
	QUASI88 は起動時に、ホームディレクトリ ( 環境変数 $HOME で設定された
	ディレクトリ ) にある、.quasi88rc というファイルを環境設定ファイルと
	みなして、読み込みます。

	この 環境設定ファイル .quasi88rc の書式は、以下の通りです。
	  ・一行は、255文字以下でなくてはいけません
	  ・ # 以降は、コメントとみなされます。
	  ・起動時のオプションと同じ書式で、設定内容を記述します。
	    ただし、1行に複数の設定をしたり、複数の行にまたがって設定したりは
	    できません。
	      良い例)  -v2
	               -frameskip 6
	      悪い例)  -v1h -4mhz	… 1行に複数の設定がある
	               -dipsw
		       0x000a		… 複数行にまたがって設定している
	  ・設定内容は、スペースかタブで区切ります。
	  ・設定出来るのは、起動時のオプションと同じ内容のみです。
	    ただし、イメージファイルは記述できません。

	環境設定ファイルが存在する場合、このファイルの内容にそって、
	QUASI88 の設定がされたあと、オプションの処理を行います。
	つまり、環境設定ファイルの内容と、オプションでの指定内容の両方が
	設定されるわけで、この時、オプションで指定した設定の方が、優先
	されることになります。

制限等
	現時点でエミュレートされていない部分を以下に挙げます。

		・割り込みの正確なタイミング
		・サウンドボードII相当のサウンド出力
		・サウンドボードIIのADPCM割り込み
		・CRTC 関連の大部分
		・DMAC 関連の大部分
		・FDC のいくつかのコマンド
		・2DD/2HD のディスク操作
		・プリンタ出力 (いちおう実装はしていますが、未チェックです)
		・シリアル出力 (いちおう実装はしていますが、未チェックです)
		・シリアル入力
		・カセット入出力
		・ジョイスティック
		・カレンダクロックの時刻読みだし以外の機能
		・いろんなウエイト
		・その他、いろいろ

エミュレートの完成度
	そこそこ動きます。^_^;

バグ
	  キー入力の実装に問題があり、キーが押されっぱなしになることが
	あります。メニューモードに入る事で、この状態は解除できます。
	  ほかにもバグがあちこちに………

今後の予定
	・高速化
	・エミュレート性能の向上
	・その他、いろいろ

作者
	福永省三 <fukuchan@mh1.117.ne.jp>

著作権／免責
	  QUASI88 （サウンドドライバ関連を除く）はフリーソフトウェアであり、
	著作権は作者が保有しています。このソフトは無保証であり、このソフトを
	使用した事によるいかなる損害も作者は責任を負いません。

	  QUASI88のサウンドドライバ関連は、MAME および、XMAME のソースを
	使用しています。この部分のソフトは、各著作者が著作権を有します。
	この箇所のライセンスは、MAME および、XMAME のドキュメントを参照下さい。

	  QUASI88の作成にあたり、Marat Fayzullin氏作の fMSX、Nicola Salmoria氏
	( MAME/XMAME project) 作の mame/xmame、ゆみたろ氏作の PC6001V を
	参考にさせてもらいました。

謝辞
	fMSX の作者の Marat Fayzullin さん、M.A.M.E/xmame チームのみなさん、
	ゆみたろさんをはじめ、QUASI88 の作成に協力、助言をくださったすべての
	皆様に、感謝！
