FromNandの日記

自分的備忘録

【USBブートバージョン】自作OS「GAFF」のメモリマップ

http://softwaretechnique.jp/OS_Development/kernel_loader1.html」は参考になる。

0x00000000-0x000003ff          割り込みベクタテーブル。低位にcs、高位にip(2*2=4byte)が最大256個保存される。


0x00000400-0x000004ff          BIOSデータらしい。


0x00000500-0x00007bff          とりあえず未使用。ディスクのデータをすべてロードするには領域が小さい。セカンドローダを読み込むときには使うかも。


0x00007c00-0x00007dff          BIOSがブートローダを読み込む。


0x00007e00-0x00007fff          未使用。


0x00008000-0x0008ffff          USBのディスクの内容を512*0x440=0x88000byteが読み込まれる。ちなみに、0x8000+0x88000=0x90000。


0x00090000-0x0009ffff          この領域もUSBのロードに使えそうだが、0x90000台後半のメモリに読み込むと実機ではブラックアウトした。だから未使用。


0x000a0000-0x000affff          VRAM(ビデオメモリ)。


0x000b0000-0x000b7fff          VRAM(モノクロ)。


0x000b8000-0x000bffff          VRAM(カラー)。


0x000c0000-0x000c7fff          BIOS Video関連。


0x000c8000-0x000effff          BIOS予備領域。


0x000f0000-0x000fffff          BIOS本体。


0x00100000-0x002fffff          カーネルのデータ領域を配置する。


0x00300000-0x004fffff          カーネルのテキスト領域を配置する。


0x00500000-0x005fffff          カーネルのスタック領域を配置する。


0x00600000-                         os.lsに書かれているdataセクションが入る。