趣味工房 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マシン復元進捗 ・システム作成用ROMとシステムディスク作成 その1 |
2013年11月10日 |
写真1 システムディスク作成風景(いつもの組合せ)
写真2 システムディスク作成中画面
写真3 システムディスク起動画面
|