-NUM- -R.DATE- -R.TIME- -SENDER- -TEXT----- [W]WRITE [RET]READ [?]HELP 00804 96-03-25 09:59:07 3733 "DEVICE/1.22"の処理の流れ(TEXT) ------------------------------------------------------------ 【タイトル】 "DEVICE/1.22"の処理の流れ(TEXT) 【ファイル】 DEVICEDC.TXT 【製 作 者】 桝一 憲生(Nmasu) 【動作機種】 ---- 【転載可否】 可 ------------------------------------------------------------ 【補足説明】 DVFファイルの制作の際の参考になれば幸です。 ------------------------------------------------------------ ★★★"DEVICE/1.22"の処理の流れについて知りたいとの意見があ りましたので、公開します。 〜〜〜 次に示すような順で処理が行なわれます。〜〜〜 ●DEVICE自身のタイトル表示 ●コマンドラインの解析 ・スロットナンバを取得する。 ・DVFファイル名取得する。 ●スロットの存在確認 ・固定ワークエリア($BFC00-$BFFFF)内で保持されているスロッ トサイズが 0でないことを確認する。 ●スロットが書きこみ可能か調べる ・スロットヘッダ内の書きこみ禁止属性を確認する。 ・スロット先頭アドレスに実際に書きこめるか確認する。 ●ファイル読込 ・ファイルサイズが不自然に小さくないことを確認する。 ・ファイルが作業領域に納まることを確認する。 ・ファイルを読みこむ。 ・DVFファイルになっているか確認する。 ●インストールできるか検査 ・DVFファイル自身がインストールを禁止しているスロットでな いことを確認する。 ・DVFファイル内のタイトル文字列を表示する ・DVFファイルのヘッダを、スロット内メモリブロックのヘッダ になるように補正する。 ・インストールしようとしているスロットに、同名のブロックが 存在しないことを確認する。 ・DVFファイルがデバイスドライバ属性を持ち、かつ、デバイス ナンバー自動設定の場合のみ以下の処理を行なう。 - まだ使われていないデバイスナンバーが存在することを確認 する。 - 同じ名前のドライブが存在しないことを確認する。 ●スロットの準備 ・スロットの圧縮処理をする。 ・転送できるサイズか調べる。 ・SC62015のページ境界に触れないことを確認する。 ●リロケーション処理 ・リロケーションテーブルを元に再配置処理を行なう。(この段 階では、まだスロットへの転送は行なわれていません。) ●個別の初期化処理 ・DVFファイル内の初期化ルーチンをcallfする。 ●スロットへの転送処理 ・転送する。 ・DVFファイルがデバイスドライバ属性を持つなら、デバイスド ライバとして登録する。 ●DEVICEの終了処理 ★★★著作権等 本ドキュメントの著作権は、著者である桝一憲生(Nmasu) が保持しています。 著者の権利を侵害しない限り、自由に配布してかまいません。 また、本ドキュメントに書かれていることを利用したことによっ て生じた一切の不利益について、作者はその責を負わないものとし ます。 ★★★さいごに 質問については、可能な限りお答えするつもりです。 #3733 Nmasu ------------------------------------------------------------