制約

現在、下記の制約があります。

CPU:
割り込み、I/O をサポートしていません。H フラグ(ハーフキャリー)は常に 0 になります。このため、DAA 命令は場合により本来の挙動と異なることがあります。通常の使用では、まず問題ないはずです。I レジスタ、R レジスタはサポートしていません。(これらの未実装の命令を実行すると「不正命令割り込み」が発生します)

CPU はソフトウェアでエミュレートしています。従って、性能的にクロック 8MHz の Macintosh では苦しいと思われます。

ファイルシステム:
Macintosh のファイルシステムをそのまま使用します。CP/M のディスクを読み書きすることはできません。Macintosh の 1 フォルダ(ディレクトリ)が、1 仮想ドライブに相当します。フォルダ内のファイルのうち、CP/M で利用可能なファイル名をもつファイルが仮想ドライブ内のファイルとなります。このとき、小文字は大文字に変換されます。

CP/M でもそうですが、ディレクトリにはファイルの格納順序は保存されません。CP/M と違ってディレクトリはアルファベット順にソートされます。

DPH, DPB, アロケーションベクターは存在しますが意味を持ちません。したがって、これらを利用してディスクの空き領域等を表示するプログラム(ex. STAT)では無意味な情報が表示されます。

注意: ディスクが書き込み禁止であった場合のリトライはサポートしていません。フロッピーディスクを使用する場合は御注意ください。

仮想ディスプレイ、キーボード:
漢字に対応していません。(フォントの切り換えによって半角かなに対応しています) BDOS の文字出力で、^P が効きません。同じく、1行入力でラブアウトが効きません。

仮想デバイス:
現在プリンタがサポートされています。ただし、仮サポートであり、完全ではありません。プリンタは最小限の排他制御が行われおり、1 つのプロセスがプリンタを使用している場合は他のプロセスはプリンタを使用できません。プリンタの占有にいプリンタドライバは使用できません。また、プリンタドライバによっては改行・改ページが自動的に行われません。

CCP:
SAVE コマンドをサポートしていません。(代わりに Dump Core の機能があります) User Area の概念がありません。ビルトインコマンドの実行では TPA を破壊します。


戻る