趣味工房 HIRO-G

< CP/Mシステムディスクの完成 >


 前回の「CP/M No18」でキャラクタ・ジェネレータを変更することで、CONOTの文字化けは解消し、この結果を受けてMBIOSのCONINをモニターのアドレスからMBIOSのCONINへ戻した結果、今度はキー入力で文字化けが発生するようになりました。 

 この件について、「1」を入力すると「N」が表示され、「2」を入力すると「M」が表示されるというように、最初はその不具合の規則性が分かりませんでしたが、いろいろ調査した結果、アスキーコードについて次の例のように7ビット目を無視すると、その他のビットは反転していることに気が付きました。


 ・ 「1」=31H: 0011 0001    「N」=4EH: 0100 1110

 ・ 「2」=32H: 0011 0010    「M」=4DH: 0100 1101

 ・ 「A」=41H: 0100 0001    「>」=3EH: 0011 1110


 主なキーについて確認した結果、全てにあてはまりましたので、あらためてMBIOSのCONIN関連を確認しますと。、写真10のMBIOSの0237番地に「2F」:CPLとあり0238番地で7ビット目がマスクされていることが分かりました。 これかと思い「2F」を「00」に変更し、ROM化してテストした結果、文字化けは完全に解消しました。

 まさかオリジナルのMBIOSに原因があるとは、全く思っていませんでしたので、エラク手間取りましたが、何とかシステムディスクを作成する事ができました。


< システムディスクの作成手順 >

@ 「CP/M No14」で紹介した2DDフォーマッティングプログラム「MFORM80」でフォーマットした3.5インチ2DDディスクをFDDへ挿入する。

A 「CP/M 16〜18」で作成したシステム作成用ROMについて、MBIOS(「CP/M手作りマイコン3」のP166)の0237番地を写真9のように変更する。

(システム作成用ROMについては、「CP/M16〜18」を参照してください。)


B 変更したシステム作成用ROMをND80ZVのROMソケットに差込み電源を入れると、モニターが起動し写真2のように表示が出るので、「G EA00」でシステム作成用ROMのCP/Mを起動する。

C 前回は、ここで一度リセットして「MSYSG」を立ち上げたが、今回は写真4のようにSAVEコマンドを使って、100番地にあるMSYSGをFDにSAVEしてみたところ、写真5のように問題なくSAVEされていました。(良く考えると当たりまえですが。)

D SAVEされたMSYSGを写真6のように実行し、表示の手順に従って、写真6〜写真8のようにキー入力すると、システムディスクが作成され、写真9のように次のディスク作成の要求に戻ります。


< 確認手順と結果 >

@ システムディスクの確認のために、予め「CP/M手作りマイコン3」のP153〜158に記載されているIPL(CP/Mの自動立上げ用プログラム)であるMCPMIOを、 0番スタートでROM化したものを用意します。

A 作成したシステムディスクを再度、FDDに差込み、 予め作成したMCPNIOのROMをND80ZVのROMソケットに差し、電源を入れる。

B システムディスクが起動しCP/M 2.2が無事立ち上がったので、dirコマンドを入力すると、写真12のようにセーブされているMSYSGが表示されました。 という事で、無事にシステムディスクが作成されている事を確認しました。


 これまでの作業の結果、一応、無事にCP/Mシステムの復元が達成されましたので、今後は、もうひとつのトラ技のボードによるCP/Mマシンの復元と、今までの経過の補足をしながらシステムの拡張に取り組みたいと思います。

  



写真10 MBIOS変更箇所



写真11 作成したシステムディスク



写真12 システムディスクでの起動画面表示


< 今後の予定 >

 @ CP/Mシステムディスクの完成: 完了
 A MBASIC等、アプリの追加方法の検討と追加
 B トラ技ボードへのFFD制御ボードの活用
 C RS232Cの増設
  

CP/M No19


CP/Mマシン復元進捗  ・CP/Mシステムディスクの完成
2013年11月20日

写真1 システムディスク作成状況



写真2 モニター起動画面



写真3 CP/M起動画面



写真4 MSYSGのSAVE画面



写真5 MSYSGのSAVE結果の確認画面



写真6 MSYSGの起動直後の表示画面



写真7 SKIP後の表示画面



写真8 Aドライブ選択後の表示画面


写真9 システムディスク作成完了後の表示画面