mkboot98

PC-9801で、自分の作ったプログラムをOSの代わりに実行させることができるブートフロッピー作成プログラムです。

mkboot98は, OSの介在なしに直接プログラムを実行するブートフロッピーを作 成するためのツールです. PC-9801シリーズ専用です. 用意されたバイナリをフロッピーから読み込んで実行するためのIPLと, ブー トフロッピーを作成するプログラムから成ります.

mkboot98ソースと実行ファイル(lhaで圧縮)

なお, コンパイルには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
テスト用のプログラムファイルとそのソースです.
## mkbootのコンフィギュレーション 必要がある場合には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ファイルは次の順番 で探されます.

  1. IPLFILEで指定されたパス
  2. 環境変数MKBOOTIPLFILEに書かれたパス
  3. デフォルト値(config.hIPL_PROG_FILEで指定されたもの) デフォルトではカレントディレクトリのipl.binです.

こうして作成されたフロッピーで立ち上げると, FILENAMEで指定 されたプログラムがLOAD_START_SEG:0 (LOAD_START_SEGipl.ahで指定)以降にロードさ れ, プログラムの最初の番地にジャンプします. プログラムは64Kを越えてい てもかまいません.

中身の入っていないフロッピーをドライブCに挿入し, MS-DOS上で

mkboot test.bin

としてブートフロッピーを作成し, フロッピーから立ち上げて下さい. 画面に 何か文字が出るはずです.

注意

このプログラムは, 対象ディスクのIPLを直に書き替え, MS-DOSファイルシス テムを破壊します. フロッピーディスク内のデータは失われます. また, 間違えてハードディスクを壊さないようにくれぐれも注意して下さ い. (Cドライブがハードディスクでないことを確認して下さい) 使い方を間違えると危険なプログラムですので, あくまで個人の責任でお願 いします.