2021年10月5日火曜日

FUZIX:z80packのブートディスク

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 件のコメント:

コメントを投稿