z80packのブートディスクを見ていきます。
ブートディスクは、CP/Mでは標準の 8インチ IBM3740フォーマットです。
セクタサイズ | 128 |
セクタ数/トラック | 26 |
トラック数 | 77 |
ディスクの先頭から58トラックにはファイルシステムを置くことができますが、Makefileのdiskimageで作られるイメージでは空でファイルシステムは作られません。第1セクタは特別で、ブートコード bootblock.bin が書き込まれます。59トラック目から最後のトラックまでは、FUZIXのカーネル fuzix.binが書き込まれています。READMEには、カーネルはディスクの60トラック目から書かれていることになっているのですが、bootblock.sを読んだ限りでは、59トラック目からが正しいようです。
PCがリセットされると、BIOSがディスクからブートコードをメモリの0x0000番地に読み込み実します。ブートコードは、128バイトに収まるように作ってあるので、大して複雑なことはできません。bootcode.sを読んでみると、59トラック目から順番にディスクアクセスし、0x0088番地からメモリに書き込んでいくだけのコードです。最後に0x0088にジャンプしてカーネルを実行を移します。
0 件のコメント:
コメントを投稿