CP/KM webは、HTML5による、CP/M ver 2.2の実行環境です。

HTML5の機能のうち使用しているものは、以下の通りです。

cpm.htmlにブラウザでアクセスすると、以下のように表示されます。

start

黒い画面が、80文字×24行の、ディスプレイです。 その下に、CPUの動作速度を示しています。最速で、2 MHzで動作します。 PCではほとんどの場合2 MHzで動作しますが、モバイル環境では少し遅くなるかもしれません。 その下、「Set File」のボタンは、ディスクイメージファイル及び、CP/Mファイルをセットする場合に使用します(後ほど説明します)。 「Help」は、現在閲覧中のヘルプファイルを表示させるときに使います。

ディスプレイに表示されているとおり、この状態ではまだCP/Mが使用できません。CP/Mの実行には、別途ディスクイメージファイルを準備する必要があります。表示の通り、 http://www.recfor.net/projects/cpm/ を開き、そのページで指定されている方法でディスクイメージファイルを取得します。

なお、ここで得られるディスクイメージファイルは、 CpmtoolsGUI というツールで編集することが出来ます。CpmtoolsGUIをダウンロードした時に添付されているdiskdefsファイルが、そのまま使えます。

ディスクイメージファイルが取得できれば、"Set File"を押します。ファイル選択ダイアログになるので、取得したディスクイメージファイルを選択します。このファイルは、上記サイトからダウンロードしたZIPアーカイブそのままでも、解凍した約8M bytesのファイルでも、どちらでも構いません。次のような画面になるはずです。

disksloaded

この状態で、CP/M ver 2.2が起動しています。A, B, C, Dの4つの仮想ディスクドライブがあり、容量はそれぞれ1952K bytesです。ただし、Aドライブのうち8192 bytesは、CPM.SYSの読み込み用に使用されています。

別途用意したファイルを仮想ディスクに取り込みたい場合、上述のCpmtoolsGUIを利用することが出来ますが、CP/KM上で行なうことも出来ます。CCP(シェル: Console Command Processor)が実行中であることを確認して、"Set File"ボタンを押して下さい。ファイル選択ダイアログになるので、任意のファイルを選択します。ただしファイル名は、8+3規則に合致しているものを用いて下さい。

CP/Mを使用した後、ディスクイメージファイルを保存することも出来ます。"Save Disks"ボタンを押すと、ZIPアーカイブダウンロードの状態になります。このZIPアーカイブは、起動時にディスクイメージとして、"Set File"して利用することが可能です。

ここで実行されているCP/Mは、ver 2.2で、62k systemと呼ばれているものです。以下に、メモリーマップを示します。

start

PCとしては、以下のような概念図で構成されるものを使用しています。CPUは、Z80です。DisplayとKeyboardについては8255(パラレルI/Oインターフェース)の機能は使用しておらず、Z80 CPUとHTML5との間で直接やりとりすることで行なっています。従って、8255のうちこのエミュレーターで使用している機能は、Port C2のみです。Port C2はプルアップされており、リセット時はアドレス0x0000-0x7FFFの領域にROMが選択されるようになっています。ROM中のコードではBIOSを0xF200からの領域に構築し制御をBIOSに移します。CP/Mの実行中は、Port C2に0を出力することにより、0x0000-0x7FFFの領域にRAMを使用するような仕組みです。

start