Z80H韋駄天用のCP/Mを公開されているソースから構成しました
Z80Hの作者はX1-CP/Mから韋駄天用のCP/Mを構成されていますが、前回のブログでは、私は手持ちのFM-CP/Mを利用しました。しかし、X1-CP/MやFM-CP/Mから構成する方法では試してみることができる方は限られます。
そもそもCP/Mの本体部分は共通(だと思っています)ですので、公開されているソースからでも構成できるはずです。ということで、以前中日電工の菱田さんのブログを参考にしてCP/Mを構成した時と同じように構成してみましたので、菱田さんのブログの記事を参照しながら私の行ったその手順を解説します。
[1]ソースからバイナリを作成する
(1-1)ソースとアセンブラを入手する
公開されているページからソース cpm2-asm.zip をダウンロードします。(中日電工のブログ第17,18回 以下同様)
使用するのはこれを展開してできるファイルのうちの cpm22.z80 です。
アセンブラはVectorで入手できるZASM1.64を使用します。
(1-2)ソースのエラーを修正する(第19,35,36回)
このままアセンブルするとエラーが生じますので数箇所を修正します。
・END文の追加
・ラベルHALTをHLTに変更
・NFUNCTSの定義文を前方に移動
・CKSUMTBL: DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 を次の2行に分割する
CKSUMTBL: DEFW 0
DEFB: 0,0,0,0,0,0,0,0,0,0,0,0,0,0
・ADD A,M をADD A,(HL) に変更(3箇所)
ブログ中のその他の変更はND80Zのためのものなので不要です。
(1-3)60K-CP/M用に設定する
先頭の MEM EQU 62 を60に変更する。
(1-4)アセンブルする
以上の修正を加えたソース(cpm60k.txt)をWindows上でアセンブルします。
>msdos zasm -L -Ccpm60k.bin cpm60k.txt
(1-5)得られたBINファイルの末尾256バイトを削除する
末尾の BIOS JUMP TABLE の部分はIDATENシステムの方で用意されるので不要です。
できあがったファイルは$0000~$15FFの6KBとなります。
[2]CP/Mディスクを作成する
(2-1)ソースを入力してアセンブルする
「6809活用研究」のZ80Hの記事中にはIPL20, CONFIG, BIOS14, KER14 のソースが掲載されていますので、それを入力してアセンブルします。
(2-2)システムディスクのイメージの作成
バイナリエディタなどで320KBサイズのディスクイメージを作成して、次の順にファイルを書き込みます。
・$0000 - $00FF に IPL (TRK:0, SCT:1)
・$0100 - $16FF に cpm60k (TRK:0, SCT:2 - 23)
・$1700 - $1CFF に bios14 (TRK:0, SCT:24 - 29)
・$1D00 - $1EFF に config (TRK:0, SCT:30 - 31)
・$2000 - $3BFF に ker14 (TRK:1, SCT:1 - 28)
・$4000 以降(TRK:2以降)はDirectoryとProgram&Dataなので、様々なブログで公開されているCP/Mシステムからコピーすることで、トランジェントコマンドやアプリケーションが設定できます。
韋駄天システムはX1-CP/Mを元にしているので、システムのセクタが他のCP/Mとは異なり1セクタ前にずれています。(はせりんさまに教えていただきました。ありがとうございました。)
最後に、$1CFFの値を$3C(60)に変更します。これは起動時に60K CP/Mと表示される値です。
(2-3)システムディスク、あるいはシステムイメージファイルの作成
私は以前のブログに書きましたように、ドライブ0にGOTEKを使用していますので、できあがったイメージファイル(.DSK)を.88ファイルに変換して、さらに.hfeファイルに変換してUSBメモリーに書き込めば終了です。
フロッピーディスクをお使いの方はイメージファイルをそのままディスクにベタに書き込めば良いのですが、その方法としては、RS-232Cカードや以前のブログでも紹介していますFT-245カードを使ってFM77やFM-7に転送して書き込むことになりますが、転送時間がかかっても良ければF-BASICのプログラムを組めば良いので、詳細は省略させていただきます。
韋駄天システムは最終的には64K-CP/Mとなるのですが、今のところまだ60K-CP/Mのままです。
これで、ハンダ付けを伴う製作と雑誌記事からのソフトの入力の手間をを厭わなければ、FM77で8MHz動作のCP/Mが走ることになります。