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: にセットされます。

	  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 の起動時に以下のオプションを指定できます。
	なお、オプション省略時のデフォルト設定は  -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 コマンドの引数と同じです。
		省略時は、-dipsw 0x391a です。

	-baudrate <bps>	起動時のボーレートを設定します
		<bps> は、75、150、300、600、1200、2400、4800、9600、19200 の
		いずれかです。
		省略時は、-baudrate 300 です。
		注意) このオプションは、I/Oポート 6FH の入力値に使用します。
		      QUASI88 では、シリアル入出力はエミュレートしていません。

	-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フレーム、………というふうになります。
		省略時は、-frameskip 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 にも影響されます。
		省略時は、-vol -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〜48000 の値を指定します。
		システムによっては指定通りの設定とはならない場合があります。
		省略時は、-samplefreq 22050 です。

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

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

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

	-numfrags <num>		サウンドの Fragments の 数を指定します
		省略時は、-numfrags 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 に割り当てます

	-numlock	ソフトウェア Num Lock を オンします
		詳細は、下記の キー操作 の項目を参照下さい。

	-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: に設定されているイメージファイルの
				イメージを、前のイメージに変更します。
		NUMLOCK		ソフトウェア Num Lock に割り当てます
		RESET		リセットキーに割り当てます
		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 オプション指定時のみ、有効です。
		省略時は、-subload 6 です。

	-timestop	内蔵時計を、85/01/01 00:00:00 で停止させます
		なにに使うのでしょう？

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

	-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 が一番早いです。

		省略時は、-cpu 0 です。

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

	-vsync <hz>		VSYNC の周期を設定します
		<hz> は、VSYNC 割り込みの生成周期(Hz)で 10.0 〜 240.0 の範囲
		(浮動小数値) で設定します。
		省略時は、-vsync 55.4 です。

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

	-waitfreq <hz>		ウエイトの同期合わせの周期を設定します
		QUASI88 の処理時間を実時間に合わせる際に、その同期をとる
		時間間隔を設定します。<hz> は、その周期で 10.0 〜 240.0 の
		範囲 (浮動小数値)で設定します。
		省略時は、-vsync と同じく、-waitfreq 55.4 です。

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

	-fdc_wait	FDC処理にウエイトをいれます。
		このオプションを指定することで、正常に動作する場合が *稀に*
		あります。が、ほとんどの場合はエミュレータの速度が遅くなる
		だけです。

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

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

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

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

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

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

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

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

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

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

	-resume			サスペンド状態から、復帰します。
		前回サスペンドした状態から、復帰します。
		ホームディレクトリ (環境変数 $HOME で設定されたディレクトリ)
		にある、.quasi88-state というファイルを、ステートファイル 
		(サスペンド時の状態を保存したファイル) として、読み込みます。
		※ -extram/-noextram、-jisho/-nojisho、-sd/-sd2 のオプション
		   を指定してサスペンドした場合、-resume で復帰する場合にも
		   同じオプションを指定する必要があります。

	-resumefile <filename>	サスペンド状態から、復帰します。
		前回サスペンドした状態から、復帰します。
		<filename> で指定されやファイルを ステートファイル (サスペンド
		時の状態を保存したファイル) として、読み込みます。
		※ -resume オプションの但書きを参照

関連ファイル
	  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 a.d88

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

		    % quasi88 ../b.d88
		    
			../b.d88 を開きます

		    % quasi88 /local/image/c.d88

			/local/image/c.d88 を開きます

		注意) ${QUASI88_DISK_DIR} ディレクトリとカレントディレクトリ
		      の両方に、x.d88 という名前のファイルがある場合、

			% quasi88 x.d88

		      とすると、${QUASI88_DISK_DIR} ディレクトリにある x.d88
		      を開きます！  
		      カレントディレクトリにある x.d88 を開きたい場合は、

			% quasi88 ./x.d88

		      のようにしてください。

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

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

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

キー操作
	  QUASI88は、106キーボードを前提に、キー入力をエミュレートして
	います。そのため、他のキーボードを使っている場合は、キーの刻印と
	QUASI88上での入力が異なる場合があります。
	  なお、シフトの右左および、リターンキーのフルキー側／テンキー側の
	区別はエミュレートされていません。

	  PC8801の特殊なキーは、以下のキーで入力できます。

		106キー      PC8801のキー
		------------ ------------
		Home         HOME CLR
		End          HELP
		PageUP       ROLL UP
		PageDown     ROLL DOWN
		左Alt        GRAPH
		Pause        STOP
		PrintScreen  COPY
		ひらがな     かな
		無変換       決定
		変換         変換
		半角/全角    全角
		右Alt        PC

	  また、F11とF12は以下の機能に割り当てられています。

		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	カナ (ローマ字入力モード)

	  起動時のオプションで、-numlock を指定した場合は、以下のキー
	がPC8801のテンキーに割り当てられます。(ソフトウェア Num Lock)

		106キー         PC8801のキー(テンキー側)
		----------	------------
		7  8  9  0	7  8  9   *
		U  I  O  P	4  5  6   +
		J  K  L  ;	1  2  3   =
		M  ,  .  /	0  ,  .  RET

	  また、ファンクションキーに ソフトウェア NumLock 機能を割り当てる
	ことができます。例えば、起動時に -f6 NUMLOCK を指定した場合、F6 キー
	を押下するたびに、ソフトウェア NumLock のオン・オフを切替えることが
	できます。

	-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モードが表示されます。
	      BASICモード、CPUクロック、ROMバージョンを変更して
	      リセットすることができます。

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

	・『CPU設定』タグ [ CPU ]
	      -cpu オプションの変更ができます。(変更後はリセット推奨)
	      CPUクロックの変更ができます。    (変更後はリセット推奨)
	      ウエイトの有無、ウエイト周期が変更できます。

	・『画面表示』タグ [ GRAPH ]
	      フレームレート (-frameskipオプション) の変更ができます。
	      画面サイズを切替えることができます。
	      マウスの表示・非表示を切替えることができます。
	      モニタ周波数、パレットモードを変えることができます。

	・『音量』タグ [ VOLUME ]
	      音量を変更できます。
	      FM音源、PSG音源、BEEP音のレベルを変更できます。
	      このタグは、サウンドがコンパイル時に有効になっていないと
	      現れません。

	・『ディスク』タグ [ DISK ]
	      ディスクイメージファイルを開いたり、閉じたり、イメージを
	      交換したりできます。
	      イメージの名前、プロテクトの変更および、フォーマット、アン
	      フォーマットができます。
	      ブランクディスクイメージの追加ができます。

	・『キー』タグ [ KEY ]
	      ファンクションキー F6〜F10 に各種機能を設定できます。
	      -tenkey、-cursor、-numlock オプションを変更できます。

	・『その他』タグ [ MISC ]
	      サスペンドできます。
	      サスペンド時の状態を保存するステートファイルを指定できます。
	      ブランクディスクのイメージファイルの作成ができます。

モニターモード
	モニターモードとは、作者が QUASI88 のデバッグをする際に使用している
	モードです。よって一般の人は使い方を知る必要はありません。
	この項目は興味のある人のみ、読んでください。

	QUASI88 に INT シグナルを送ると、通常時は QUASI88 は終了します。
	( 通常は、QUASI88 を起動したコンソールで、Ctrl-C を押すと QUASI88 に
	  INT シグナルが送られます。)

	しかし、起動時に -debug オプションが指定されていた場合は、
	INT シグナルによってモニターモードに移行します。
	(また、-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 [<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、DOUBLE のいずれか。
			   省略時には、画面サイズを、HALF → FULL → DOUBLE
			    → 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文字以内で、空白を含んではいけません。
		(メニューモードでは、空白を含むイメージ名をつけることが可能)

	suspend <filename>
	    サスペンドします。
	    ステートファイル (サスペンド時の状態を保存するファイル) の
	    ファイル名を、<filename> で指定します。ファイル名は省略不可。


	コマンドの省略形
	     幾つかのコマンドには、省略形が用意されています。
	   ・?  … 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 の作成に協力、助言をくださったすべての
	皆様に、感謝！
