今週も。

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) 

 

f:id:kanazo3:20200608080410j:plain

は?

もぉ。。。。

月曜の朝から、なんなの。。。

本は構造体の説明だが、それに伴い、コードが少し変更されている。

でも、それって何か難しい事してるんだっけ。。。。

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言語が参照する)

なんだこれ。。。

これで良いのか??

今までの格闘中に、意図せずして書き換えていたのかな。。。

時間切れ。

 

続く。。。