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

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

3日目(またMakefile編集、32bitへ)

ipl.nasとharibote.nasharib00g.nasまで写経。
しかし最初はエラーが出たり、前と同じ「Booting from Floppy…」としか出てこない。
なにかおかしいと思ったら、ipl.nasでかなりミスタイプと行の間違いをしていた。これを修正。

他の方が使っていたのでただなんとなくmformatやmcopyをMakefileに追加していたが、これらのmtoolの謎は解明。
MSDOS、というかFATファイルシステムに対するコマンドだった。
今回の自作OSをLinux上で行うには、これは便利。
それと後で知ったが、拡張子がbinだったりsysだったりするのは、nasmのコマンドでは拡張子は関係ないため。

これでharibote.nasも含めたimgファイル作成のためのMakefileを作成できる。
また後で編集する可能性もあるが、 結局他の方のブログを参照して現時点では以下の通り。
ファイル名称は変えていない。 

---

# ファイル生成規則

default:
   make img

ipl.bin : ipl.nas Makefile
   nasm ipl.nas -o ipl.bin -l ipl.lst

haribote.sys : haribote.nas Makefile
   nasm haribote.nas -o haribote.sys -l haribote.lst

haribote.img : ipl.bin haribote.sys Makefile
   mformat -f 1440 -C -B ipl.bin -i haribote.img ::
   mcopy haribote.sys -i haribote.img ::

# コマンド

asm :
   make -r ipl.bin

img :
   make -r haribote.img

run :
   make img
   qemu-system-i386 -fda haribote.img  # -fdaを追加

---

当初コマンド入力だと問題ないのに、 make runするとエラーが出て悩んだ。
 Makefile:5: *** 分離記号を欠いています.  中止
というエラー。
調べたところ、上記のエラーはMakefileの5行目にtabだけではなくスペースが入っているというだけのエラーだった。
Makefileはtabのみでないとエラーになると、初めて知った。
ファイルを直して、make runで真っ黒なだけの画面が出てきて成功。

次に32bitモードの準備として、haribo00hのhaibote.nasを写経。
わからないことだらけだが、ここでは特に動作確認はない。
C言語に入る前に、いったん区切る。

余談だが、このあたりで参照しているサイトが日々ダブるようになってきた。
そのぐらい、いろんなところを行ったり来たりしている。

 


参照
https://qiita.com/Aquan_Investor/items/1843f0c7ba31a12f6446
https://wisteria0410ss.hatenablog.com/entry/2019/02/06/131021
http://bttb.s1.valueserver.jp/wordpress/blog/2017/11/25/makeos-3-1/
https://www.itmedia.co.jp/help/tips/linux/l0317.html