趣味工房 HIRO-G


< ROM版CP/Mシステムの作成準備 >


 前回のテストの結果を受けて、その後いろいろテストをした結果、FDD制御ボードは今後の作業に問題なく使えることが確認できましたので、いよいよCP/MのシステムFDを作成するための準備段階へ入りたいと思います。 
 現状は何も無いシステムですので、先ずはCP/M2.2(CCP、BDOS)等、関連プログラムを全てROM化し、言わばROM版CP/Mシステムを構築し、そのROM版CP/Mシステムを使って、目的のCP/Mシステムディスクを作成します。 
そのためのROM版CP/Mシステムを「システム作成用ROM」と呼ぶ事にします。
 準備するプログラムは次の通りです.

 @ CP/M2.2(CCP、BDOS)  メモリサイズ60K
 A BIOS
 B SYSGEN
 C リード/ライトテスト・プログラム (CP/M No15で検証済み。)

@は公式サイトからダウンロードし、所定の変更を加えZASMでアセンブルしたものを使います。 変更の箇所は中日電工さんの「CP/M ワンボードマイコンでCP/M」第17回〜20回、及びakikawa氏「CP/M導入メモ・その1を参照してください。 但し14行目の「MEM EQU」の値はこの復元システムのメモリサイズに合わせるため「MEM EQU 60」に設定してください。 写真1は所定の変更を済ませて、ZASMでアセンブルしたリストの一部です。
 
Aは「CP/M手作りマイコン3」のP163〜177に記載の「MBIOS」(写真2)を使います。

Bは同誌のP177〜185記載の「MSYSG」(写真3)を使います。
 
 ただし、「MBIOS」、「MSYSG」は、「CP/M手作りマイコン1」で既に2Dの標準CP/Mが走っているシステム上で、そのバージョンアップとして用意されているものです。 従って、本システムのように、何もない状態からCP/MのシステムFDを作成する目的には、このままでは使えません。
 何分CP/Mなるものが良く分かっていませんので、システムFDの作成は、構造の調査から試行錯誤で進めます。 

Cは、CP/MのシステムFDを作成する過程で発生するエラーの調査や、プログラムのテストのためのモニタとして使用します。 そのため、MBIOSのCONINのジャンプ先「EB2E」は、このモニタのCONIN「A88B」に変更してます。(追記修正)

Cのオリジナルは、0番スタートとなっており、473バイトもあるため、100番スタートのCP/M上では、そのままでは邪魔になり使えません。 A000〜A4FFまでは他に使う予定がありますので、取りあえず影響のないA500番地にリロケートしました。 
 リロケートするために、オリジナルを逆アセンブルしリロケータブルなアセンブル・リストを作成し、再度ZASMでA500番地用にアセンブルしました。(写真5)

CのA500番地へのリロケートテストは、写真6の通りDコマンドでプログラムデータが正常に転送されていることが確認できました。 リード/ライトの機能チェックは、写真7の通り、適当にトラックNo3、 セクタNo1へCのリロケート先番地のA500番地から1セクタ分のプログラムデータを書込み、次いでそのデータをメモリの8000番地から1セクタ分を読込んだ結果をDコマンドで確認した結果、Cのプログラムデータがそのまま読込まれていることで、機能していることを確認しました。
検証には、前回同様、AT互換の3.5インチFDDを使用しました。  

次回から、拡張ボード用のCP/MシステムFDの作成に入る予定です。


写真1 CP/M 2.2 アセンブル・リスト



写真2 MBIOSの一部



写真3 MSYSGNの一部


 < 今後の予定 >

 @ 拡張ボード用FDDのリード/ライト テスト1: 完了
 A 拡張ボード用CP/Mシステム構築の準備: 完了
 B 拡張ボード用CP/Mの構築 その1: 準備中
 C トラ技ボード用FFD制御ボードの製作

CP/M No16


CP/Mマシン復元進捗  ・ROM版CP/Mシステムの作成準備
2013年11月5日



写真4 オリジナルのリード/ライトテスト・プログラムの一部




写真5 A500H番地へリロケート例の一部




写真6 リロケート確認画面




写真7 リード/ライトテスト例