ねこめもmkII(マークツー)

本家ねこめも (http://nekomemo2.site)の補助用。 主に勉強ネタ。

3日目(OS本体まで写経)

今回やったことは、主に本家のファイルと本書を参考にしながら、ひたすらipl.nasファイルを写経。

ホームのtolsetフォルダに、HariboteOS/projects/03_dayにあるharib00aフォルダをコピー。
ipl.nasファイルのみにする。
2日目に作ったMakefileもコピー。ファイルは2つだけでスッキリした。
ちなみにmake run時のコマンドでしれっと-fdaというオプションが追加されているが、これはフロッピーのイメージを作成するためのもの。
後々、これが必要になってくるらしい。 

今回はharib00aフォルダのipl.nasファイルを元に、本書の通りに徐々に追記をして動作を確認することにした。
ブートセクタについては、これは根性で覚えるしかないかもしれない。
詳細は、他の方が説明しているのでここでは特にしない。
ここではあくまでも、やった事をメインで書き残しておく。 

最初にフロッピーディスクの起動失敗時の対策箇所を追記。
例のRESBをTIMESに変更するところも反映。
この状態で一度imgファイルを作成して実行してみる。と、エラーでもないがブートしただけの画面が出てくる。
これはこれで成功。

ファイルを新しくせず、元ファイルを見ながらharib00aフォルダのままさらにipl.nasに追記(写経)していく。
OS本体であるharibote.nasも作成。
imgファイルを作成する。
Makefileはまだharibote.nasに対応するようにできていないので、コマンドで実行。
 $ nasm haribote.nas -o haribote.sys -l haribote.lst 
 $ mformat -f 1440 -C -B ipl.bin -i haribote.img
 $ mcopy haribote.sys -i haribote.img
ここでエラーというかワーニングがでた。
 File "./haribote.sys" exists. To overwrite, try again, and explicitly specify target directory
これは最後に「::」を入れると出なくなった。 
 $ mcopy haribote.sys -i haribote.img ::
最終的にできた haribote.imgを開いて、中身を確認。
 $ ghex haribote.img
0x002600と0x004200あたりを確認して、本書と同じデータが入っている事を確認。

mcopyというコマンドを使うのだが、詳細は別途調べることにする。
名称の変更は、自分が解りづらくなるのでまたちょっと後。 
OS本体の動作確認は次回にする。

 


参考にさせて頂いたサイト:
https://hariboteos.hatenadiary.org/entry/20060304/1141476623
https://qiita.com/pollenjp/items/8fcb9573cdf2dc6e2668