Last Updated on 2014年7月23日 by kabekin
S1のSASI-HDD接続作戦のその後です。
無事にソースファイルも転送できるようになったので、OS-9のシステムジェネレートの練習をします。
(私にとって初ジェネレーションなので次回から用に簡単に手順をメモ・・・)
6809活用研究の記事では/ND0に対してos9genしているようでしたが、せっかく2デッキにしたので/ND1側でジェネレートします。
手順1
ソースファイルの転送。
シリアルにて/ND1に転送したソースファイルを/ND0/GEN/SOURCEにコピーする
copy /ND1/Clock_rtc /ND0/GEN/SOURCE/Clock_rtc
(どうやらOS-9の慣例として/GEN/SOURCEで作業しバイナリをGEN/OBJECTに出力するのが一般的らしい)
chd /ND0/GEN/SOURCE でディレクトリを移動して、
asm #50k Clock_rtc o=/ND0/GEN/OBJECT/Clock_rtc でアセンブリ。
/OBJECTディレクトリにClock_rtcが作成されていることを確認。
ワーニングは残っているものの、エラー無しなので取りあえず次の手順に送ります。
手順3
今回組込むモジュールを編集。
/GEN/MakeBootを開いて今回の目的用に編集。
Makebootは読込専用属性になっていたので書込み属性を追加します。
attr /ND0/GEN/MakeBoot w
アクセス権限を変更せずに編集して保存すると元ファイルには書込みできないのでscratchというファイルが作成されるようなので、恐らくこれを使ってもOKだと思います。
edit /ND0/GEN/MakeBoot でテキストを開いて、
/D0/GEN/OBJECT/Clockの行にポインタを移動。
C/Clock/Clock_rtc/ で Clock_rtcに変更。
^ で先頭行に戻ってLで変更されていることを確認。
もう一度 ^ で先頭行に戻ってW*で保存しQで抜ける。
listコマンドでMakeBootが正しく変更されていることを確認。
手順4
ドライブ1にOS-9フォーマット済のFDをセットする。
シェルがY-Shell等になっている場合、OS-9のシェルに切替てから作業。
os9gen /ND1 </ND0/GEN/MakeBoot
で/ND1にOS9Bootが生成されたことを確認。
手順5
dsaveコマンドでOS-9Boot以外のファイルを新FDにコピー。
chd /ND0 ←でND0のルートに移動。
dsave /ND0 /ND1 ! (-p x) ← でコピー実行。
手順6
ローダの書込み。
新しく作成したシステムがFDから起動できるようにローダの書込み。
作成中のFDをドライブ/ND0にセットして、
putldr /ND0 r ←でローダ書込み。
以上で完成
と、一連の作業は完了していると思われますが、新しく作ったFDで起動すると、
起動はOK!
しかし、DIR等何か操作するとSystem Abortになってフリーズ・・・・
何故だかFDにアクセスしないProceやMFreeではフリーズせず。
ディスクにアクセスするコマンドでフリーズします。
6809活用研究にあるClock_rtcのリストをにらめっこして確認しても、正しく入力できている模様・・・・
RTCは後回しにしてHDD関係のコード入力に入るか、RTCの原因を追究するか悩みどころです^^;;;
OS-9におけるClockモジュールは結構コアなモジュールらしいので、RTC関係の処理をClockに含めず
分離する等、他の作戦も考えてみたいと思います。
う~ん奥が深い^^;;;