CP/M80のシミュレータは数多くあるようです。また、MSXのシミュレータもよい 物があるようですが、筆者は一つも見ていません。
筆者も大昔に8080のシミュレータを書いたのですが、それにCP/M80の シミュレーションを加えたのがこのCP/Mシミュレータです。
このCP/MシミュレータのCP/MとのコンパチビリティーはMSX-DOS並です。
このシミュレータでは、CP/M のファイル操作をUNIXファイル操作に変換してい
ます。
CP/Mの古いプログラムは、ディスクI/Oを直接に色々といじる可能性があ
るのですが、MSX-DOS程度にはコンパチビリティーを確保しています。
「Z80に対応しないのか?」という疑問に対しては、「Z80の命令をつけると、 8080の美しさが失われるので、Z80にはしない」のです。
このCP/M80シミュレータを ftp://www.takeoka.org/pub/micro/cpsim.tgz として置きます。
アーカイブを展開して、make後、make installします。
その後、
% cpm -f 設定ファイルとすれば、CP/M80のシミュレーションが開始されます。
CCP(コマンド・プロンプト)の組み込みコマンドとして、pwdとcdが拡張されて
います。
cdはUNIXのファイルシステム上をcdします。
CCPの入力行は行編集(デフォールトはemacs風)とヒストリが1つだけサポートさ
れています。
また、CCPの入力行が空の時、行頭で^Qを入力すると、cpmはサスペンドします。
cpmの終了は、コマンドラインでunixと入力します。
% cpm -f xconf 67K cpm v0.11 + 8080 v1.11 (parity) A>dir 6502_ops.h Makefile asm.h genasm.org makeops.o 6803_ops.h README asm.o instructions.c ops.h 6803reg.h asm* asm_ops.5 instructions.o pseudos.c 6809_ops.h asm.1 data.c makeops* pseudos.o 8085_ops.h asm.c data.o makeops.c A>unix CP/M Halted %という感じです。
CP/Mエミュレータと呼ばれるものは、世の中にごまんとあるので、他にもよい ものが一杯あると思います。