趣味工房 HIRO-G




< FORMAT_ST ROMの詳細その1 >



 CP/M No36で復元再開と言いながら、また、せっかく「CP/M手作りマイコン」の著者の中嶋氏に、プログラム等の公開の許可を得たまま中断状態となっております。 何とかしなければと思いつつ、最近いろいろと出回っておりますボードの試食から、ドローンのオートパイロットに手を染めて、気がつけば、またまた2年も経過しておりました。 


 トラ技のBASIC復元マシンは正常に機能するようになりましたが、初期の目的であるCP/Mマシンへの改造は、FDD関連のハード、プログラム及び制御信号等のタイミングの整合が難解でギブアップ状態です。 

 2年前に「CP/M No36」で簡単に説明しました、CP/MのシステムFDを作成するための3個のROM(写真1)について、プログラムの公開と詳細説明を遅ればせながら次の順序で進めたいと思います。 


 @ 「FORMAT_ST」 ROMの詳細

 A 「CPM2.2_ST」 ROMの詳細

 B 「MCPMIO_ST」 ROMの詳細


 尚、使用しますROMは何れも27C256ですが、27256クラスはスピード的にND80ZVに追いつけませんので注意が必要です。 


 ROMの内容をすっかり忘れていますので、今までの作業内容を思い出すために、ノートを紐ときながら試作機を動かしてみましたところ、正常に機能することを確認しました。 CP/Mの試作機を作る場合は、先ずはFDDが正常に機能することを確認する必要がありますが、そのためにはフォーマットプログラムで確認することが一番手っとり早いので、先ずは「FORMAT_ST」 ROMの内容から説明したいと思います。


 フォーマットプログラムは書籍「CP/M手作りマイコン3」の「第4章「両面倍密度倍トラック型ミニフロッピーディスクの搭載」、P147に記載されている「MFORM80」がベースとなっています。 しかしこのプログラムは、CP/M上で使用するように作成されていますので、CP/Mが走る前の状況では、このままでは使用できません。

 従って、単独で使用できるようにキー入力と表示機能を持ったモニター的なプログラムをくっ付けてROM化することにして、適当なモニターもどきを検討しました。 以前、「CP/M No14」では、同書籍シリーズ「CP/M手作りマイコン1」のP90記載のモニタープログラム40文字を80文字に改造して使用しましたが、今回はシンプルに、同書籍シリーズの「CP/M手作りマイコン2」のP30に記載の「スクリーンカーソル制御用テストプログラム」キー入力と表示機能を活用しています。

 このプログラムは133Hバイトで、「MFORM80」の本体開始である0170H番地以内に収まりますので、本体をそのままの番地で活用できて効率的です。


 << FORMAT_ST ROMの説明 >>

@ 説明は次の「FORMAT_ST」のダンプリストに従って進めます。   全体のプログラムは334Hバイトです。
 無断転記、転用は「CP/M手作りマイコン」著者の著作権に抵触しますのでご注意願います。

 ダンプリスト:  FORMAT_ST.docx

A 0000H番地から002FH番地までは、バンク切り替えで前面RAM化し、再度RAM上の0000H番地へ「スクリーンカーソル制御用テストプログラム」「MFORM80」本体をロードします。 ROMのままでも良いのですが、CP/Mの扱いに慣れるための作業みたいなものです。

B 「スクリーンカーソル制御用テストプログラム」は、単独で使う場合を考慮して、そのままで0030H番地から0163H番地までにロードしてます。 表示の文字数は、40文字(40X20=800文字)から80文字(80X25=2000文字)表示に変更していますが、この変更に伴うCRTC(HD46505SP)のパラメータの変更は013BH〜0148H番地で設定しています。

C 0170H番地〜019FH番地までは、「MFORM80」の前処理で、今回は写真2のような極めてシンプルな表示ですが、「スクリーンカーソル制御用テストプログラム」を使えば色々な事ができますので、好みに応じてアレンジしてください。

D 01A0H番地から最後の0334H番地までが「MFORM80」の本体です。 但しCP/M上で使う場合は、BDOSエントリーポイントへのジャンプ機能が必要ですが、今回は単独で使用しますので、その部分は変更して使用しています。


 << FORMAT_ST ROMの使用手順 >>

@ 「FORMAT_ST」 ROMを拡張ボード上のROM用ソケットへ取付て電源を入れますと写真2のような「G」コマンド催促画面が表示されます。 FDDには2DDのFDを挿入します。(写真3)

A フルキーボードから「G」を入力しますと入力されたキーのアスキーコードに従がって、写真4のように表示用LEDが点灯(アスキーコード47H)して、フォーマットが開始されます。 

B 写真5がフォーマット中の写真で、フォーマットは約65秒で終了します。 写真6は試作システムの全体写真です。

 次回は、FORMAT_ST ROM作成にに使用しました「スクリーンカーソル制御用テストプログラム」の本来の機能とFDD制御基板のテストプログラムである「リード/ライトテストプログラム」について、ダンプリストを記載してプログラムの内容を説明の予定です。





写真1 システムFD作成用ROM



CP/M No38


・FORMAT_ST ROMの詳細その1 
2017年6月29日


写真2 フォーマット用プログラムが起動




写真3 FD挿入




写真4 フォーマット開始




写真5 フォーマット中




写真6 試作システムの全体