5日目(bootpack.cの改造とフォント対策)
4日目終了時点での振り返り
現在の自分の作業フォルダ:~/tolset/haribote$
上記内で作業中のファイル
作業はHariboteOS/prjects/05_days/harib02aフォルダからbootpack.cを開いて写経。
と思ったが、最後のinit_screenの部分は長くて結局コピペ。
make runで4日目の最後と同じ画面が出てくる。
次にharib02bフォルダのbootpack.cを参照。さらにharib02cフォルダのも参照。
これも2つとも同じ画面が出るだけ。
harib02dで同じ画面だが文字「A」が出せる。
だんだんとbootpack.cの内容を充実させていく日だとわかる。
しかしharib02eで詰まる。
結局、hankaku.txtをコンバートするためのC言語プログラムは検索してコピペさせてもらった。
(ここはLinuxユーザーの人は自作している場合が多い)
このファイルは名称をconv_hankaku.cと名付けた。
harib02eにあるhankaku.txtを自分の環境にコピーしておき、試しに実行してみる。
$ gcc -o conv_hankaku conv_hankaku.c
$ ./conv_hankaku
これでhankaku.cが作成できている。
これを最終的にOSに組み込むようにMakefileを編集する。
この終了時点でのMakefile。
---
# ファイル生成規則
default:
make img
ipl.bin : ipl.nas Makefile
nasm ipl.nas -o ipl.bin -l ipl.lst
asmhead.bin : asmhead.nas Makefile
nasm asmhead.nas -o asmhead.bin -l asmhead.lst
nasmfunc.o : nasmfunc.nas Makefile # nasmfunc.nasのバイナリファイル
nasm -g -f elf nasmfunc.nas -o nasmfunc.o
bootpack.hrb : bootpack.c har.ld nasmfunc.o Makefile # リンカスクリプト使用
gcc -march=i486 -m32 -nostdlib -T har.ld -fno-pic bootpack.c hankaku.c nasmfunc.o -o bootpack.hrb
haribote.sys : asmhead.bin bootpack.hrb Makefile
cat asmhead.bin bootpack.hrb > haribote.sys
haribote.img : ipl.bin haribote.sys Makefile
mformat -f 1440 -C -B ipl.bin -i haribote.img ::
mcopy haribote.sys -i haribote.img ::
# コマンド
hankaku : # conv_hankaku.cでhankaku.cを作る
gcc -o conv_hankaku conv_hankaku.c
./conv_hankaku
asm :
make -r ipl.bin
img :
make -r haribote.img
run :
make img
qemu-system-i386 -fda haribote.img # -fda追加
clean :
rm *.lst *.bin *.sys *.img *.hrb *.o
---
自分のレベルと環境に合わせたMakefileになってきたので、他の人のものが参照しづらくなりかなりきつい。
その後harib02eフォルダのbootpack.cを使って、make run。
今度は前と同じ画面上にABC 123が出てきて成功。
今回参照させて頂いたサイト:
https://qiita.com/pollenjp/items/d0f4e09a7fd50dfd58f5
http://bttb.s1.valueserver.jp/wordpress/blog/2017/12/13/makeos-5-1/