記事一覧

MBM 高速起動

 フリーのブートローダーの MBM が久々にバージョンアップしていることに気が付いた.
 このバージョンアップで,MBM をインストールするドライブが選べるようになったのは便利.今まで C: にしかインストールできなかったので,USB メモリ等からブートすると (それが C: になってしまうので) HDD にインストールできなかったのだが,その制約がなくなった.

 今回から GPL になってソースコードも付属している.なので前からやりたかった「起動待ち時間を 1秒より速くする」(標準の MBM は自動起動までの最小時間が 1秒なので) をやるため,再アセンブルしようと思った.
 でやってみたら,アセンブラは OPTASM…? そんなのもう入手できねーよ(;´д⊂)ためしに MASM32 でアセンブルしてみたけどエラーの嵐.

 というわけで,方針を変えてパッチ当てで(笑) ソースは付属してるので,パッチ当て箇所がわかりやすくてありがたい.

1460  wait_timer:     ; 起動タイマー表示(CF=set on break, clr on time out)
1461          _skip e, MainParms.MpTime, 0
1462                   call   set_csrhome
1463                  mov     bp, 10 ←**ここ**
1464           _while
1465                  push    di

wait_timer で cx(=メニューで設定した待ち時間) * bp * 100ms 待っているので,bp への代入を 1にすれば,メニューで設定した秒数 / 10 の時間でタイムアウトする.(どうせ最小時間しか設定しないので問題なし)

バイナリ上のパッチ当て箇所は以下のとおり(ver.0.39).黄色で示した箇所を 0x0A→0x01 に書き換える.
ファイル 149-1.png
 これで MBM のメニューが一瞬でタイムアウトするようになったヽ(´ー`)ノ もちろんキーをあらかじめ押しておけばタイムアウトがキャンセルされるので,使い勝手的にも問題なし.

コメント一覧

コメント投稿

投稿フォーム
名前
Eメール
URL
コメント
削除キー
公開設定