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に出力するのが一般的らしい)
手順2
ソースファイルのアセンブル
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に含めず分離する等、他の作戦も考えてみたいと思います。
う~ん奥が深い^^;;;