今週も。
71.1kg
週末は少し歩いた。(ほんとに少しだけど。。)
お米も食べなかった。(毎日の2分間腹筋だけやらなかった。)
でも、これか。。
様子見じゃ。。
で、いきなりだが
$ make run
make -r img
make -r haribote.img
nasm ipl10.nas -o ipl10.bin -l ipl10.lst
nasm asmhead.nas -o asmhead.bin -l asmhead.lst
nasm -f elf32 naskfunc.nas -o naskfunc.o -l naskfunc.lst
x86_64-elf-gcc -c -g -march=i486 -m32 -nostdlib bootpack.c -o bootpack.o
x86_64-elf-ld -m elf_i386 -e HariMain -o bootpack.hrb -T hrb.ld bootpack.o naskfunc.o
cat asmhead.bin bootpack.hrb > haribote.sys
mformat -f 1440 -C -B ipl10.bin -i haribote.img ::
mcopy -i haribote.img haribote.sys ::
qemu-system-i386 -L . -m 32 -monitor stdio -s -drive file=haribote.img,format=raw,if=floppy -boot a
QEMU 5.0.0 monitor - type 'help' for more information
(qemu)
は?
もぉ。。。。
月曜の朝から、なんなの。。。
本は構造体の説明だが、それに伴い、コードが少し変更されている。
でも、それって何か難しい事してるんだっけ。。。。
bootpack.cのコードを見てみると、要するに違いはasmhead.nasでメモリ上へ
書いた情報ををC言語側から使う状態に変更している。
これが原因???
まさか。。。
つまり。。。。
そこに戻るのか。。。(Orz.... 一気に不安が。。。)
とりあえず、4日目の最後のものと、5日の最初のものと実行した際のasmhead.nasが
書いた情報を確認。
(qemu) xp/100xh 0x0ff0
0000000000000ff0: 0x000a 0x0008 0x000d 0x00c8 0x0000 0x000a 0x0000 0x0000
0000000000001000: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
0000000000001010: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
0000000000001020: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
0000000000001030: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
0x0ff0: 0x0a = 10 → OK.
0x0ff1: 0x00 = 0 → 多分、OK.
0x0ff2: 0x08 = 8 → OK.
0x0ff4: 0x0d00 (0x000d)= 3328 (14)→ ???(X方向の解像度で、320つまり0x0140のはず)
0x0ff6: 0xc800 (0x00c8)= 51200 (200)→ ???(Y方向の解像度で、200つまり0xc8のはず → OK)
0x0ff8: 0x000a0000 ???? → OK
という事で、これが原因でしょう。
asmhead.nasを確認。
ん???
MOV WORD [VMODE],8 ; 画面モードをメモする(C言語が参照する)
なんだこれ。。。
これで良いのか??
今までの格闘中に、意図せずして書き換えていたのかな。。。
時間切れ。
続く。。。