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

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

2日目(Makefile見直し)

2日目の項目は一通り終わらせたけど、Ubuntu用に少しよけいなことも検証しておく。

他の方の環境を参照して、サポートページからリンクのあったLinux版開発セットを使わないようにMakefileをカスタム。
要するに、exeファイルではなくできるだけLinuxのコマンドで対応。そうするとファイルが少なくて済む。

Linuxでのアセンブラ環境はnasmとgasのどちらかが多いようだが、ここではnasmにする。
まず
 $ nasm ipl.nas -o ipl.bin -l ipl.ls
としてみたが、56行目でエラー。
RESB 0x7dfe-$
しかし前回出なかったような??
どうやらnasmを使うと出てきてしまうらしい。他の方のブログを参照して、
RESB    0x7dfe-0x7c00-($-$$)
と、書き換え。

それとRESB を 使うと
warning: uninitialized space declared in .text section: zeroing
というエラーは出る。でもまあ無視しても大丈夫らしい。
でも気になるので、治すならTIMES命令にする。
24行目で
TIMES   18 DB 0
と、56行目
TIMES 0x7dfe-0x7c00-($-$$) DB 0
に変えると、ワーニングがなくなる。

さらにコマンドmformatでimgファイルを作成。
これでMakefileを編集できる。 

参考までに先日作ったMakefile、元のとあまり変わらない。

--- 

# デフォルト動作

default :
    ../z_tools/make.exe img

# ファイル生成規則

ipl.bin : ipl.nas Makefile
   ../z_tools/nask.exe ipl.nas ipl.bin ipl.lst

helloos.img : ipl.bin Makefile
   ../z_tools/edimg.exe   imgin:../z_tools/fdimg0at.tek \
   wbinimg src:ipl.bin len:512 from:0 to:0   imgout:helloos.img

# コマンド

asm :
   ../z_tools/make.exe -r ipl.bin

img :
   ../z_tools/make.exe -r helloos.img

run :
   qemu-system-i386 helloos.img

install :
   ../z_tools/make.exe img
   ../z_tools/imgtol.com w a: helloos.img

clean :
   -del ipl.bin
   -del ipl.lst

src_only :
   
../z_tools/make.exe clean
   -del helloos.img

---

こっちがLinux用。自分がわかる範囲のみでまとめたら他の方のものとほぼ同じになってしまった。

---

# ファイル生成規則

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

helloos.img : ipl.bin Makefile
    mformat -f 1440 -B ipl.bin -C -i helloos.img ::

# コマンド

asm :
    make -r ipl.bin

img :
    make -r helloos.img

run :
    qemu-system-i386 -fda helloos.img

---

どちらを使うかは、もう数日進めてみてからにする。
それまでは両方のファイルで行ったり来たりしたい。

この辺りは本体の内容ももちろんだけど、今後のために環境を整えることも大切だと気付いた。
しかしこのままだと中身を理解せず動いたらOK、といういつものパターンになりそうなので、3日目からはもっと本体のプログラムを重視していく予定。

 


参考にさせて頂いたサイト:
https://motojiroxx.hatenablog.com/entry/2018/05/10/030811
http://cyberbird.indiesj.com/x86%E3%80%80os%E8%87%AA%E4%BD%9C%E5%85%A5%E9%96%80/os%E8%87%AA%E4%BD%9C%E5%85%A5%E9%96%80%20onlinux%202%E6%97%A5%E7%9B%AE#ps_text
https://qiita.com/pollenjp/items/d15fce401bccd37e8059

https://wisteria0410ss.hatenablog.com/entry/2019/02/06/122929