Skip to content

musou1500/vidar

Repository files navigation

vidar

my toy OS

30日でできる!OS自作入門 をやっていくレポジトリ

領域 概要
0x00007c00 ~ 0x00007dff ブートセクタ
0x00007e00 ~ 0x0009fc00 自由に使って良い
0x00008000 ~ 0x000081ff(512byte) ブートセクタの内容
0x00008200 ~ 0x00034fff(180KB) ファイルの内容
0x000a0000 ~ 0x000fffff ビデオメモリ

C0-H0-S1はブートセクタで,今の所,C0-H0-S1 ~ C9-H1-S18 が読み込まれる.

計180KBが読み込まれる. 18 * 10 * 2 * 512 = 184320 byte = 180KB

0x34fffまではファイルの内容が入っている.

0x34fff になる理由がよく分かってない. 0x08200 + 184320 = 0x35200 のはずで,どうやってその値が出てきたんだろう

ファイルの内容については,今の所10シリンダ分を読むようにしている.

0x4200にvidar.sysの内容がある. 0x8000 + 0x4200 = 0xc200 なので,0xc200 にジャンプすれば,vider.sys の内容を実行できる.

vidar.sys 実行前に, 0xff0 に,読み込んだシリンダ数を書き込むようにしてある.

0xff0 に保存している理由は,メモリマップを参照し,誰にも使われてなさそうだったから,ということらしい.