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