これまでBIOSやらBootやらで遊んできたわけなんですが、何か機能とかが気になって遊ぼうとするたびに、boot、機能読み込み、実行とかすることになるわけです。
で、ブートの部分とか機能の読み込みの部分はほぼ同一だという。
同じものを使いまわしするので面倒くささはあまりないのですが、同じものを何度も使うならソースの再利用じゃなくてバイナリの再利用をしたいなぁ、とか思っちゃうんですね。ほとんど同じソースがあちこちにあると、心がゾワゾワするというかなんというか。プログラム作成者の性って奴かもしれません。
そういった流れで処理を見直すと、結局は3つのパートに集約されるなぁと。
①ブートする
②機能を読みこんで遷移する
③試したい機能
流れとしてはこんな感じ。流れ図にするならこうかな。

この形は言うまでもなくOSの基本機能なわけですが、OSというほどたいそうなものを作りたいわけじゃありません。いわばモニタプログラムといったところでしょうか。
よく使う形を一般化して何度も使いまわせるようにするわけです。OSなんておこがましいささやかなものですが、名前がないと不便なのと、名前があると愛着がわくので、仮にHyfaxと名付けました。
今回からしばらくは、このHyfax君を作っていきたいと思います。
大雑把な方針とか
まずは媒体からです。QEMUを使うのは確定です。なので一般的なものとしてFDDとHDDがあります。ですが今更FDDはないだろうというわけでHDDの一択。
ファイルフォーマットはFATなのは当然です。フロッピーでないのでFAT12は没。FAT32は64Bit 演算ができないと辛いのでこれも没。まことに中途半端ながらFAT16で実行できるようにしましょう。
モニタプログラムは0x0ffffまでを占有することにします。アプリエリアは0x10000~0xA0000までの576KByteとしましょう。
モニタプログラムからアプリはjmpで遷移することにします。アプリからはモニタの先頭にjmpすることで復帰することにします。
モニタプログラムはアプリのファイル名を使ってディスクをリードし、0x10000に展開した後で同アドレスに遷移するものとします。
完全なシングルタスク・シングルユーザですね。だってモニタですもの、高機能は望みません。
忘れてましたけど、リアルモード厳守で行きます。拡張レジスタとか使わない方向で。
今日はここまで
大雑把な方針が決まったところで今日はここまでです。やってみなくてはわかりませんが都合6回くらいになるんじゃないでしょうか。
わたしの『やる気スイッチ』と連動しているので、次回がいつになるかはわかりません。
《2025/11/28 13:54:22》


