mkboot98は, OSの介在なしに直接プログラムを実行するブートフロッピーを作 成するためのツールです. PC-9801シリーズ専用です. 用意されたバイナリをフロッピーから読み込んで実行するためのIPLと, ブー トフロッピーを作成するプログラムから成ります.
なお, コンパイルにはMS-C, MASM, EXE2BINが必要です.
アーカイブの中身
- index.htm
- このファイルです.
- makefile
- MS-C用のメイクファイルです.
- ipl.bin
- サンプルのIPLプログラムです.
- config.h, ipl.ah
- それぞれmkboot.c, ipl.asmのコンフィギュレーションファイルです.
- mkboot.exe
- mkbootコマンドの実行形式ファイルです.
- ipl.asm, mkboot.c
- ソースファイルです.
- test.asm, test.bin
- テスト用のプログラムファイルとそのソースです.
config.h
を書き換えます. IPL_PROG_FILE
でIPLファイルのデフォルト名を変更できます. DRIVE_NUMBER
で書き込まれるドライブを変更できます. 何も変更しない場合にはCドライブに対して書き込みます.PC-9801で, フロッピーを対象とする場合にはその他は書き換える必要はあり ません.
IPLのコンフィギュレーション
IPL.AHで, 次の項目の設定をします.
- IPL_START_SEG
- IPLを再配置するセグメント
- STACK_SEG
- スタックセグメント(IPL_START_SEGと同じでもかまいません)
- STACK
- スタックポインタの初期値 (デフォルトは2000h)
- LOAD_START_SEG
- ターゲットプログラムをロードするセグメント (当該セグメントの0番 地からロードされます) IPL_START_SEGやSTACK_SEGと重ならないよう に注意して下さい. これらより後の番地にすることをお勧めします.
使用方法
mkboot FILENAME [IPLFILE]
で, FILENAMEのファイルをロードして実行するブートフロッピー を作成します. IPLFILEは省略可能です. IPLファイルは次の順番 で探されます.
- IPLFILEで指定されたパス
- 環境変数MKBOOTIPLFILEに書かれたパス
- デフォルト値(config.hの
IPL_PROG_FILE
で指定されたもの) デフォルトではカレントディレクトリのipl.bin
です.
こうして作成されたフロッピーで立ち上げると, FILENAMEで指定 されたプログラムがLOAD_START_SEG:0 (LOAD_START_SEGはipl.ahで指定)以降にロードさ れ, プログラムの最初の番地にジャンプします. プログラムは64Kを越えてい てもかまいません.
例
中身の入っていないフロッピーをドライブCに挿入し, MS-DOS上で
mkboot test.bin
としてブートフロッピーを作成し, フロッピーから立ち上げて下さい. 画面に 何か文字が出るはずです.
注意
このプログラムは, 対象ディスクのIPLを直に書き替え, MS-DOSファイルシス テムを破壊します. フロッピーディスク内のデータは失われます. また, 間違えてハードディスクを壊さないようにくれぐれも注意して下さ い. (Cドライブがハードディスクでないことを確認して下さい) 使い方を間違えると危険なプログラムですので, あくまで個人の責任でお願 いします.