趣味工房 HIRO-G


< システム作成用ROMとシステムディスク作成 その1 >


 CP/M2.2(CCP、BDOS)は「CP/M No16」で説明しましたように公式サイトからダウンロードし、所定の変更を加えZASMでアセンブルしたものを使います。 次のプログラムの準備ができましたので、いよいよシステム作成用ROM(ROM版CP/Mシステム)を作りCP/Mシステムディスクの作成に入ります。前回の説明で漏れてましたが、コールド・ブート・ローダーのMBOOTを追加しました。
 MBOOTは「CP/M手作りマイコン3」のP162に記載されています。

 @ CP/M2.2(CCP、BDOS)  メモリサイズ60K
 A MBIOS
 B MBOOT
 C MSYSG
 D リード/ライトテスト・プログラム (以下モニターと言う。)

 なにしろ何もないシステムですから、DDTなる便利なデバッガーはありませんので、先ずは、5つのプログラムを所定の番地へロードするためのシステム作成用ROMを作ります。 システム作成用ROMの内容は基本的には、プログラムの転送とバンク切換のみの簡単なものですが、基本となるROMですので、バイナリ・エディタで合成する場合には、貼り付けに十分注意し、ROM化する前には再確認が必要です。

転送には、次のような定番のプログラムを使っています。

 31 ** ++  SPの初期化(++**H 番地)
 21 ** ++  転送元先頭番地(++**H 番地)
 11 ** ++  転送先先頭番地(++**H 番地)
 01 ** ++  転送バイト数(++**H バイト)
 ED BO

 各ロード先は、「CP/M手作りマイコン3」のP161の図4.10に従って、2つの番地に配置します。 具体的には、次の通りですが、前の番地はシステムディスク作成のための作業用の番地で、後の番地がCP/M本来の番地です。何れもロード先の先頭番地を示します。 但し、書籍ではMBIOSのロード先番地が1E80Hとなっていますが、記載ミスと思います。MSYSGとDのモニターのロード先は1箇所のみです。

 @ MBOOT     0880H、  D300H
 A CCP.BDOS  0980H、  D400H
 B MBIOS      1F80H、  EA00H
 C MSYSG     0100H
 D モニター      A500H

 システム作成用ROMの作成手順の概略は次の通りです。 取りあえず、思いつくやり方でやってみました。
 システム作成用のディスクは予め「CP/M No14」で紹介の2DD用フォーマットプログラムMFORM80でフォーマットしたものを使用します。 システムディスクの作成は、次の通り、一応なんとか作成できる可能性が分かりましたが、システム作成用ROMで作成されたシステムディスクでCP/Mを立上げた場合、写真3のように文字化けや表示不具合が発生しましたので、今後は文字化け等の対策とよりスマートな作成方法を検討します。

@ システム作成用ROMをND80ZVのソケットに入れ、電源を入れると    各転送先へプログラムを配置し、最終的にA500番地にへジャンプし、写真4のよ  うにモニターが立ち上がります。(追記修正)

写真4 モニター起動

A 「G EA00」とGコマンドで、MBIOSに入ると、ROM版のCP/M 2.2が起動しました。 いや感激!?が、A>と表示されるはずですが、文字化けしてます。


写真5 ROM版CP/M起動

B 次にいよいよMSYSGでFDに書込むのですが、100番スタートのため、一度  リセットして、再度「G 0100」とすると、見事にMSYSGがスタートしました。 MSYSGの扱いは「CP/M手作りマイコン3」のP185に従いました。 一応、システムディスクの作成はできるようです。


写真6 MSYSG起動


写真7 「A」をキーイン


写真8 終了画面


  < 今後の予定 >

 @ CP/Mシステムディスク作成 その1: 完了
 A CP/Mシステムディスク作成 その2: 準備中
 B トラ技ボード用FFD制御ボードの製作

CP/M No17


CP/Mマシン復元進捗  ・システム作成用ROMとシステムディスク作成 その1
2013年11月10日

写真1 システムディスク作成風景(いつもの組合せ)




写真2 システムディスク作成中画面




写真3 システムディスク起動画面